append(format("Literal: %s -> %s", literal.token, format_type(literal.type)));
}
-void DumpTree::visit(ParenthesizedExpression &parexpr)
-{
- annotated_branch(format("(expr) -> %s", format_type(parexpr.type)), *parexpr.expression);
-}
-
void DumpTree::visit(VariableReference &var)
{
string text;
void DumpTree::visit(BinaryExpression &binary)
{
- append(format("Binary: %s -> %s", (binary.oper->token[0]=='[' ? "[]" : binary.oper->token), format_type(binary.type)));
+ append(format("Binary: %s%s -> %s", binary.oper->token, binary.oper->token2, format_type(binary.type)));
begin_sub();
binary.left->visit(*this);
last_branch();
end_sub();
}
+void DumpTree::visit(TernaryExpression &ternary)
+{
+ append(format("Ternary: %s%s -> %s", ternary.oper->token, ternary.oper->token2, format_type(ternary.type)));
+ begin_sub();
+ ternary.condition->visit(*this);
+ ternary.true_expr->visit(*this);
+ last_branch();
+ ternary.false_expr->visit(*this);
+ end_sub();
+}
+
void DumpTree::visit(FunctionCall &call)
{
string head = "Function call: ";