From ce49d20a5fe3726e1800bc495a25c7617212abf4 Mon Sep 17 00:00:00 2001 From: Emanuele Grasso <96300448+L0P0P@users.noreply.github.com> Date: Sun, 14 Jul 2024 18:48:09 +0200 Subject: Reaching definition analysis (#17) Co-authored-by: Santo Cariotti Co-authored-by: geno Co-authored-by: geno --- src/ast/nodes/WhileStmtNode.java | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/ast/nodes/WhileStmtNode.java') diff --git a/src/ast/nodes/WhileStmtNode.java b/src/ast/nodes/WhileStmtNode.java index d371046..43bf5ff 100644 --- a/src/ast/nodes/WhileStmtNode.java +++ b/src/ast/nodes/WhileStmtNode.java @@ -33,14 +33,33 @@ public class WhileStmtNode implements Node { return new VoidType(); } - // TODO: add cgen per while (but it's not requested from the exercise) + /** + * NOTE: It is not a part for this project. + */ @Override public String codeGeneration() { return ""; } + @Override + public String printAST(String prefix) { + return prefix + "While\n" + expr.printAST(prefix + " ") + block.printAST(prefix + " "); + } + @Override public String toPrint(String prefix) { - return prefix + "While\n" + expr.toPrint(prefix + " ") + block.toPrint(prefix + " "); + String str = prefix + "while "; + str += expr.toPrint("") + ":\n"; + str += block.toPrint(prefix + "\t") + "\n"; + return str; + } + + public Node getBlock() { + return block; + } + + public Node getExpr() { + return expr; } + } -- cgit v1.2.3-18-g5258