summaryrefslogtreecommitdiff
path: root/src/ast/nodes/CompoundNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast/nodes/CompoundNode.java')
-rw-r--r--src/ast/nodes/CompoundNode.java42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/ast/nodes/CompoundNode.java b/src/ast/nodes/CompoundNode.java
index f0f63f2..ad3420d 100644
--- a/src/ast/nodes/CompoundNode.java
+++ b/src/ast/nodes/CompoundNode.java
@@ -22,6 +22,7 @@ public class CompoundNode implements Node {
this.whileStmt = whileStmt;
}
+
@Override
public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting, FunctionType ft) {
ArrayList<SemanticError> errors = new ArrayList<>();
@@ -72,12 +73,35 @@ public class CompoundNode implements Node {
}
@Override
- public String toPrint(String prefix) {
+ public String printAST(String prefix) {
String str = prefix + "CompoundNode\n";
prefix += " ";
if (ifNode != null) {
+ str += ifNode.printAST(prefix);
+ }
+
+ if (funcDef != null) {
+ str += funcDef.printAST(prefix);
+ }
+
+ if (forStmt != null) {
+ str += forStmt.printAST(prefix);
+ }
+
+ if (whileStmt != null) {
+ str += whileStmt.printAST(prefix);
+ }
+
+ return str;
+ }
+
+ @Override
+ public String toPrint(String prefix) {
+ String str = "";
+
+ if (ifNode != null) {
str += ifNode.toPrint(prefix);
}
@@ -94,6 +118,22 @@ public class CompoundNode implements Node {
}
return str;
+
}
+ public Node getForStmt() {
+ return forStmt;
+ }
+
+ public Node getFuncDef() {
+ return funcDef;
+ }
+
+ public Node getIfNode() {
+ return ifNode;
+ }
+
+ public Node getWhileStmt() {
+ return whileStmt;
+ }
}