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); } } }