我试图在名为“mismatches”的变量中保留错误计数,我在野牛文件的第一部分中声明了该变量。
在我的野牛语法中,我为该变量设置了一个值。
然后在野牛文件的第三部分,在 main() 函数中,我计算出它的值,它是 0。
我的野牛文件的一个非常修改/缩减的版本:
%{
extern "C" FILE *yyin;
extern int yylineno;
extern int yynerrs;
int yylex();
// Declare 'mismatches'
int mismatches;
%}
%error-verbose
%%
expression:
expression ADDOP term
{
cout << "Parser is now here. Going to set `mismatches` to 6";
mismatches = 6;
}
| term
;
%%
int main()
{
// Outputs 0
cout << mismatches;
yyparse();
return 1;
}
我应该怎么做才能在野牛文件的所有部分中使用变量'mismatches'?