From b737eb8e7d8cbda008aa4c14b7eacbd87b1248ef Mon Sep 17 00:00:00 2001 From: ZhuangYumin Date: Thu, 9 Nov 2023 10:03:47 +0800 Subject: [PATCH] upd: fix bug in Any2String --- src/Evalvisitor.cpp | 16 +++++++++++++++- src/utils.cpp | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Evalvisitor.cpp b/src/Evalvisitor.cpp index 3ace0c7..dd18219 100644 --- a/src/Evalvisitor.cpp +++ b/src/Evalvisitor.cpp @@ -133,7 +133,20 @@ std::any EvalVisitor::visitFactor(Python3Parser::FactorContext *ctx) { } std::any EvalVisitor::visitAtom_expr(Python3Parser::Atom_exprContext *ctx) { - return visitChildren(ctx); + if (!ctx->trailer()) { + auto val = visitAtom(ctx->atom()); + std::cerr << "[Log] The Atom returns : "; + if (auto ptr = std::any_cast(&val)) { + std::cerr << "NoneType" << std::endl; + } else if (auto ptr = std::any_cast(&val)) { + std::cerr << "Variable Name=" << ptr->name + << " val=" << Any2String(Variables.ReadVariable(ptr->name)) + << std::endl; + } else + std::cerr << Any2String(val) << std::endl; + return val; + } + throw FatalError("Not implemented in function visitAtom_expr: function call"); } std::any EvalVisitor::visitTrailer(Python3Parser::TrailerContext *ctx) { @@ -164,6 +177,7 @@ std::any EvalVisitor::visitAtom(Python3Parser::AtomContext *ctx) { const std::string &tmp = item->getText(); res.append(tmp, 1, tmp.size() - 2); } + // std::cerr<<"[Log] The string is : "<(&value)) buf << *ptr; + else if (auto ptr = std::any_cast(&value)) + buf << *ptr; else throw FatalError("Any2String: unknown type"); buf >> res;