diff options
| author | Emanuele Grasso <96300448+L0P0P@users.noreply.github.com> | 2024-07-06 09:47:25 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-06 09:47:25 +0200 | 
| commit | f0692ff5f9e39cbd1c203e9d5abebf55a3d0f6fc (patch) | |
| tree | 36518af3f04a751ba5bb8158c3f005cfa3e8c7c3 /src | |
| parent | 8aa8b5834953cab15c0687608f4fafea2e6c61be (diff) | |
Fixed the print of the ast and some warnings (#19)
Co-authored-by: Santo Cariotti <santo@dcariotti.me>
Diffstat (limited to 'src')
25 files changed, 40 insertions, 37 deletions
| diff --git a/src/ast/nodes/ArglistNode.java b/src/ast/nodes/ArglistNode.java index 425e4c6..a0ea25b 100644 --- a/src/ast/nodes/ArglistNode.java +++ b/src/ast/nodes/ArglistNode.java @@ -19,7 +19,7 @@ public class ArglistNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          for (var arg : arguments) {              if (arg instanceof ExprNode) { diff --git a/src/ast/nodes/AssignmentNode.java b/src/ast/nodes/AssignmentNode.java index 558e392..c4a44dc 100644 --- a/src/ast/nodes/AssignmentNode.java +++ b/src/ast/nodes/AssignmentNode.java @@ -22,7 +22,7 @@ public class AssignmentNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          // errors.addAll(lhr.checkSemantics(ST, _nesting));          errors.addAll(assign.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/AtomNode.java b/src/ast/nodes/AtomNode.java index 47a15d7..37d4d79 100644 --- a/src/ast/nodes/AtomNode.java +++ b/src/ast/nodes/AtomNode.java @@ -30,7 +30,7 @@ public class AtomNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        var errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (val != null) {              if ((this.typeCheck() instanceof AtomType) && ST.nslookup(this.getId()) < 0) { diff --git a/src/ast/nodes/AugassignNode.java b/src/ast/nodes/AugassignNode.java index 7ced63e..aef60cc 100644 --- a/src/ast/nodes/AugassignNode.java +++ b/src/ast/nodes/AugassignNode.java @@ -21,7 +21,7 @@ public class AugassignNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        return new ArrayList(); +        return new ArrayList<>();      }      // FIXME: use the right type diff --git a/src/ast/nodes/BlockNode.java b/src/ast/nodes/BlockNode.java index d9a151d..732e89b 100644 --- a/src/ast/nodes/BlockNode.java +++ b/src/ast/nodes/BlockNode.java @@ -16,7 +16,7 @@ public class BlockNode extends RootNode {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          // Check semantics for each child          for (Node child : childs) { diff --git a/src/ast/nodes/CompForNode.java b/src/ast/nodes/CompForNode.java index b7c6924..405a400 100644 --- a/src/ast/nodes/CompForNode.java +++ b/src/ast/nodes/CompForNode.java @@ -23,7 +23,7 @@ public class CompForNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          errors.addAll(exprlist.checkSemantics(ST, _nesting));          errors.addAll(single_expr.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/CompIterNode.java b/src/ast/nodes/CompIterNode.java index 8de9f2f..1cc8a9b 100644 --- a/src/ast/nodes/CompIterNode.java +++ b/src/ast/nodes/CompIterNode.java @@ -19,7 +19,7 @@ public class CompIterNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (comp_for != null) {              errors.addAll(comp_for.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/CompNode.java b/src/ast/nodes/CompNode.java index 22906df..b6e0191 100644 --- a/src/ast/nodes/CompNode.java +++ b/src/ast/nodes/CompNode.java @@ -20,7 +20,7 @@ public class CompNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        return new ArrayList(); +        return new ArrayList<>();      }      // TODO: it should be boolean, right? diff --git a/src/ast/nodes/CompoundNode.java b/src/ast/nodes/CompoundNode.java index 845f05e..2655f35 100644 --- a/src/ast/nodes/CompoundNode.java +++ b/src/ast/nodes/CompoundNode.java @@ -24,7 +24,7 @@ public class CompoundNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (ifNode != null) {              errors.addAll(ifNode.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/DottedNameNode.java b/src/ast/nodes/DottedNameNode.java index 23f14c1..2698b1c 100644 --- a/src/ast/nodes/DottedNameNode.java +++ b/src/ast/nodes/DottedNameNode.java @@ -20,7 +20,7 @@ public class DottedNameNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          for (int i = 0; i < names.size(); ++i) {              ST.insert(names.get(i).toString(), this.typeCheck(), _nesting, null); diff --git a/src/ast/nodes/ExprNode.java b/src/ast/nodes/ExprNode.java index 873d537..693176a 100644 --- a/src/ast/nodes/ExprNode.java +++ b/src/ast/nodes/ExprNode.java @@ -52,7 +52,7 @@ public class ExprNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          // check if the atom is a function          if (atom != null && !trailers.isEmpty()) { @@ -130,19 +130,22 @@ public class ExprNode implements Node {          if (atom != null) {              str += atom.toPrint(prefix);          } -          if (compOp != null) {              str += compOp.toPrint(prefix);          } - -        for (var expr : exprs) { -            str = expr.toPrint(prefix); -        } - -        for (var trailer : trailers) { -            str = trailer.toPrint(prefix); +         +        if (exprs != null) { +            for (var expr : exprs) { +                str += expr.toPrint(prefix); +            }          } - +         +        if (trailers != null) { +            for (var trailer : trailers) { +                str += trailer.toPrint(prefix); +            } +        }  +                  if (op != null) {              str += prefix + "Op(" + op + ")\n";          } diff --git a/src/ast/nodes/ForStmtNode.java b/src/ast/nodes/ForStmtNode.java index 74c6ffc..50574f0 100644 --- a/src/ast/nodes/ForStmtNode.java +++ b/src/ast/nodes/ForStmtNode.java @@ -34,7 +34,7 @@ public class ForStmtNode implements Node {       */      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          // Save every atom in the expression's list, except the last one          var l = (ExprListNode) exprList; diff --git a/src/ast/nodes/FuncdefNode.java b/src/ast/nodes/FuncdefNode.java index c4f5846..91231cc 100644 --- a/src/ast/nodes/FuncdefNode.java +++ b/src/ast/nodes/FuncdefNode.java @@ -26,14 +26,14 @@ public class FuncdefNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          int paramNumber = ((ParamlistNode) paramlist).getParamNumber();          Type returnType = this.block.typeCheck();          FunctionType ft = new FunctionType(paramNumber, returnType);          ST.insert(this.name.toString(), ft, _nesting, ""); -        HashMap<String, STentry> HM = new HashMap(); +        HashMap<String, STentry> HM = new HashMap<>();          ST.add(HM); diff --git a/src/ast/nodes/IfNode.java b/src/ast/nodes/IfNode.java index b0e1ddb..223dffb 100644 --- a/src/ast/nodes/IfNode.java +++ b/src/ast/nodes/IfNode.java @@ -22,7 +22,7 @@ public class IfNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          errors.addAll(guard.checkSemantics(ST, _nesting));          errors.addAll(thenbranch.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/ImportNode.java b/src/ast/nodes/ImportNode.java index 7e95ee3..f26c0d0 100644 --- a/src/ast/nodes/ImportNode.java +++ b/src/ast/nodes/ImportNode.java @@ -27,7 +27,7 @@ public class ImportNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (isFrom) {              for (int i = 0; i < names.size(); ++i) { diff --git a/src/ast/nodes/ParamdefNode.java b/src/ast/nodes/ParamdefNode.java index 6cdb2d0..e5694fa 100644 --- a/src/ast/nodes/ParamdefNode.java +++ b/src/ast/nodes/ParamdefNode.java @@ -17,7 +17,7 @@ public class ParamdefNode extends AtomNode {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        var errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          String paramName = this.getId();          if (!ST.top_lookup(paramName)) { diff --git a/src/ast/nodes/ParamlistNode.java b/src/ast/nodes/ParamlistNode.java index cf75d08..e8c9a42 100644 --- a/src/ast/nodes/ParamlistNode.java +++ b/src/ast/nodes/ParamlistNode.java @@ -18,7 +18,7 @@ public class ParamlistNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          for (var param : params) {              errors.addAll(param.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/ReturnStmtNode.java b/src/ast/nodes/ReturnStmtNode.java index 8e34813..bb49ded 100644 --- a/src/ast/nodes/ReturnStmtNode.java +++ b/src/ast/nodes/ReturnStmtNode.java @@ -18,7 +18,7 @@ public class ReturnStmtNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (this.exprList != null) {              errors.addAll(this.exprList.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/RootNode.java b/src/ast/nodes/RootNode.java index 5bbce8c..26778f4 100644 --- a/src/ast/nodes/RootNode.java +++ b/src/ast/nodes/RootNode.java @@ -20,10 +20,10 @@ public class RootNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          // Create a new HashMap for the current scope -        HashMap<String, STentry> HM = new HashMap(); +        HashMap<String, STentry> HM = new HashMap<>();          // Add the HashMap to the SymbolTable          ST.add(HM); diff --git a/src/ast/nodes/SimpleStmtNode.java b/src/ast/nodes/SimpleStmtNode.java index b2bc880..fbeeb1b 100644 --- a/src/ast/nodes/SimpleStmtNode.java +++ b/src/ast/nodes/SimpleStmtNode.java @@ -24,7 +24,7 @@ public class SimpleStmtNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (assignment != null) {              errors.addAll(assignment.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/SimpleStmtsNode.java b/src/ast/nodes/SimpleStmtsNode.java index ae1044b..5377c5d 100644 --- a/src/ast/nodes/SimpleStmtsNode.java +++ b/src/ast/nodes/SimpleStmtsNode.java @@ -18,7 +18,7 @@ public class SimpleStmtsNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          for (Node stmt : stmts) {              errors.addAll(stmt.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/TrailerNode.java b/src/ast/nodes/TrailerNode.java index aaa72f3..d8301b8 100644 --- a/src/ast/nodes/TrailerNode.java +++ b/src/ast/nodes/TrailerNode.java @@ -29,7 +29,7 @@ public class TrailerNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          if (arglist != null) {              errors.addAll(arglist.checkSemantics(ST, _nesting)); diff --git a/src/ast/nodes/WhileStmtNode.java b/src/ast/nodes/WhileStmtNode.java index 1db01ea..352cbc0 100644 --- a/src/ast/nodes/WhileStmtNode.java +++ b/src/ast/nodes/WhileStmtNode.java @@ -20,7 +20,7 @@ public class WhileStmtNode implements Node {      @Override      public ArrayList<SemanticError> checkSemantics(SymbolTable ST, int _nesting) { -        ArrayList<SemanticError> errors = new ArrayList(); +        ArrayList<SemanticError> errors = new ArrayList<>();          errors.addAll(expr.checkSemantics(ST, _nesting));          errors.addAll(block.checkSemantics(ST, _nesting)); diff --git a/src/semanticanalysis/Share.java b/src/semanticanalysis/Share.java index 7542cf7..a05c4c5 100644 --- a/src/semanticanalysis/Share.java +++ b/src/semanticanalysis/Share.java @@ -10,7 +10,7 @@ public class Share {       * generic because it's used a custom contains function.       */      public static ArrayList<SemanticError> removeDuplicates(ArrayList<SemanticError> list) { -        ArrayList<SemanticError> newList = new ArrayList(); +        ArrayList<SemanticError> newList = new ArrayList<>();          for (SemanticError element : list) {              if (!customContains(newList, element)) { diff --git a/src/semanticanalysis/SymbolTable.java b/src/semanticanalysis/SymbolTable.java index b620af7..50309a5 100644 --- a/src/semanticanalysis/SymbolTable.java +++ b/src/semanticanalysis/SymbolTable.java @@ -15,8 +15,8 @@ public class SymbolTable {      private final ArrayList<Integer> offset;      public SymbolTable() { -        this.symbolTable = new ArrayList(); -        this.offset = new ArrayList(); +        this.symbolTable = new ArrayList<>(); +        this.offset = new ArrayList<>();      }      /** | 
