From f59d92bc1243d5640e680f9db0de57b61c07792e Mon Sep 17 00:00:00 2001 From: trochas Date: Thu, 10 Apr 2025 10:27:33 +0200 Subject: [PATCH] symTable Var --- src/main/java/TP2/asd/SymTable.java | 12 +++++++++++- src/main/java/TP2/asd/toLLVM_Visitor.java | 7 +++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/TP2/asd/SymTable.java b/src/main/java/TP2/asd/SymTable.java index 1ae4f9f..0956756 100644 --- a/src/main/java/TP2/asd/SymTable.java +++ b/src/main/java/TP2/asd/SymTable.java @@ -51,6 +51,17 @@ public class SymTable { return new Result(newSymTab,newVar); } + public Result addVar(String nomVar){ + String newVar = nomVar+id; + SymTable newSymTab = this.addVar(nomVar,new Type_intImp()); //TODO + return new Result(newSymTab,newVar); + } + + public String getVar(String nomVar){ + System.out.println("getVar(" + nomVar +") -------------------------------------------"); + return nomVar + this.stackMap.getLast().get(nomVar).id; + } + public PStack> next_layer(){ return stackMap.plus(HashTreePMap.empty()); } @@ -65,7 +76,6 @@ public class SymTable { public PMap peppapeek(){ if(stackMap.isEmpty()){ - System.out.println("TEST..............................."); return this.next_layer().getLast(); } return stackMap.getLast(); diff --git a/src/main/java/TP2/asd/toLLVM_Visitor.java b/src/main/java/TP2/asd/toLLVM_Visitor.java index f316c51..6a2e3a1 100644 --- a/src/main/java/TP2/asd/toLLVM_Visitor.java +++ b/src/main/java/TP2/asd/toLLVM_Visitor.java @@ -85,7 +85,10 @@ public class toLLVM_Visitor implements ProgramVisitor ArrayList list = new ArrayList<>(); for(int i = 0; i @Override public InstrAndVal visitVar(VarImp e, SymTable h) { - ValLLVM val = new VarLLVMImpl(new IntLLVMImpl(), e.name()); + ValLLVM val = new VarLLVMImpl(new IntLLVMImpl(), h.getVar(e.name())); return new InstrAndVal(new ArrayList<>(), val); }