void PrintASTVisitor::visit(ComparisonOpNode& node) { std::string op(" "); switch (node.op()) { case Less: op = "<"; break; case Greater: op = ">"; break; case LessEqual: op = "<="; break; case GreaterEqual: op = ">="; break; case Equal: op = "=="; break; case NotEqual: op = "!="; break; default: break; } std::cout << indent() << "ComparisonOpNode: " << op << '\n'; ++indent_; }
void PrintEquelleASTVisitor::midVisit(ComparisonOpNode& node) { std::string op(" "); switch (node.op()) { case Less: op = "<"; break; case Greater: op = ">"; break; case LessEqual: op = "<="; break; case GreaterEqual: op = ">="; break; case Equal: op = "=="; break; case NotEqual: op = "!="; break; default: break; } std::cout << ' ' << op << ' '; }
ComparisonOpNode* handleComparison(ComparisonOp op, ExpressionNode* left, ExpressionNode* right) { ComparisonOpNode* node = new ComparisonOpNode(op, left, right); node->setLocation(FileLocation(yylineno)); return node; }