54 líneas
2,2 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|