diff --git a/src/protocol/ast_printer.rs b/src/protocol/ast_printer.rs index 1075d78961a11fdf554c641ea1d37715f0fc50bb..83cbb7af3b8022fc8614ea521b8ca594bb66d4d3 100644 --- a/src/protocol/ast_printer.rs +++ b/src/protocol/ast_printer.rs @@ -433,6 +433,8 @@ impl ASTWriter { self.kv(indent2).with_s_key("Variable"); self.write_variable(heap, stmt.variable, indent3); + self.kv(indent2).with_s_key("InitialValue"); + self.write_expr(heap, stmt.initial_expr.upcast(), indent3); self.kv(indent2).with_s_key("Next").with_disp_val(&stmt.next.index); } } @@ -541,15 +543,8 @@ impl ASTWriter { let indent3 = indent2 + 1; let indent4 = indent3 + 1; for case in &stmt.cases { - if !case.guard_var.is_invalid() { - self.kv(indent3).with_s_key("GuardStatement"); - self.write_stmt(heap, case.guard_var.upcast().upcast(), indent4); - } else { - self.kv(indent3).with_s_key("GuardStatement").with_s_val("None"); - } - - self.kv(indent3).with_s_key("GuardExpression"); - self.write_stmt(heap, case.guard_expr.upcast(), indent4); + self.kv(indent3).with_s_key("Guard"); + self.write_stmt(heap, case.guard, indent4); self.kv(indent3).with_s_key("Block"); self.write_stmt(heap, case.block.upcast(), indent4); @@ -1021,6 +1016,7 @@ fn write_expression_parent(target: &mut String, parent: &ExpressionParent) { *target = match parent { EP::None => String::from("None"), + EP::Memory(id) => format!("MemStmt({})", id.0.0.index), EP::If(id) => format!("IfStmt({})", id.0.index), EP::While(id) => format!("WhileStmt({})", id.0.index), EP::Return(id) => format!("ReturnStmt({})", id.0.index),