diff --git a/src/main/antlr/VSLLexer.g b/src/main/antlr/VSLLexer.g index ea274fc..d9f5c18 100644 --- a/src/main/antlr/VSLLexer.g +++ b/src/main/antlr/VSLLexer.g @@ -16,14 +16,6 @@ TYPE_INT: 'INT' ; TYPE_VOID: 'VOID' ; -LE : '<=' - ; -LT : '<' - ; -GE : '>=' - ; -GT : '>' - ; ASSIGN :':=' ; IF : 'IF' @@ -46,7 +38,7 @@ PRINT : 'PRINT' ; RETURN: 'RETURN' ; -TEXT : '"' (ASCII)+ '"' +TEXT : '"' (ASCII)+ '"' {getText().substring(1,getText().length()-1)} ; NUMBER : (DIGIT)+ ; diff --git a/src/main/java/TP2/asd/Program.java b/src/main/java/TP2/asd/Program.java index f80dbde..18a344b 100644 --- a/src/main/java/TP2/asd/Program.java +++ b/src/main/java/TP2/asd/Program.java @@ -1,10 +1,6 @@ package TP2.asd; import java.util.ArrayList; -import java.util.Map; - -import javax.swing.plaf.synth.SynthLabelUI; - import TP2.asd.Interface.*; import TP2.llvm.ProgramLLVM.*; import TP2.llvm.Interface.*; diff --git a/src/main/java/TP2/asd/SymTable.java b/src/main/java/TP2/asd/SymTable.java index f861701..684e678 100644 --- a/src/main/java/TP2/asd/SymTable.java +++ b/src/main/java/TP2/asd/SymTable.java @@ -7,10 +7,10 @@ import TP2.asd.Interface.Type; import TP2.asd.Program.Type_intImp; public class SymTable { - private Stack> stackMap; + private PStack> stackMap; private int id=1; public SymTable(){ - this.stackMap= new Stack<>(); + this.stackMap= ConsPStack.empty(); } public String addNewTempVar(/*Type type*/){ @@ -22,17 +22,17 @@ public class SymTable { } public void next_layer(){ - stackMap.push(HashTreePMap.empty()); + stackMap.plus(HashTreePMap.empty()); } public void quit_layer() throws Exception{ if(stackMap.isEmpty()){ throw new Exception(); } - stackMap.pop(); + stackMap.minus(stackMap.indexOf(stackMap.getLast())); } public PMap peppapeek(){ - return stackMap.peek(); + return stackMap.getLast(); } public void addVar(String s, Type t){ @@ -41,9 +41,9 @@ public class SymTable { pmap= pmap.plus(s/*+"_"+this.id*/,t); //this.id++; //Delete old ones - stackMap.pop(); + stackMap.minus(stackMap.indexOf(stackMap.getLast())); //Push the new one - stackMap.push(pmap); + stackMap.plus(pmap); } //Usually look for var in highest level , if not found research. diff --git a/tests/aLaMain.vsl b/tests/aLaMain.vsl index ee0b70d..1a2790c 100644 --- a/tests/aLaMain.vsl +++ b/tests/aLaMain.vsl @@ -3,4 +3,4 @@ FUNC INT main() { b:=3 c:=1 a := b+c - RETURN 4 + 6 * 5 + a } \ No newline at end of file + RETURN 4 + 6 * 5 + 2 } \ No newline at end of file