bisonc ++继承与多态

时间:2016-11-16 14:11:07

标签: c++ parsing compiler-construction abstract-syntax-tree bisonc++

我正在尝试用野牛语法构建一个AST。 Bison正确生成解析器但是当我尝试用一​​些数学运算解析一个示例代码时,打印出以下错误:

expr

调试后我注意到问题出在expr: ... | operator { $$ = $1; } 非终端,产生了以下内容:

operator

operator: ... | INTEGER { $$ = new ast::expression::IntASTNode(std::stoi(d_scanner.matched())); } 本身就有以下产品:

expr

我正在使用多态语义类型,operatorEXPR标记为ExprASTNode,它们响应IntASTNode类型,是INT的基类使用标记{{1}}。我猜测野牛是从标签中获取类型并在进行任何演员之前检查标签。有什么方法可以解决这个问题吗?

0 个答案:

没有答案