gpt4 book ai didi

compiler-errors - YACC错误 “is untyped”

转载 作者:行者123 更新时间:2023-12-02 10:48:15 33 4
gpt4 key购买 nike

我正在创建一个使用波兰语表示法(前缀)的YACC程序。实现起来似乎很简单,但是我遇到了一个似乎没有道理的错误。错误是:

yacc:e-“calculator.y”的第33行,未键入$ 1('-')

这是表达式的代码。错误发生在“-”规则上。它停在那里,因为我想先解决这个问题:

exp:  NUMBER                  { $$ = $1; }
| NAME { $$ = $1->value; }
| NAME '=' exp { $1->value = $3; $$ = $3; }
| exp EQ exp { $$ = $1 == $3; }
| '-' exp exp { $$ = $1 - $3; }
;

奇怪的是,当我使用中缀表示法尝试时,它可以正常工作。我知道这个错误通常发生在没有正确输入 token 的情况下,但是因为它们使用的是中缀符号。任何想法为什么这会突然改变前缀?

最佳答案

    | '-' exp exp        { $$ = $1 - $3; }

在这里,您尝试从 - token 中减去第二个表达式,该表达式是无类型的,没有任何意义。你可能想要
    | '-' exp exp        { $$ = $2 - $3; }

从第一个表达式中减去第二个表达式...

关于compiler-errors - YACC错误 “is untyped”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226886/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com