stmt : expr {printf("%d\n",$1);}
;
expr : expr '+' expr {$$ = $1 + $3;}
| expr '-' expr {$$ = $1 - $3;}
| INTEGER {$$ = $1;}
;
什么时候stmt非终端被bison执行。当它看到哪个角色?
答案 0 :(得分:1)
假设这些是你的野牛输入的所有规则,一旦到达stmt
,非终结符号EOF
就会被“执行”(即:没有进一步的输入和最后的expr
已经减少了。)
但是,你的语法存在冲突。