diff --git a/src/main/antlr/VSLParser.g b/src/main/antlr/VSLParser.g index 144ca9d..0abb499 100644 --- a/src/main/antlr/VSLParser.g +++ b/src/main/antlr/VSLParser.g @@ -107,8 +107,8 @@ declaration returns [Declaration out] var_decl returns [VarDeclImp out]: id=ident - (CroO n=NUMBER CroF - {$out= new VarDeclImp($id.out,$n.int);} + (CroO e=expression CroF + {$out= new VarDeclImp($id.out,$e.out);} | {$out= new VarDeclImp($id.out, null);} ) diff --git a/src/main/java/TP2/asd/PrettyprinterVisitor.java b/src/main/java/TP2/asd/PrettyprinterVisitor.java index 4d0fd0f..b03a0da 100644 --- a/src/main/java/TP2/asd/PrettyprinterVisitor.java +++ b/src/main/java/TP2/asd/PrettyprinterVisitor.java @@ -70,7 +70,7 @@ public class PrettyprinterVisitor implements ProgramVisitor, if(instr.size()==null){ str+= instr.nom(); }else{ - str+= instr.nom()+ "["+instr.size()+"]"; + str+= instr.nom()+ "["+instr.size().accept(this, indent)+"]"; } return str; } diff --git a/src/main/java/TP2/asd/Program.java b/src/main/java/TP2/asd/Program.java index 5d811d3..df38e65 100644 --- a/src/main/java/TP2/asd/Program.java +++ b/src/main/java/TP2/asd/Program.java @@ -77,7 +77,7 @@ public class Program{ } } - public static record VarDeclImp(String nom, Integer size) implements Declaration{ + public static record VarDeclImp(String nom, Expression size) implements Declaration{ @Override public S accept(DeclVisitor v, H h) { return v.visitVarDecl(this, h); diff --git a/src/main/java/TP2/asd/toLLVM_Visitor.java b/src/main/java/TP2/asd/toLLVM_Visitor.java index e052364..9e5983b 100644 --- a/src/main/java/TP2/asd/toLLVM_Visitor.java +++ b/src/main/java/TP2/asd/toLLVM_Visitor.java @@ -109,7 +109,7 @@ public class toLLVM_Visitor implements ProgramVisitor, TypeLLVM t2 = instr.t().accept(this,h); Result r; String nom= instr.s().get(i).nom(); - Integer size=instr.s().get(i).size(); + Expression size=instr.s().get(i).size(); if(size==null){ r= h.addVar(nom,t2); h = r.symTable; diff --git a/src/main/java/TP2/llvm/ProgramLLVM.java b/src/main/java/TP2/llvm/ProgramLLVM.java index ffff430..dd2481e 100644 --- a/src/main/java/TP2/llvm/ProgramLLVM.java +++ b/src/main/java/TP2/llvm/ProgramLLVM.java @@ -231,7 +231,7 @@ public class ProgramLLVM { } } - public static record ArrayLLVMImp(TypeLLVM type, Integer size) implements TypeLLVM{ + public static record ArrayLLVMImp(TypeLLVM type, Expression size) implements TypeLLVM{ public S accept(TypeLLVMVisitor v, H h) { return v.visitArrayLLVM(this, h); }