diff --git a/src/main/antlr/VSLParser.g b/src/main/antlr/VSLParser.g index 9a2ae61..61e0fdb 100644 --- a/src/main/antlr/VSLParser.g +++ b/src/main/antlr/VSLParser.g @@ -93,6 +93,17 @@ instruction returns [Instruction out]: } )* {$out = new PrintImp(printer);} + | //READ + READ i1=ident + { + ArrayList read= new ArrayList(); + read.add($i1.out); + }(VIRGULE i2=ident + { + read.add($i2.out); + })* + {$out = new ReadImp(read);} + ; //Priorité lit(val, const ou paranthese) -> td_exp (*/%) -> exp (+-) diff --git a/src/main/java/TP2/asd/Interface.java b/src/main/java/TP2/asd/Interface.java index ffee595..2a61d9c 100644 --- a/src/main/java/TP2/asd/Interface.java +++ b/src/main/java/TP2/asd/Interface.java @@ -36,6 +36,7 @@ public interface Interface{ public S visitAssign(AssignImp instr, H h); public S visitDeclaration(DeclarationImp instr,H h); public S visitPrint(PrintImp instr, H h); + public S visitRead(ReadImp instr,H h); } diff --git a/src/main/java/TP2/asd/PrettyprinterVisitor.java b/src/main/java/TP2/asd/PrettyprinterVisitor.java index 0ce0ff6..132f4e0 100644 --- a/src/main/java/TP2/asd/PrettyprinterVisitor.java +++ b/src/main/java/TP2/asd/PrettyprinterVisitor.java @@ -67,6 +67,11 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str; } + @Override + public String visitRead(ReadImp instr, String h) { + return "Tibo, tu peux implenter le truc stp"; + } + //EXPRESSION @Override diff --git a/src/main/java/TP2/asd/toLLVM_Visitor.java b/src/main/java/TP2/asd/toLLVM_Visitor.java index bcafaa8..9b746ad 100644 --- a/src/main/java/TP2/asd/toLLVM_Visitor.java +++ b/src/main/java/TP2/asd/toLLVM_Visitor.java @@ -97,6 +97,14 @@ public class toLLVM_Visitor implements ProgramVisitor throw new UnsupportedOperationException("Unimplemented method 'visitPrint'"); } + @Override + public ArrayList visitRead(ReadImp instr, SymTable h) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'visitRead'"); + } + + //EXPRESSION + @Override public InstrOrVal visitConst(ConstImp e, SymTable h) { ValLLVM val = new ValLLVMImpl(new IntLLVMImpl(),e.c());