fix: bug in Any2String
This commit is contained in:
@ -176,9 +176,13 @@ std::any EvalVisitor::visitContinue_stmt(
|
||||
}
|
||||
|
||||
std::any EvalVisitor::visitReturn_stmt(Python3Parser::Return_stmtContext *ctx) {
|
||||
// TODO
|
||||
throw FatalError("Not implemented in function visitReturn_stmt");
|
||||
return visitChildren(ctx);
|
||||
if (!ctx->testlist()) return FlowType(RETURN, std::vector<std::any>());
|
||||
std::any val = visitTestlist(ctx->testlist());
|
||||
std::vector<std::any> *val_ptr = std::any_cast<std::vector<std::any>>(&val);
|
||||
if (val_ptr) return FlowType(RETURN, *val_ptr);
|
||||
std::vector<std::any> tmp;
|
||||
tmp.push_back(val);
|
||||
return FlowType(RETURN, tmp);
|
||||
}
|
||||
|
||||
std::any EvalVisitor::visitCompound_stmt(
|
||||
@ -332,15 +336,15 @@ std::any EvalVisitor::visitFactor(Python3Parser::FactorContext *ctx) {
|
||||
std::any EvalVisitor::visitAtom_expr(Python3Parser::Atom_exprContext *ctx) {
|
||||
if (!ctx->trailer()) {
|
||||
auto val = visitAtom(ctx->atom());
|
||||
std::cerr << "[Log] In func visitAtom_expr. The Atom returns : ";
|
||||
if (auto ptr = std::any_cast<NoneType>(&val)) {
|
||||
std::cerr << "NoneType" << std::endl;
|
||||
} else if (auto ptr = std::any_cast<RawVarible>(&val)) {
|
||||
std::cerr << "Variable Name=" << ptr->name
|
||||
<< " val=" << Any2String(Variables.ReadVariable(ptr->name))
|
||||
<< std::endl;
|
||||
} else
|
||||
std::cerr << Any2String(val) << std::endl;
|
||||
// std::cerr << "[Log] In func visitAtom_expr. The Atom returns : ";
|
||||
// if (auto ptr = std::any_cast<NoneType>(&val)) {
|
||||
// std::cerr << "NoneType" << std::endl;
|
||||
// } else if (auto ptr = std::any_cast<RawVarible>(&val)) {
|
||||
// std::cerr << "Variable Name=" << ptr->name
|
||||
// << " val=" << Any2String(Variables.ReadVariable(ptr->name))
|
||||
// << std::endl;
|
||||
// } else
|
||||
// std::cerr << Any2String(val) << std::endl;
|
||||
return val;
|
||||
}
|
||||
std::string func_name = ctx->atom()->NAME()->getText();
|
||||
|
Reference in New Issue
Block a user