diff options
Diffstat (limited to 'src/ast/nodes/SimpleStmtNode.java')
-rw-r--r-- | src/ast/nodes/SimpleStmtNode.java | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/ast/nodes/SimpleStmtNode.java b/src/ast/nodes/SimpleStmtNode.java index fbeeb1b..31a935f 100644 --- a/src/ast/nodes/SimpleStmtNode.java +++ b/src/ast/nodes/SimpleStmtNode.java @@ -23,23 +23,23 @@ public class SimpleStmtNode implements Node { } @Override - public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { + public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting, FunctionType ft) { ArrayList<SemanticError> errors = new ArrayList<>(); if (assignment != null) { - errors.addAll(assignment.checkSemantics(ST, _nesting)); + errors.addAll(assignment.checkSemantics(ST, _nesting, ft)); } if (expr != null) { - errors.addAll(expr.checkSemantics(ST, _nesting)); + errors.addAll(expr.checkSemantics(ST, _nesting, ft)); } if (returnStmt != null) { - errors.addAll(returnStmt.checkSemantics(ST, _nesting)); + errors.addAll(returnStmt.checkSemantics(ST, _nesting, ft)); } if (importStmt != null) { - errors.addAll(importStmt.checkSemantics(ST, _nesting)); + errors.addAll(importStmt.checkSemantics(ST, _nesting, ft)); } return errors; @@ -50,10 +50,26 @@ public class SimpleStmtNode implements Node { return new VoidType(); } - // TODO: add code generation for SimpleStmtNode @Override public String codeGeneration() { - return ""; + if (assignment != null) { + return assignment.codeGeneration(); + } + + if (expr != null) { + return expr.codeGeneration(); + } + + if (returnStmt != null) { + return returnStmt.codeGeneration(); + } + + // Not supported + // if (importStmt != null) { + // return importStmt.codeGeneration(); + // } + + return "Error: everything is null in Compound node"; } @Override |