AEL/src/Main.java
2021-03-16 20:15:32 +01:00

54 líneas
2,2 KiB
Java

import java.io.*;
public class Main {
public static void main(String[] args) {
if (args.length == 2) {
System.out.println("Ouverture du ficher " + args[0]);
File f = new File(args[0]);
System.out.println("Lecture du la grammaire");
String chaine = null;
try {
chaine = IO.loadFile(f);
} catch (IOException e) {
System.out.println("FATAL : Erreur lors de la lecture du ficher");
System.exit(1);
}
Grammaire grammaire = null;
System.out.println("Création de l'objet Grammaire");
try {
grammaire = new Grammaire(chaine);
} catch (Exception e) {
System.out.println("FATAL : Erreur lors de l'analyse des règles (controlez la syntaxe)");
System.exit(2);
}
System.out.println("Génération du code Prolog du parseur");
String parseur = grammaire.writeGrammaire();
System.out.println("Ecriture du parseur dans le fichier " + args[1] + ".pl");
try {
IO.writeFile(parseur, args[1] + ".pl");
} catch (IOException e) {
System.out.println("FATAL : Erreur lors de l'écriture du fichier prolog");
System.exit(3);
}
System.out.println("Création du launcher " + args[1] + ".sh");
String laucher ="#!/bin/bash\n" +
"swipl -s " + args[1] + ".pl -g \"parse('$1'),halt.\" 2> /dev/null\n" + "" +
"if [ $? -eq 0 ]\n" +
"then\n" +
"\techo \"OK\"\n" +
"else\n" +
"\techo \"KO\"\n" +
"fi\n";
try {
IO.writeFile(laucher, args[1] + ".sh");
} catch (IOException e) {
System.out.println("FATAL : Erreur lors de l'écriture du launcher");
System.exit(4);
}
} else {
System.out.println("Deux arguments requis : fichier contenant la grammaire et nom du parseur");
System.exit(5);
}
}
}