From 49c438234313924303829a333d4fae901c390f85 Mon Sep 17 00:00:00 2001 From: Vu Tuan Minh Date: Sat, 26 Apr 2025 22:05:05 +0200 Subject: [PATCH] fix prototype --- src/main/antlr/VSLParser.g | 6 +++--- src/main/java/TP2/asd/PrettyprinterVisitor.java | 15 +++++++++------ src/main/java/TP2/asd/Program.java | 2 +- tests/aLaMain.vsl | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/antlr/VSLParser.g b/src/main/antlr/VSLParser.g index f3df107..a709044 100644 --- a/src/main/antlr/VSLParser.g +++ b/src/main/antlr/VSLParser.g @@ -28,16 +28,16 @@ program returns [ProgramImp p] : {$p = new ProgramImp($func.out,$pro.out);} ; -prototypes returns [ArrayList out] +prototypes returns [ArrayList out] @init{ - $out = new ArrayList(); + $out = new ArrayList(); }: (proto { $out.add($proto.out); })* ; -proto returns [Prototype out]: +proto returns [Function out]: PROTOTYPE t=type i=ident ParO v=liste_param ParF { $out=new PrototypeImp($t.return_type,$i.out, $v.out); diff --git a/src/main/java/TP2/asd/PrettyprinterVisitor.java b/src/main/java/TP2/asd/PrettyprinterVisitor.java index 57fab59..5031726 100644 --- a/src/main/java/TP2/asd/PrettyprinterVisitor.java +++ b/src/main/java/TP2/asd/PrettyprinterVisitor.java @@ -18,10 +18,15 @@ public class PrettyprinterVisitor implements ProgramVisitor, @Override public String visitProgram(ProgramImp prog, String indent) { String str =""; - for(int i = 0; i, @Override public String visitPrototype(PrototypeImp proto, String indent){ String str= indent + "PROTO "+proto.type().accept(this, "")+ " "+ proto.nom() + "("; - for(int i=0; i, @Override public String visitFunction(FunctionImp fun, String indent) { String str = indent+"FUNC " + fun.type().accept(this,"")+ " " + fun.nom() +"("; - for(int i=0; i fonctions) implements ProgramI{ + public static record ProgramImp(ArrayList fonctions,ArrayList protos) implements ProgramI{ public S accept(ProgramVisitor v, H h) { return v.visitProgram(this, h); } diff --git a/tests/aLaMain.vsl b/tests/aLaMain.vsl index fa984d7..2aa0dd9 100644 --- a/tests/aLaMain.vsl +++ b/tests/aLaMain.vsl @@ -1,7 +1,7 @@ PROTO INT add(x,y) FUNC INT main(x,y) { INT a,b,c,minh - x = 5 + x := 5 minh := x * y b:=3 c:=1