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