C++ 获取Flex/Bison操作结果

C++ 获取Flex/Bison操作结果,c++,bison,flex-lexer,C++,Bison,Flex Lexer,我使用Flex/Bison/C++计算表达式 这是一个野牛档案样本 string res; yy_scan_string(expression.c_str()); yyparse(); cout<<"Result:"<<res<<"\n"; .... expr: expr PLUS expr { $$=evaluate("+",$1,$3); res=$$; }

我使用Flex/Bison/C++计算表达式 这是一个野牛档案样本

string res; 
yy_scan_string(expression.c_str());               

yyparse();
cout<<"Result:"<<res<<"\n";
....
expr: expr PLUS expr { 
          $$=evaluate("+",$1,$3);
          res=$$;
          } 
     |expr MINUS expr { 
          $$=evaluate("-",$1,$3);
          res=$$;
          } 
stringres;
yy_scan_字符串(expression.c_str());
yyparse();
不能是的

有一个顶级规则,它只执行分配:

%%
    toplev:   expr                    { res = $1; }
    expr:     expr PLUS expr          { $$=evaluate("+",$1,$3);}
           |  expr MINUS expr         { $$=evaluate("-",$1,$3);} 
%%