我正在尝试将自定义访问者类用于简单的表达式语法。
// .h
class MyVisitor: public MyParserBaseVisitor {...}
// .cpp
Any MyVisitor::visitExpr(MyParser::ExprContext *ctx) {
auto result = visitChildren(ctx);
std::cout<< result.as<int>() << std::endl;
return result;
}
Any MyVisitor::visitInteger(MyParser::IntegerContext *ctx) {
return atoi(ctx->start->getText().c_str());
}
result.as()抛出bad_cast异常,result.isNull()始终返回true。我在这做错了什么?
另外,我可以使用anltrcpp :: Any返回指向自定义类对象的指针,还是仅使用基本类型?