diff --git a/src/main/java/TP2/Main.java b/src/main/java/TP2/Main.java index 5008630..96d430d 100644 --- a/src/main/java/TP2/Main.java +++ b/src/main/java/TP2/Main.java @@ -10,11 +10,16 @@ import org.antlr.runtime.RecognitionException; import org.antlr.runtime.Token; import TP2.asd.Program.*; -import TP2.llvm.Interface.ProgramLLVM; -import TP2.llvm.Program.ProgramLLVMImpl; +import TP2.llvm.ProgramLLVM; +import TP2.llvm.ProgramLLVM.*; import java.util.*; + +/* +./gradlew build +java -jar build/libs/TP2.jar tests/fragment0/priority2.vsl +*/ public class Main { public static void main(String[] args) { try { @@ -49,6 +54,11 @@ public class Main { // Generate the intermediate representation System.out.println("todo"); + //ProgramLLVMImpl astLLVM = ast.toLLVM(); + + //System.out.println("\n\n PRETTYPRINTER : \n--------------\n" + astLLVM.prettyprinter() + "\n--------------\nFIN PRETTYPRINTER"); + + } catch (IOException | RecognitionException e) { e.printStackTrace(); diff --git a/src/main/java/TP2/asd/Interface.java b/src/main/java/TP2/asd/Interface.java index 505c94f..af353f8 100644 --- a/src/main/java/TP2/asd/Interface.java +++ b/src/main/java/TP2/asd/Interface.java @@ -3,20 +3,24 @@ package TP2.asd; import java.util.ArrayList; import java.util.Map; import TP2.asd.Program.*; - +import TP2.llvm.Interface.*; +import TP2.llvm.ProgramLLVM.*; public interface Interface{ public interface ProgramI { public S accept(ProgramVisitor v, H h); public String prettyprinter(); + public ProgramLLVMImpl toLLVM(); } public interface Function { public S accept(FunctionVisitor v, H h); - public String prettyprinter(String indent); + public String prettyprinter(String indent); + public DefineLLVM toLLVM(); } public interface Instruction { public S accept(InstrVisitor v, H h); public String prettyprinter(String indent); + public InstructionLLVM toLLVM(); } public interface Expression { diff --git a/src/main/java/TP2/asd/Program.java b/src/main/java/TP2/asd/Program.java index 23cfb63..fec6b40 100644 --- a/src/main/java/TP2/asd/Program.java +++ b/src/main/java/TP2/asd/Program.java @@ -6,6 +6,8 @@ import java.util.Map; import org.antlr.grammar.v3.ANTLRParser.defaultNodeOption_return; import TP2.asd.Interface.*; +import TP2.llvm.ProgramLLVM.*; +import TP2.llvm.Interface.*; @@ -26,6 +28,17 @@ public class Program{ } return str; } + + @Override + public ProgramLLVMImpl toLLVM() { + ArrayList fonctionLLVM = new ArrayList<>(); + for(int i = 0; i(),fonctionLLVM); + } + + } public static record FunctionImp(Type type, String nom, ArrayList instructions)implements Function { @@ -45,6 +58,15 @@ public class Program{ str+= indent+"}"; return str; } + + @Override + public DefineLLVM toLLVM() { + ArrayList instrLLVM = new ArrayList<>(); + for(int i = 0; i S accept(InstrVisitor v, H h) { @@ -96,6 +124,12 @@ public class Program{ // TODO Auto-generated method stub throw new UnsupportedOperationException("Unimplemented method 'prettyprinter'"); } + + @Override + public InstructionLLVM toLLVM() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'toLLVM'"); + } } public static record Type_voidImp() implements Type{ diff --git a/src/main/java/TP2/llvm/ProgramLLVM.java b/src/main/java/TP2/llvm/ProgramLLVM.java index 1e89ae5..eb74dfa 100644 --- a/src/main/java/TP2/llvm/ProgramLLVM.java +++ b/src/main/java/TP2/llvm/ProgramLLVM.java @@ -7,12 +7,12 @@ import TP2.llvm.Interface.*; public class ProgramLLVM { - static String INDENT = " "; + + static String INDENT = " "; //TODO //TODO public static record ProgramLLVMImpl(int target ,ArrayList declration ,ArrayList fonctions) implements ProgLLVM{ - public String prettyprinter(){ String str = ""; str += target + "\n"; //TODO