Bison 野牛计算器问题

Bison 野牛计算器问题,bison,Bison,bison何时执行stmt非终端。当它看到哪个字符时?假设这些都是bison输入的规则,非终端符号stmt在达到EOF时立即“执行”(即:不再输入,最后一个expr已减少) 但是,你的语法有冲突。我不明白这个问题。stmp是什么?哎呀,这是个打字错误。现在我修好了 stmt : expr {printf("%d\n",$1);} ; expr : expr '+' expr {$$ = $1 + $3;} | expr '-' expr {$$ = $1 - $

bison何时执行stmt非终端。当它看到哪个字符时?

假设这些都是bison输入的规则,非终端符号
stmt
在达到
EOF
时立即“执行”(即:不再输入,最后一个
expr
已减少)


但是,你的语法有冲突。

我不明白这个问题。stmp是什么?哎呀,这是个打字错误。现在我修好了
stmt : expr  {printf("%d\n",$1);}
      ;

expr :  expr '+' expr  {$$ = $1 + $3;}
     |  expr '-' expr  {$$ = $1 - $3;}
     |  INTEGER        {$$ = $1;}
     ;