petit readme
This commit is contained in:
@@ -51,6 +51,9 @@ Type ::= INT | VOID
|
||||
|
||||
## Etat
|
||||
|
||||
Nous sommes arrivés jusqu'au segment 2, nous avons commencé le segment 3 mais celui-ci ne marche pas encore complètement
|
||||
Au niveau de la détection de type, nous l'avons directement intégré à l'intérieur du visitor toLLVM au lieu de le faire dans un bloc séparé, par manque de temps.
|
||||
|
||||
## Compatibilité
|
||||
|
||||
Pour construire le compilateur :
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
//TypeChecking implémenté à l'intèrieur de toLLVM...
|
||||
/*package TP2.Error;
|
||||
|
||||
import TP2.asd.SymTable;
|
||||
@@ -158,10 +159,9 @@ public class TypeChecking {
|
||||
}
|
||||
|
||||
@Override
|
||||
public TypeCheckExprDiag visitAppeal(AppealImp instr, SymTable h) {
|
||||
public TypeCheckExprDiag visitCall(CallImp instr, SymTable h) {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'visitAppeal'");
|
||||
throw new UnsupportedOperationException("Unimplemented method 'visitCall'");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}*/
|
||||
|
||||
@@ -30,14 +30,15 @@ java -jar build/libs/TP2.jar tests/fragment0/priority2.vsl
|
||||
|
||||
java -jar build/libs/TP2.jar tests/aLaMain.vsl
|
||||
|
||||
(/!\ pas besoin, le main le fait tout seul /!\) java -jar build/libs/TP2.jar tests/fragment1/while2.vsl > tests/fragment1/while2.ll
|
||||
(pas besoin, pour les test à la main) java -jar build/libs/TP2.jar tests/fragment1/while2.vsl > tests/fragment1/while2.ll
|
||||
|
||||
clang tests/aLaMain.ll -o tests/aLaMain
|
||||
|
||||
*/
|
||||
|
||||
public class Main {
|
||||
static Boolean TESTAUTOMOD = false;
|
||||
static Boolean TESTAUTOMOD = true; //pour les tests python mettre à true
|
||||
static Boolean AFFICHAGE = true;
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
// Set input
|
||||
@@ -62,19 +63,22 @@ public class Main {
|
||||
|
||||
// Pretty-print the program (to debug parsing)
|
||||
|
||||
if(!TESTAUTOMOD) System.out.println("\nVSL:\n");
|
||||
if(!TESTAUTOMOD && AFFICHAGE) System.out.println("\nVSL:\n");
|
||||
|
||||
if(!TESTAUTOMOD) System.out.println(ast.prettyprinter());
|
||||
if(!TESTAUTOMOD && AFFICHAGE) System.out.println(ast.prettyprinter());
|
||||
|
||||
// Verify the program semantic
|
||||
//Par manque de temps la vérification sémantique se fait uniquement dans toLLVM
|
||||
|
||||
// Generate the intermediate representation
|
||||
if(!TESTAUTOMOD) System.out.println("\nLLVM:\n");
|
||||
if(!TESTAUTOMOD && AFFICHAGE) System.out.println("\nLLVM:\n");
|
||||
|
||||
ProgramLLVMImp astLLVM = ast.toLLVM();
|
||||
|
||||
String llvmStr = astLLVM.prettyprinter();
|
||||
System.out.println(llvmStr);
|
||||
if(TESTAUTOMOD || AFFICHAGE){
|
||||
System.out.println(llvmStr);
|
||||
}
|
||||
|
||||
/*
|
||||
utiliser la commande :
|
||||
@@ -89,9 +93,11 @@ public class Main {
|
||||
llvmStr.getBytes(StandardCharsets.UTF_8)
|
||||
);
|
||||
|
||||
System.out.println("\n[VSL compile succes] : " + args[0] + " -> " + sortieLLVM);
|
||||
System.out.println("Pour compiler en bin utilisez :");
|
||||
System.out.println("clang " + sortieLLVM + " -o " + sortieLLVM.replace(".ll", "") + "\n");
|
||||
if(AFFICHAGE){
|
||||
System.out.println("\n[VSL compile succes] : " + args[0] + " -> " + sortieLLVM);
|
||||
System.out.println("Pour compiler en bin utilisez :");
|
||||
System.out.println("clang " + sortieLLVM + " -o " + sortieLLVM.replace(".ll", "") + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
} catch (IOException | RecognitionException e) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package TP2.asd;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import TP2.asd.Interface.*;
|
||||
import TP2.llvm.ProgramLLVM.*;
|
||||
|
||||
@@ -17,7 +18,11 @@ public class Program{
|
||||
return this.accept(ppVisitor, "");
|
||||
}
|
||||
|
||||
@Override
|
||||
//public TypeCheckExprDiag typeChecking(){
|
||||
// TypeChecking tcVisitor = new TypeChecking();
|
||||
// return this.accept(tcVisitor, new SymTable());
|
||||
//}
|
||||
|
||||
public ProgramLLVMImp toLLVM() {
|
||||
toLLVM_Visitor llvmVisitor = new toLLVM_Visitor();
|
||||
return this.accept(llvmVisitor,new SymTable());
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user