clean PrettyPrinterVisitor

This commit is contained in:
Rochas
2025-04-30 19:15:35 +02:00
parent c82d6a237d
commit 114d2c22aa

View File

@@ -13,7 +13,7 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
static String INDENT = " ";
//PROGRAM
//PROGRAM -----------------------------------
@Override
public String visitProgram(ProgramImp prog, String indent) {
@@ -25,7 +25,9 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
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<String,String>,
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<String,String>,
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<String,String>,
}
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<String,String>,
return str;
}
@Override
public String visitBlocDec(BlocDecImp instr, String indent) {
String str = "{\n";
@@ -104,11 +113,13 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
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<String,String>,
return str;
}
@Override
public String visitRead(ReadImp instr, String indent) {
String str = indent+"READ ";
for(int i = 0; i<instr.t().size(); i++){
str += instr.t().get(i).accept(this,indent);
if(i<instr.t().size()-1) str += ", ";
}
return str;
}
@Override
public String visitIfThen(IfThenImp instr, String indent) {
String str = indent + "IF ";
@@ -145,15 +168,6 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
return str;
}
@Override
public String visitRead(ReadImp instr, String indent) {
String str = indent+"READ ";
for(int i = 0; i<instr.t().size(); i++){
str += instr.t().get(i).accept(this,indent);
if(i<instr.t().size()-1) str += ", ";
}
return str;
}
@Override
public String visitWhile(WhileImp instr, String indent) {
@@ -178,7 +192,9 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
return str;
}
//EXPRESSION
//EXPRESSION -----------------------------------
@Override
public String visitConst(ConstImp e, String indent) {
return e.c()+"";
@@ -198,6 +214,13 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
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<String,String>,
}
//TYPE
//TYPE -----------------------------------
@Override
public String visitInt(Type_intImp t, String h) {
@@ -221,9 +244,5 @@ public class PrettyprinterVisitor implements ProgramVisitor<String,String>,
return "VOID";
}
@Override
public String visitVar(VarImp e, String h) {
return e.name();
}
}