File : src/prolog.adb


   1 -- Fichier PROLOG.ADA
   2 
   3 
   4 --with TEXT_IO; use TEXT_IO;
   5 --with INT32_IO; use INT32_IO;
   6 --with OBJETS_PROLOG; use OBJETS_PROLOG;
   7 --with ES_PROLOG; use ES_PROLOG;
   8 with Interpreteur_Prolog; use Interpreteur_Prolog;
   9 
  10 
  11 ----------------------------------------------------------------------------------------------------------------------------------
  12 
  13 procedure Prolog is
  14    --  C : CHARACTER;
  15    --  OBJ : MOT;
  16 begin
  17    --  ECHO := TRUE;
  18    --  ENTREE_STANDARD;
  19    --  PUT_LINE("Test de la lecture bufferisee avec echo :");
  20    --  PUT_LINE("-----------------------------------------");
  21    --  loop
  22    --    C := CARACTERE_SIGNIFICATIF(LIT_CARAC);
  23    --    if C = ASCII.CR then PUT("[ CR ]"); NEW_LINE;
  24    --    else PUT('[' & C & "] ");
  25    --    end if;
  26    --    exit when C = 'q';
  27    --  end loop;
  28    --  NEW_LINE;
  29    --  PUT_LINE("Test des diverses fonctions de construction et d'affichage :");
  30    --  PUT_LINE("------------------------------------------------------------");
  31    --  PUT("LISTE_VIDE = "); ECRIT(LISTE_VIDE); NEW_LINE;
  32    --  if EGALITE_MOT(LISTE_VIDE, RESTE(CREE_LISTE(CREE_ENTIER(10)))) then
  33    --    PUT_LINE("Egalite");
  34    --  else
  35    --    PUT_LINE("Non egalite");
  36    --  end if;
  37    --  PUT("Creation d'un symbole = "); ECRIT(CREE_SYMBOLE("Jean Louis", TRUE)); NEW_LINE;
  38    --  PUT("Creation d'un entier = "); ECRIT(CREE_ENTIER(-15)); NEW_LINE;
  39    --  PUT("Creation d'une variable = "); ECRIT(CREE_VARIABLE("X")); NEW_LINE;
  40    --  PUT("Creation d'un doublet = "); ECRIT(CREE_DOUBLET_L(CREE_ENTIER(5), CREE_SYMBOLE("A"))); NEW_LINE;
  41    --  PUT("Creation d'une liste = "); ECRIT(CREE_LISTE(CREE_SYMBOLE("hello"), CREE_VARIABLE("Y"), CREE_ENTIER(12))); NEW_LINE;
  42    --  PUT("Creation d'une fonction = "); ECRIT(CREE_DOUBLET_F(CREE_SYMBOLE("f"), CREE_VECTEUR(CREE_ENTIER(12), CREE_VARIABLE("Y")))); NEW_LINE;
  43    --  PUT("Creation d'un vecteur = "); ECRIT(CREE_VECTEUR(CREE_SYMBOLE("f"), CREE_ENTIER(10), CREE_SYMBOLE("**|**", TRUE))); NEW_LINE;
  44    --  debug;
  45    --  PUT_LINE("Test de lecture de token :");
  46    --  PUT_LINE("--------------------------");
  47    --  C := CARACTERE_SIGNIFICATIF(LIT_CARAC);
  48    --  loop
  49    --    begin
  50    --    OBJ := LIT_TOKEN;
  51    --    PUT(" --> "); ECRIT(OBJ); NEW_LINE;
  52    --    exit when EGALITE_MOT(OBJ, S_POINT_CR);
  53    --  exception
  54    --    when ERREUR_DE_SYNTAXE => null;
  55    --  end;
  56    --  end loop;
  57    --  PUT_LINE("Test d'analyse syntaxique :");
  58    --  PUT_LINE("---------------------------");
  59    --  loop
  60    --    begin
  61    --      PUT("?- ");
  62    --      RAZ_VARIABLES;
  63    --      OBJ := ANALYSE_COMPLETE(LIT_TOKEN);
  64    --      PUT("--> "); ECRIT(OBJ); NEW_LINE;
  65    --      PUT("Nombre de variables = "); PUT(NBRE_DE_VARIABLES); NEW_LINE;
  66    --      exit when EGALITE_MOT(OBJ, LISTE_VIDE);
  67    --    exception
  68    --      when ERREUR_DE_SYNTAXE => null;
  69    --    end;
  70    --  end loop;
  71    --  PUT_LINE("Lancement de l'interpreteur PROLOG");
  72    --  PUT_LINE("----------------------------------");
  73    --  ECHO := FALSE;
  74    Driver_Prolog;
  75 end