diff --git a/src/main/java/TP2/asd/PrettyprinterVisitor.java b/src/main/java/TP2/asd/PrettyprinterVisitor.java index b03a0da..16a1ef7 100644 --- a/src/main/java/TP2/asd/PrettyprinterVisitor.java +++ b/src/main/java/TP2/asd/PrettyprinterVisitor.java @@ -13,7 +13,7 @@ public class PrettyprinterVisitor implements ProgramVisitor, static String INDENT = " "; - //PROGRAM + //PROGRAM ----------------------------------- @Override public String visitProgram(ProgramImp prog, String indent) { @@ -25,7 +25,9 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str; } - //PROTOTYPE + + //FUNCTION ----------------------------------- + @Override public String visitPrototype(PrototypeImp proto, String indent){ String str= indent + "PROTO "+proto.type().accept(this, "")+ " "+ proto.nom() + "("; @@ -38,7 +40,7 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str+")"; } - //FUNCTION + @Override public String visitFunction(FunctionImp fun, String indent) { String str = indent+"FUNC " + fun.type().accept(this,"")+ " " + fun.nom() +"("; @@ -53,7 +55,9 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str; } - //DELCARATION + + //DELCARATION ----------------------------------- + @Override public String visitDeclaration(DeclarationImp instr, String indent) { String str = indent +instr.t().accept(this,"") + " "; @@ -74,12 +78,16 @@ public class PrettyprinterVisitor implements ProgramVisitor, } return str; } - //INSTRUCTION + + + //INSTRUCTION ----------------------------------- + @Override public String visitReturn(Return_instrImp instr, String indent) { return indent+"RETURN " + instr.e().accept(this,""); } + @Override public String visitBloc(BlocImp instr, String indent) { String str = "{\n"; @@ -90,6 +98,7 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str; } + @Override public String visitBlocDec(BlocDecImp instr, String indent) { String str = "{\n"; @@ -104,11 +113,13 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str; } + @Override public String visitAssign(AssignImp instr, String indent) { return indent + instr.t()+ " := " + instr.e().accept(this,""); } + @Override public String visitPrint(PrintImp instr, String indent) { String str = indent + "PRINT "; @@ -125,6 +136,18 @@ public class PrettyprinterVisitor implements ProgramVisitor, return str; } + + @Override + public String visitRead(ReadImp instr, String indent) { + String str = indent+"READ "; + for(int i = 0; i, return str; } - @Override - public String visitRead(ReadImp instr, String indent) { - String str = indent+"READ "; - for(int i = 0; i, return str; } - //EXPRESSION + + //EXPRESSION ----------------------------------- + @Override public String visitConst(ConstImp e, String indent) { return e.c()+""; @@ -198,6 +214,13 @@ public class PrettyprinterVisitor implements ProgramVisitor, return "(" + e.e1().accept(this,"") +" "+ opStr +" " + e.e2().accept(this,"") + ")"; } + + @Override + public String visitVar(VarImp e, String h) { + return e.name(); + } + + @Override public String visitCall(CallImp instr,String indent){ String str = indent + instr.fName() + "("; @@ -209,7 +232,7 @@ public class PrettyprinterVisitor implements ProgramVisitor, } - //TYPE + //TYPE ----------------------------------- @Override public String visitInt(Type_intImp t, String h) { @@ -221,9 +244,5 @@ public class PrettyprinterVisitor implements ProgramVisitor, return "VOID"; } - @Override - public String visitVar(VarImp e, String h) { - return e.name(); - } } \ No newline at end of file