void find_identifiers(AST_Expression &exp, IdMap &idmap) { switch(exp.getType()) { case AST_BEXP: find_identifiers((AST_BinaryExpression&)exp, idmap); break; case AST_UEXP: find_identifiers((AST_UnaryExpression&)exp, idmap); break; case AST_ID: find_identifiers((AST_Identifier&)exp, idmap); break; default: std::cout << "Error?" << std::endl; } }
bool evaluate(AST_Expression &exp, ValueMap &valmap) { switch(exp.getType()) { case AST_BEXP: return evaluate((AST_BinaryExpression&)exp, valmap); case AST_UEXP: return evaluate((AST_UnaryExpression&)exp, valmap); case AST_ID: return evaluate((AST_Identifier&)exp, valmap); default: std::cout << "Error?" << std::endl; } return false; }