Change test
This commit is contained in:
17
eval-final-projet/Makefile
Normal file
17
eval-final-projet/Makefile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
CC = gcc
|
||||||
|
|
||||||
|
LIBS = -lm
|
||||||
|
CCFLAGS = -Wall -ggdb
|
||||||
|
|
||||||
|
all: compare_arbres_xml
|
||||||
|
|
||||||
|
compare_arbres_xml: compare_arbres_xml.c analyseur_xml.o
|
||||||
|
$(CC) $(CCFLAGS) -o compare_arbres_xml compare_arbres_xml.c analyseur_xml.o
|
||||||
|
|
||||||
|
analyseur_xml.o: analyseur_xml.c
|
||||||
|
$(CC) $(CCFLAGS) -c analyseur_xml.c
|
||||||
|
|
||||||
|
.PHONY : clean
|
||||||
|
|
||||||
|
clean:
|
||||||
|
- rm -f *.o compare_arbres_xml
|
||||||
BIN
eval-final-projet/Mars4_5.jar
Normal file
BIN
eval-final-projet/Mars4_5.jar
Normal file
Binary file not shown.
95
eval-final-projet/README.html
Normal file
95
eval-final-projet/README.html
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Carlos Ramisch - personal page</title>
|
||||||
|
<link rel="stylesheet" href="http://pageperso.lif.univ-mrs.fr/~carlos.ramisch/main.css" type="text/css" media="screen"/>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="page_body">
|
||||||
|
<H1 >Évaluation finale du compilateur 2015/2016</H1>
|
||||||
|
|
||||||
|
<H2>0 - Compilation du compilateur</H2>
|
||||||
|
|
||||||
|
Compilez votre compilateur à l'aide d'un Makefile.
|
||||||
|
|
||||||
|
<H2>1 - Exécution sur des exemples existants</H2>
|
||||||
|
|
||||||
|
|
||||||
|
<p>Modifiez le script <tt>testAll.sh</tt> fourni (version d'évaluation) en modifiant le chemin vers l'exécutable de votre compilateur. Ouvrez le script et lisez attentivement les instructions pour modifier également les options/chemins qui permettent de générer du XML arbre abstrait, table des symboles et mips. Ensuite, exécutez-le pour effectuer les tests ci-dessous 100% automatiquement</p>
|
||||||
|
|
||||||
|
<p>Analysez les programmes suivants (il s'agit des exemples connus, fournis comme base de tests minimale):</p>
|
||||||
|
|
||||||
|
<table border="1pt">
|
||||||
|
<tr><td>eval1.l</td></tr>
|
||||||
|
<tr><td>eval2.l</td></tr>
|
||||||
|
<tr><td>eval3.l</td></tr>
|
||||||
|
<tr><td>eval4.l</td></tr>
|
||||||
|
<tr><td>eval5.l</td></tr>
|
||||||
|
<tr><td>eval1-err.l</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<H2>2 - Exécution sur de nouveaux exemples</H2>
|
||||||
|
|
||||||
|
<h3>2.1 Exemples compilés OK</h3>
|
||||||
|
|
||||||
|
<p>Compilez à l'aide de votre compilateur, les programmes suivants, et vérifiez que tout se passe bien :</p>
|
||||||
|
|
||||||
|
<table border="1pt">
|
||||||
|
<tr><td>eval6.l</td><td>eval16.l</td></tr>
|
||||||
|
<tr><td>eval7.l</td><td>eval17.l</td></tr>
|
||||||
|
<tr><td>eval8.l</td><td>eval18.l</td></tr>
|
||||||
|
<tr><td>eval9.l</td><td>eval19.l</td></tr>
|
||||||
|
<tr><td>eval10.l</td><td>eval20.l</td></tr>
|
||||||
|
<tr><td>eval11.l</td><td>eval21.l</td></tr>
|
||||||
|
<tr><td>eval12.l</td><td>eval22.l</td></tr>
|
||||||
|
<tr><td>eval13.l</td><td>eval23.l</td></tr>
|
||||||
|
<tr><td>eval14.l</td><td>eval24.l</td></tr>
|
||||||
|
<tr><td>eval15.l</td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>2.2 Exemples pas compilés</h3>
|
||||||
|
|
||||||
|
<p>Vérifiez que les programmes suivants ne compilent pas :</p>
|
||||||
|
|
||||||
|
<table border="1pt">
|
||||||
|
<tr><td>eval2-err.l</td></tr>
|
||||||
|
<tr><td>eval3-err.l</td></tr>
|
||||||
|
<tr><td>eval4-err.l</td></tr>
|
||||||
|
<tr><td>eval5-err.l</td></tr>
|
||||||
|
<tr><td>eval6-err.l</td></tr>
|
||||||
|
<tr><td>eval7-err.l</td></tr>
|
||||||
|
<tr><td>eval8-err.l</td></tr>
|
||||||
|
<tr><td>eval9-err.l</td></tr>
|
||||||
|
<tr><td>eval10-err.l</td></tr>
|
||||||
|
<tr><td>eval11-err.l</td></tr>
|
||||||
|
<tr><td>eval12-err.l</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<H2>3 - Ajout de l'expression conditionnelle <tt>?:</tt></H2>
|
||||||
|
|
||||||
|
<p>On désire ajouter à notre langage une expression conditionnelle à l'aide des opérateurs <tt>?</tt> et <tt>:</tt> dont voici la syntaxe:</p>
|
||||||
|
|
||||||
|
<p><tt>expression -> condition '?' expression<sub>vrai</sub> ':' expression<sub>faux</sub> | condition</tt><br><br></p>
|
||||||
|
|
||||||
|
<p>Cette expression donne la valeur de <tt>expression<sub>vrai</sub></tt> si la valeur de <tt>condition</tt> est vraie, et la valeur de <tt>expression<sub>faux</sub></tt> si la valeur de <tt>condition</tt> est fausse. Autrement dit, c'est comme une instruction <tt>si</tt> qui, au lieu de choisir entre deux blocs d'instructions, choisit entre les valeurs de deux expressions. Par exemple, <tt>$a > 10 ? 1 : 0</tt> vaut 1 si <tt>$a = 11, 12, 13...</tt> et zéro pour toute valeur de $a inférieure ou égale à 10.</p>
|
||||||
|
|
||||||
|
<p>Sa précédence est la moins importante de toutes, inférieures à celle du <tt>ou</tt>. Vous devez donc la rajouter au niveau du non-terminal <tt>expression</tt> dans la grammaire. Contrairement aux autres expressions du langage L, cette expression est associative droite, c'est-à-dire, <tt>1 ? 0 : 1 ? 0 : 1</tt> doit être interprété comme <tt>1 ? 0 : (1 ? 0 : 1)</tt> et vaut 0.</p>
|
||||||
|
|
||||||
|
<p>Modifiez l'analyseur lexical, l'analyseur syntaxique, la structure de
|
||||||
|
l'arbre abstrait, et la génération de code afin de prendre en compte cette nouvelle instruction.</p>
|
||||||
|
|
||||||
|
<p>Vous testerez votre nouvel analyseur sur les programmes suivants:</p>
|
||||||
|
|
||||||
|
<table border="1pt">
|
||||||
|
<tr><td>eval25.l</td></tr>
|
||||||
|
<tr><td>eval26.l</td></tr>
|
||||||
|
<tr><td>eval27.l</td></tr>
|
||||||
|
<tr><td>eval13-err.l - ne doit pas compiler</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
323
eval-final-projet/analyseur_xml.c
Normal file
323
eval-final-projet/analyseur_xml.c
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
#include"analyseur_xml.h"
|
||||||
|
|
||||||
|
/* symboles terminaux */
|
||||||
|
|
||||||
|
#define CHEVRON_FERMANT 1
|
||||||
|
#define DEBUT_BF 2
|
||||||
|
#define DEBUT_BO 3
|
||||||
|
#define CHAINE 4
|
||||||
|
#define FIN 5
|
||||||
|
|
||||||
|
#define ISSPACE(a) (a == ' ') || (a == '\n') || (a == '\t')
|
||||||
|
|
||||||
|
#define YYTEXT_MAX 100
|
||||||
|
|
||||||
|
/* fonctions pour arbre abstrait */
|
||||||
|
|
||||||
|
noeud *cree_noeud(char *nom)
|
||||||
|
{
|
||||||
|
noeud *n = malloc(sizeof(noeud));
|
||||||
|
if(n == NULL){
|
||||||
|
fprintf(stderr, "erreur d'allocation\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
n->nom = nom;
|
||||||
|
n->premier_fils = NULL;
|
||||||
|
n->dernier_fils = NULL;
|
||||||
|
n->suiv = NULL;
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
noeud *ajoute_fils(noeud *pere, noeud *fils)
|
||||||
|
{
|
||||||
|
if(pere->premier_fils == NULL){
|
||||||
|
pere->premier_fils = pere->dernier_fils = fils;
|
||||||
|
return pere;
|
||||||
|
}
|
||||||
|
pere->dernier_fils->suiv = fils;
|
||||||
|
pere->dernier_fils = fils;
|
||||||
|
return pere;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void affiche_arbre(noeud *racine){
|
||||||
|
noeud *n;
|
||||||
|
printf("<%s> ", racine->nom);
|
||||||
|
for(n=racine->premier_fils; n!=NULL; n = n->suiv){
|
||||||
|
affiche_arbre(n);
|
||||||
|
}
|
||||||
|
printf("</%s> ", racine->nom);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int compare_arbres_rec(noeud *racine1, noeud *racine2, int verbose, int profondeur)
|
||||||
|
{
|
||||||
|
noeud *f1, *f2;
|
||||||
|
int resultat = 1;
|
||||||
|
int i;
|
||||||
|
if(verbose){
|
||||||
|
for(i=0; i<profondeur; i++) printf(" ");
|
||||||
|
printf("%s <------------> %s\n", racine1->nom, racine2->nom);
|
||||||
|
}
|
||||||
|
if(strcmp(racine1->nom, racine2->nom))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
for(f1 = racine1->premier_fils, f2 = racine2->premier_fils;
|
||||||
|
f1 && f2 && resultat;
|
||||||
|
f1 = f1->suiv, f2 = f2->suiv){
|
||||||
|
resultat = compare_arbres_rec(f1, f2, verbose, profondeur+1);
|
||||||
|
}
|
||||||
|
return ((f1 == NULL) && (f2 == NULL) && resultat);
|
||||||
|
}
|
||||||
|
|
||||||
|
int compare_arbres(noeud *racine1, noeud *racine2, int verbose)
|
||||||
|
{
|
||||||
|
return compare_arbres_rec(racine1, racine2, verbose, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void libere_arbre(noeud *racine)
|
||||||
|
{
|
||||||
|
noeud *n;
|
||||||
|
for(n=racine->premier_fils; n!=NULL; n = n->suiv){
|
||||||
|
libere_arbre(n);
|
||||||
|
}
|
||||||
|
free(racine);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* analyseur lexical */
|
||||||
|
|
||||||
|
int DEBUG = 0;
|
||||||
|
char yytext[YYTEXT_MAX];
|
||||||
|
int yyleng;
|
||||||
|
int yylval;
|
||||||
|
/* Compter les lignes pour afficher les messages d'erreur avec numero ligne */
|
||||||
|
int nb_ligne;
|
||||||
|
int cc;
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* Fonction qui ignore les espaces et commentaires.
|
||||||
|
* Renvoie -1 si arrivé à la fin du fichier, 0 si tout va bien
|
||||||
|
******************************************************************************/
|
||||||
|
int mangeEspaces()
|
||||||
|
{
|
||||||
|
char c = fgetc(yyin);
|
||||||
|
while( ISSPACE(c) ) {
|
||||||
|
if( c == '\n' ) {
|
||||||
|
nb_ligne++;
|
||||||
|
}
|
||||||
|
c = fgetc(yyin);
|
||||||
|
}
|
||||||
|
if ( feof(yyin) ) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
ungetc(c, yyin);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* Lit un caractère et le stocke dans le buffer yytext
|
||||||
|
******************************************************************************/
|
||||||
|
char lireCar(void)
|
||||||
|
{
|
||||||
|
yytext[yyleng++] = fgetc(yyin);
|
||||||
|
yytext[yyleng] = '\0';
|
||||||
|
return yytext[yyleng - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* Remet le dernier caractère lu au buffer clavier et enlève du buffer yytext
|
||||||
|
******************************************************************************/
|
||||||
|
void delireCar()
|
||||||
|
{
|
||||||
|
char c;
|
||||||
|
c = yytext[yyleng - 1];
|
||||||
|
yytext[--yyleng] = '\0';
|
||||||
|
ungetc(c, yyin);
|
||||||
|
}
|
||||||
|
/*******************************************************************************
|
||||||
|
* Fonction principale de l'analyseur lexical, lit les caractères de yyin et
|
||||||
|
* renvoie les tokens sous forme d'entier. Le code de chaque unité est défini
|
||||||
|
* dans symboles.h sinon (mot clé, idententifiant, etc.). Pour les tokens de
|
||||||
|
* type ID_FCT, ID_VAR et NOMBRE la valeur du token est dans yytext, visible
|
||||||
|
* dans l'analyseur syntaxique.
|
||||||
|
******************************************************************************/
|
||||||
|
int inTag = 0;
|
||||||
|
|
||||||
|
int yylex(void)
|
||||||
|
{
|
||||||
|
char c;
|
||||||
|
yytext[yyleng = 0] = '\0';
|
||||||
|
|
||||||
|
/* Si j'ai trouvé la fin du fichier en lisant des espaces ... */
|
||||||
|
if( !inTag && mangeEspaces() == -1 ) {
|
||||||
|
return FIN; /* Renvoie le marqueur de fin d'entrée */
|
||||||
|
}
|
||||||
|
|
||||||
|
c = lireCar();
|
||||||
|
if(c == '>'){
|
||||||
|
if(DEBUG) { printf("CHEVRON_FERMANT\n"); }
|
||||||
|
//inTag = 0;
|
||||||
|
return CHEVRON_FERMANT;
|
||||||
|
}
|
||||||
|
if(c == '<'){
|
||||||
|
inTag = 1;
|
||||||
|
c = lireCar();
|
||||||
|
if(c == '/'){
|
||||||
|
if(DEBUG) { printf("DEBUT_BF\n"); }
|
||||||
|
return DEBUT_BF;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
delireCar();
|
||||||
|
if(DEBUG) { printf("DEBUT_BO\n"); }
|
||||||
|
return DEBUT_BO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
do{
|
||||||
|
c = lireCar();
|
||||||
|
inTag = 0;
|
||||||
|
}while((c!= '<') && (c!= '>') && !feof(yyin) && !(ISSPACE(c)));
|
||||||
|
delireCar();
|
||||||
|
if(DEBUG) { printf("CHAINE\n"); }
|
||||||
|
|
||||||
|
return CHAINE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* Fonction auxiliaire appelée par l'analyseur syntaxique tout simplement pour
|
||||||
|
* afficher des messages d'erreur et l'arbre XML
|
||||||
|
******************************************************************************/
|
||||||
|
void nom_token( int token, char *nom, char *valeur ) {
|
||||||
|
//int i;
|
||||||
|
|
||||||
|
strcpy( nom, "symbole" );
|
||||||
|
if(token == CHEVRON_FERMANT) strcpy( valeur, "CHEVRON_FERMANT");
|
||||||
|
else if(token == DEBUT_BF) strcpy( valeur, "DEBUT_BF");
|
||||||
|
else if(token == DEBUT_BO) strcpy( valeur, "DEBUT_BO");
|
||||||
|
else if(token == CHAINE) strcpy( valeur, "CHAINE");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* analyse syntaxique */
|
||||||
|
|
||||||
|
noeud *B(void);
|
||||||
|
void LB(noeud *pere);
|
||||||
|
char *BO(void);
|
||||||
|
char *BF(void);
|
||||||
|
void LCHAINE(void);
|
||||||
|
|
||||||
|
void erreur(char *msg){
|
||||||
|
fprintf(stderr, "Ligne %d : erreur : %s\n", nb_ligne, msg);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* B -> BO LCHAINE LB LCHAINE BF */
|
||||||
|
noeud *B(void){
|
||||||
|
char *nom_bo;
|
||||||
|
char *nom_bf;
|
||||||
|
noeud *n;
|
||||||
|
if(DEBUG) { printf("<B>\n"); }
|
||||||
|
if(cc == DEBUT_BO){
|
||||||
|
nom_bo = BO();
|
||||||
|
n = cree_noeud(nom_bo);
|
||||||
|
LCHAINE();
|
||||||
|
LB(n);
|
||||||
|
LCHAINE();
|
||||||
|
nom_bf = BF();
|
||||||
|
if(strcmp(nom_bo, nom_bf)){
|
||||||
|
fprintf(stderr, "Ligne %d : arbre mal forme: balise ouvrante : \"%s\" balise fermante : \"%s\"\n", nb_ligne, nom_bo, nom_bf);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
free(nom_bf);
|
||||||
|
if(DEBUG) { printf("</B>\n"); }
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
erreur("B");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LCHAINE -> CHAINE LCHAINE */
|
||||||
|
/* | */
|
||||||
|
|
||||||
|
void LCHAINE(void){
|
||||||
|
if(cc == CHAINE){
|
||||||
|
cc = yylex();
|
||||||
|
LCHAINE();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if((cc == DEBUT_BO) ||(cc == DEBUT_BF)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
erreur("LCHAINE");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LB -> B LB
|
||||||
|
| */
|
||||||
|
|
||||||
|
void LB(noeud *pere)
|
||||||
|
{
|
||||||
|
noeud *fils = NULL;
|
||||||
|
if(cc == DEBUT_BO){
|
||||||
|
fils = B();
|
||||||
|
ajoute_fils(pere, fils);
|
||||||
|
LB(pere);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(cc == DEBUT_BF){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
erreur("LB");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* BO -> DEBUT_BO CHAINE CHEVRON_FERMANT */
|
||||||
|
char *BO(void)
|
||||||
|
{
|
||||||
|
char *nom = NULL;
|
||||||
|
if(DEBUG) { printf("<BO>\n"); }
|
||||||
|
if(cc == DEBUT_BO){
|
||||||
|
cc = yylex();
|
||||||
|
if(cc == CHAINE){
|
||||||
|
nom = strdup(yytext);
|
||||||
|
cc = yylex();
|
||||||
|
if(cc == CHEVRON_FERMANT){
|
||||||
|
cc = yylex();
|
||||||
|
if(DEBUG) { printf("</BO>\n"); }
|
||||||
|
return nom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
erreur("BO");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* BF -> DEBUT_BF CHAINE CHEVRON_FERMANT */
|
||||||
|
char *BF(void)
|
||||||
|
{
|
||||||
|
char *nom = NULL;
|
||||||
|
if(cc == DEBUT_BF){
|
||||||
|
cc = yylex();
|
||||||
|
if(cc == CHAINE){
|
||||||
|
nom = strdup(yytext);
|
||||||
|
cc = yylex();
|
||||||
|
if(cc == CHEVRON_FERMANT){
|
||||||
|
cc = yylex();
|
||||||
|
return nom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
erreur("BF");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
noeud *analyseur_xml(void)
|
||||||
|
{
|
||||||
|
nb_ligne = 0;
|
||||||
|
cc = yylex();
|
||||||
|
return B();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
25
eval-final-projet/analyseur_xml.h
Normal file
25
eval-final-projet/analyseur_xml.h
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#ifndef __ANALYSEUR_XML__
|
||||||
|
#define __ANALYSEUR_XML__
|
||||||
|
|
||||||
|
/* structures de donnees et fonctions pour arbre abstrait */
|
||||||
|
|
||||||
|
typedef struct n noeud;
|
||||||
|
|
||||||
|
struct n{
|
||||||
|
char *nom;
|
||||||
|
struct n *premier_fils;
|
||||||
|
struct n *dernier_fils;
|
||||||
|
struct n *suiv;
|
||||||
|
};
|
||||||
|
|
||||||
|
FILE *yyin;
|
||||||
|
|
||||||
|
|
||||||
|
void affiche_arbre(noeud *racine);
|
||||||
|
int compare_arbres(noeud *racine1, noeud *racine2, int verbose);
|
||||||
|
void libere_arbre(noeud *r);
|
||||||
|
|
||||||
|
/* analyseur */
|
||||||
|
|
||||||
|
noeud *analyseur_xml(void);
|
||||||
|
#endif
|
||||||
63
eval-final-projet/compare_arbres_xml.c
Normal file
63
eval-final-projet/compare_arbres_xml.c
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include"analyseur_xml.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
noeud *racine1;
|
||||||
|
noeud *racine2;
|
||||||
|
int resultat;
|
||||||
|
int verbose;
|
||||||
|
|
||||||
|
if((argc != 3) && (argc != 4)){
|
||||||
|
fprintf(stderr, "usage: %s fichier_xml fichier_xml [v]\n", argv[0]);
|
||||||
|
exit(1);
|
||||||
|
|
||||||
|
}
|
||||||
|
verbose = (argc == 4);
|
||||||
|
|
||||||
|
yyin = fopen(argv[1], "r");
|
||||||
|
if(yyin == NULL){
|
||||||
|
fprintf(stderr, "impossible d'ouvrir le fichier %s\n", argv[1]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "analyse du fichier : %s\n", argv[1]);
|
||||||
|
racine1 = analyseur_xml();
|
||||||
|
|
||||||
|
|
||||||
|
fclose(yyin);
|
||||||
|
|
||||||
|
yyin = fopen(argv[2], "r");
|
||||||
|
if(yyin == NULL){
|
||||||
|
fprintf(stderr, "impossible d'ouvrir le fichier %s\n", argv[2]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "analyse du fichier : %s\n", argv[2]);
|
||||||
|
racine2 = analyseur_xml();
|
||||||
|
|
||||||
|
fclose(yyin);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* affiche_arbre(racine1);
|
||||||
|
printf("\n");
|
||||||
|
affiche_arbre(racine2);*/
|
||||||
|
|
||||||
|
fprintf(stderr, "comparaison des arbres\n");
|
||||||
|
resultat = compare_arbres(racine1, racine2, verbose);
|
||||||
|
libere_arbre(racine1);
|
||||||
|
libere_arbre(racine2);
|
||||||
|
|
||||||
|
|
||||||
|
if(resultat){
|
||||||
|
printf("arbres egaux\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
printf("arbres différents\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
BIN
eval-final-projet/fiche_eval2016_aixfinal.pdf
Normal file
BIN
eval-final-projet/fiche_eval2016_aixfinal.pdf
Normal file
Binary file not shown.
147
eval-final-projet/fiche_eval2016_aixfinal.tex
Normal file
147
eval-final-projet/fiche_eval2016_aixfinal.tex
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
\documentclass[12pt,a4paper]{article}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage[french]{babel}
|
||||||
|
\usepackage{fancyheadings}
|
||||||
|
\usepackage{color}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{epsfig}
|
||||||
|
\usepackage[top=1.9cm]{geometry}
|
||||||
|
%\usepackage{fguill}
|
||||||
|
\usepackage{tipa}
|
||||||
|
\usepackage{longtable}
|
||||||
|
\newcommand{\gui}[1]{\og{#1}\fg}
|
||||||
|
\newcommand{\ouf}{\vspace{3mm}}
|
||||||
|
|
||||||
|
\newcounter{serie} \setcounter{serie}1
|
||||||
|
\newcounter{numexo}
|
||||||
|
\newcommand{\exonum}{Q.\theserie.\addtocounter{numexo}{1}\thenumexo.}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\title{\vspace{-1em}Evaluation finale du compilateur 2015/2016\vspace{-1em}}
|
||||||
|
%\author{}
|
||||||
|
\date{}
|
||||||
|
%\date{4 janvier 2009}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\setlength{\parindent}{0cm}
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\lhead{\emph{Université Aix Marseille - L3 Informatique}}
|
||||||
|
\rhead{\emph{Compilation}}
|
||||||
|
%\setlength{\headrulewidth}{0.25pt}
|
||||||
|
\thispagestyle{fancy}
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
NOM~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PRENOM~:\\
|
||||||
|
NOM~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PRENOM~:\\
|
||||||
|
|
||||||
|
|
||||||
|
%Le sujet de l'évaluation se trouve à l'adresse suivante~:\\
|
||||||
|
%{\tt http://pageperso.lif.univ-mrs.fr/\~{}alexis.nasr/Ens/Compilation/eval\_2012.html}\\
|
||||||
|
|
||||||
|
|
||||||
|
\subsection*{0 Compilation du compilateur}
|
||||||
|
|
||||||
|
\begin{longtable}{|l|l|} \hline
|
||||||
|
Arbre abstrait & ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~\\
|
||||||
|
& \\\hline
|
||||||
|
Table des symboles & \\
|
||||||
|
& \\\hline
|
||||||
|
Génération de code & \\
|
||||||
|
& \\\hline
|
||||||
|
Extensions/améliorations & \\
|
||||||
|
& \\\hline
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
\subsection*{1 Exécution sur des exemples existants}
|
||||||
|
|
||||||
|
\begin{longtable}{|p{2.5cm}|l|l|l|l|} \hline
|
||||||
|
source & reco & syntabs & tab & mips \\ \hline
|
||||||
|
\endhead
|
||||||
|
{\tt eval1.l} &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ \\ \hline
|
||||||
|
{\tt eval2.l} & & & & \\ \hline
|
||||||
|
{\tt eval3.l} & & & & \\ \hline
|
||||||
|
{\tt eval4.l} & & & & \\ \hline
|
||||||
|
{\tt eval5.l} & & & & \\ \hline \hline
|
||||||
|
{\tt eval1-err.l} & & ------------ & ------------ & ------------ \\ \hline
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
\subsection*{2 Exécution sur de nouveaux exemples}
|
||||||
|
|
||||||
|
\subsubsection*{2.1 Exemples compilés OK}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{longtable}{|p{2.5cm}|l|l|l|l|} \hline
|
||||||
|
source & reco & syntabs & tab & mips \\ \hline
|
||||||
|
\endhead
|
||||||
|
{\tt eval6.l} &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ \\ \hline
|
||||||
|
{\tt eval7.l} & & & & \\ \hline
|
||||||
|
{\tt eval8.l} & & & & \\ \hline
|
||||||
|
{\tt eval9.l} & & & & \\ \hline
|
||||||
|
{\tt eval10.l} & & & & \\ \hline
|
||||||
|
{\tt eval11.l} & & & & \\ \hline
|
||||||
|
{\tt eval12.l} & & & & \\ \hline
|
||||||
|
{\tt eval13.l} & & & & \\ \hline
|
||||||
|
{\tt eval14.l} & & & & \\ \hline
|
||||||
|
{\tt eval15.l} & & & & \\ \hline
|
||||||
|
{\tt eval16.l} & & & & \\ \hline
|
||||||
|
{\tt eval17.l} & & & & \\ \hline
|
||||||
|
{\tt eval18.l} & & & & \\ \hline
|
||||||
|
{\tt eval19.l} & & & & \\ \hline
|
||||||
|
{\tt eval20.l} & & & & \\ \hline
|
||||||
|
{\tt eval21.l} & & & & \\ \hline
|
||||||
|
{\tt eval22.l} & & & & \\ \hline
|
||||||
|
{\tt eval23.l} & & & & \\ \hline
|
||||||
|
{\tt eval24.l} & & & & \\ \hline
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
%\begin{tabular}{|l|l|l|} \hline
|
||||||
|
%fichier de test & compilation & exécution \\ \hline
|
||||||
|
%{\tt eval4.l} & & & & & \\ \hline
|
||||||
|
%{\tt eval5.l} & & & & & \\ \hline
|
||||||
|
%{\tt eval6.l} & & & & & \\ \hline
|
||||||
|
%\end{tabular}
|
||||||
|
|
||||||
|
\subsubsection*{2.2 Exemples pas compilés}
|
||||||
|
|
||||||
|
\begin{longtable}{|p{2.5cm}|l|} \hline
|
||||||
|
source & reco \\ \hline
|
||||||
|
{\tt eval2-err.l} &~~~~~~~~~~~~~~~~ \\ \hline
|
||||||
|
{\tt eval3-err.l} & \\ \hline
|
||||||
|
{\tt eval4-err.l} & \\ \hline
|
||||||
|
{\tt eval5-err.l} & \\ \hline
|
||||||
|
{\tt eval6-err.l} & \\ \hline
|
||||||
|
{\tt eval7-err.l} & \\ \hline
|
||||||
|
{\tt eval8-err.l} & \\ \hline
|
||||||
|
{\tt eval9-err.l} & \\ \hline
|
||||||
|
{\tt eval10-err.l} & \\ \hline
|
||||||
|
{\tt eval11-err.l} & \\ \hline
|
||||||
|
{\tt eval12-err.l} & \\ \hline
|
||||||
|
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
\subsection*{3 Nouvelle fonctionnalité}
|
||||||
|
|
||||||
|
\begin{longtable}{|p{2.5cm}|l|l|l|l|} \hline
|
||||||
|
source & reco & syntabs & tab & mips \\ \hline
|
||||||
|
{\tt eval25.l} &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ &~~~~~~~~~~~~~~~~ \\ \hline
|
||||||
|
{\tt eval26.l} & & & & \\ \hline
|
||||||
|
{\tt eval27.l} & & & & \\ \hline
|
||||||
|
{\tt eval13-err.l} & & ------------ & ------------ & ------------ \\ \hline
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
\subsubsection*{Remarques}
|
||||||
|
|
||||||
|
\begin{longtable}{|p{3cm}|p{11cm}|} \hline
|
||||||
|
& \\
|
||||||
|
programmation & \\
|
||||||
|
& \\\hline
|
||||||
|
& \\
|
||||||
|
compilation & \\
|
||||||
|
& \\\hline
|
||||||
|
\end{longtable}
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
||||||
7
eval-final-projet/input/eval1-err.l
Normal file
7
eval-final-projet/input/eval1-err.l
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 5;
|
||||||
|
ecrire( $a );
|
||||||
|
}
|
||||||
|
$extra = 0;
|
||||||
6
eval-final-projet/input/eval1.l
Normal file
6
eval-final-projet/input/eval1.l
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 1;
|
||||||
|
ecrire($a);
|
||||||
|
}
|
||||||
1
eval-final-projet/input/eval10-err.l
Normal file
1
eval-final-projet/input/eval10-err.l
Normal file
@@ -0,0 +1 @@
|
|||||||
|
33a
|
||||||
11
eval-final-projet/input/eval10.l
Normal file
11
eval-final-projet/input/eval10.l
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
procedure()
|
||||||
|
{
|
||||||
|
retour 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire(procedure());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
11
eval-final-projet/input/eval11-err.l
Normal file
11
eval-final-projet/input/eval11-err.l
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
entier $a[10], entier $b;
|
||||||
|
main() {
|
||||||
|
$a[0] = 10;
|
||||||
|
$b = 5;
|
||||||
|
ecrire( $a ); # erreur de type ou ecrit 10?
|
||||||
|
ecrire( $a + 1 ); # erreur de type ou ecrit 11?
|
||||||
|
ecrire( $b[0] ); # erreur de type ou ecrit 5?
|
||||||
|
ecrire( $a[10] ); # erreur de type ou ecrit 5?
|
||||||
|
retour 0;
|
||||||
|
ecrire( $b ); # ecrit 5 ou pas?
|
||||||
|
}
|
||||||
13
eval-final-projet/input/eval11.l
Normal file
13
eval-final-projet/input/eval11.l
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
procedure()
|
||||||
|
entier $a;
|
||||||
|
{
|
||||||
|
$a = 1;
|
||||||
|
ecrire($a);
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
procedure();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
0
eval-final-projet/input/eval12-err.l
Normal file
0
eval-final-projet/input/eval12-err.l
Normal file
7
eval-final-projet/input/eval12.l
Normal file
7
eval-final-projet/input/eval12.l
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
si 1 alors
|
||||||
|
{ecrire(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
4
eval-final-projet/input/eval13-err.l
Normal file
4
eval-final-projet/input/eval13-err.l
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire( 1 ? 0 ? 1 : 1 ? 0 );
|
||||||
|
}
|
||||||
9
eval-final-projet/input/eval13.l
Normal file
9
eval-final-projet/input/eval13.l
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
si 0 alors
|
||||||
|
{ecrire(1);
|
||||||
|
}
|
||||||
|
sinon
|
||||||
|
{ecrire(0);}
|
||||||
|
}
|
||||||
18
eval-final-projet/input/eval14.l
Normal file
18
eval-final-projet/input/eval14.l
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
entier $tab[10];
|
||||||
|
|
||||||
|
main()
|
||||||
|
entier $a;
|
||||||
|
{
|
||||||
|
$a=0;
|
||||||
|
tantque $a < 10 faire{
|
||||||
|
$tab[$a] = $a;
|
||||||
|
$a = $a + 1;
|
||||||
|
}
|
||||||
|
$a = 0;
|
||||||
|
tantque $a < 10 faire{
|
||||||
|
ecrire($tab[$a]);
|
||||||
|
$a = $a + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
9
eval-final-projet/input/eval15.l
Normal file
9
eval-final-projet/input/eval15.l
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
entier $tab[10];
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$tab[4] = 4;
|
||||||
|
ecrire($tab[4]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
7
eval-final-projet/input/eval16.l
Normal file
7
eval-final-projet/input/eval16.l
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
tantque 0 faire{
|
||||||
|
ecrire(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
9
eval-final-projet/input/eval17.l
Normal file
9
eval-final-projet/input/eval17.l
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 0;
|
||||||
|
tantque $a < 10 faire{
|
||||||
|
ecrire($a);
|
||||||
|
$a = $a + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
23
eval-final-projet/input/eval18.l
Normal file
23
eval-final-projet/input/eval18.l
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
entier $t0,
|
||||||
|
entier $t1,
|
||||||
|
entier $123,
|
||||||
|
entier $,
|
||||||
|
entier $$,
|
||||||
|
entier $$$,
|
||||||
|
entier $f,
|
||||||
|
entier $_;
|
||||||
|
|
||||||
|
f(entier $$)
|
||||||
|
entier $$$,
|
||||||
|
entier $f,
|
||||||
|
entier $_;
|
||||||
|
{
|
||||||
|
$ = $123 + $_ + $$;
|
||||||
|
ecrire($);
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
$t0 = 1;
|
||||||
|
$123 = $t0 + 0;
|
||||||
|
f($123);
|
||||||
|
}
|
||||||
3
eval-final-projet/input/eval19.l
Normal file
3
eval-final-projet/input/eval19.l
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
main(){
|
||||||
|
ecrire(1 & 2);
|
||||||
|
}
|
||||||
13
eval-final-projet/input/eval2-err.l
Normal file
13
eval-final-projet/input/eval2-err.l
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
add(entier $a, entier $b)
|
||||||
|
{
|
||||||
|
retour($a + $b);
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
entier $x, entier $y, entier $z;
|
||||||
|
{
|
||||||
|
$x = 1;
|
||||||
|
$y = 2;
|
||||||
|
$z = 3;
|
||||||
|
ecrire(add($x,$y,$z));
|
||||||
|
}
|
||||||
11
eval-final-projet/input/eval2.l
Normal file
11
eval-final-projet/input/eval2.l
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
entier $i, entier $carre;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$i = 0;
|
||||||
|
tantque $i < 10 faire
|
||||||
|
{
|
||||||
|
$carre = $i * $i;
|
||||||
|
ecrire( $carre );
|
||||||
|
$i = $i + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
16
eval-final-projet/input/eval20.l
Normal file
16
eval-final-projet/input/eval20.l
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
fact( entier $f )
|
||||||
|
{
|
||||||
|
si $f = 1 | $f = 0 alors {
|
||||||
|
retour 1;
|
||||||
|
}
|
||||||
|
sinon {
|
||||||
|
retour fact( $f - 1 ) * $f ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
entier $a;
|
||||||
|
{
|
||||||
|
$a = lire();
|
||||||
|
ecrire( fact( $a ) );
|
||||||
|
}
|
||||||
14
eval-final-projet/input/eval21.l
Normal file
14
eval-final-projet/input/eval21.l
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
fibo( entier $n )
|
||||||
|
{
|
||||||
|
si $n < 2 alors {
|
||||||
|
retour 1;
|
||||||
|
}
|
||||||
|
sinon {
|
||||||
|
retour fibo( $n - 1 ) + fibo( $n - 2 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire( fibo( lire() ) );
|
||||||
|
}
|
||||||
16
eval-final-projet/input/eval22.l
Normal file
16
eval-final-projet/input/eval22.l
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
entier $a, entier $b;
|
||||||
|
|
||||||
|
pgcd( entier $a, entier $b )
|
||||||
|
entier $c;
|
||||||
|
{
|
||||||
|
$c = $a - ( $a / $b ) * $b;
|
||||||
|
si $c = 0 alors{ retour $b; }
|
||||||
|
sinon{ retour pgcd( $b, $c ); }
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
$a = lire();
|
||||||
|
$b = lire();
|
||||||
|
si $b < $a alors{ ecrire( pgcd( $a, $b ) ); }
|
||||||
|
sinon{ ecrire( pgcd( $b, $a ) ); }
|
||||||
|
}
|
||||||
5
eval-final-projet/input/eval23.l
Normal file
5
eval-final-projet/input/eval23.l
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
main() {
|
||||||
|
si 1 | lire() alors {
|
||||||
|
ecrire(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
8
eval-final-projet/input/eval24.l
Normal file
8
eval-final-projet/input/eval24.l
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
main() {
|
||||||
|
ecrire(3 | 4);
|
||||||
|
ecrire(3 & 6);
|
||||||
|
ecrire(3 | lire());
|
||||||
|
ecrire(3 & lire());
|
||||||
|
ecrire(0 | lire());
|
||||||
|
ecrire(0 & lire());
|
||||||
|
}
|
||||||
6
eval-final-projet/input/eval25.l
Normal file
6
eval-final-projet/input/eval25.l
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = lire();
|
||||||
|
ecrire( $a < 10 ? 0 : 1);
|
||||||
|
}
|
||||||
11
eval-final-projet/input/eval26.l
Normal file
11
eval-final-projet/input/eval26.l
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
main()
|
||||||
|
entier $temp, entier $g, entier $l, entier $v;
|
||||||
|
{
|
||||||
|
$temp = lire(); # temperature de l'eau
|
||||||
|
$g = $temp < 0 | $temp = 0 ? 1 : 0; # glace ?
|
||||||
|
$l = $temp < 100 & 0 < $temp ? 1 : 0; # liquide ?
|
||||||
|
$v = !$g & !$l ? 1 : 0; # vapeur ?
|
||||||
|
ecrire($g);
|
||||||
|
ecrire($l);
|
||||||
|
ecrire($v);
|
||||||
|
}
|
||||||
6
eval-final-projet/input/eval27.l
Normal file
6
eval-final-projet/input/eval27.l
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire( 1 ? 0 : 1 ? 0 : 1 );
|
||||||
|
ecrire( ( 1 ? 0 : 1 ) ? 0 : 1 );
|
||||||
|
ecrire( 1 ? 0 : ( 1 ? 0 : 1 ) );
|
||||||
|
}
|
||||||
4
eval-final-projet/input/eval3-err.l
Normal file
4
eval-final-projet/input/eval3-err.l
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
main()
|
||||||
|
{
|
||||||
|
procedure();
|
||||||
|
}
|
||||||
5
eval-final-projet/input/eval3.l
Normal file
5
eval-final-projet/input/eval3.l
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire(5 * 2);
|
||||||
|
}
|
||||||
4
eval-final-projet/input/eval4-err.l
Normal file
4
eval-final-projet/input/eval4-err.l
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 1;
|
||||||
|
}
|
||||||
23
eval-final-projet/input/eval4.l
Normal file
23
eval-final-projet/input/eval4.l
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
max( entier $a, entier $b )
|
||||||
|
{
|
||||||
|
si $a < $b alors {
|
||||||
|
retour $b;
|
||||||
|
}
|
||||||
|
retour $a;
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
entier $v_1, entier $v_2;
|
||||||
|
{
|
||||||
|
$v_1 = lire();
|
||||||
|
$v_2 = lire();
|
||||||
|
si max( $v_1, $v_2 ) = $v_1 alors
|
||||||
|
{
|
||||||
|
ecrire( $v_1 );
|
||||||
|
}
|
||||||
|
sinon
|
||||||
|
{
|
||||||
|
ecrire( $v_2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
5
eval-final-projet/input/eval5-err.l
Normal file
5
eval-final-projet/input/eval5-err.l
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
entier $a, entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 1;
|
||||||
|
}
|
||||||
57
eval-final-projet/input/eval5.l
Normal file
57
eval-final-projet/input/eval5.l
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
entier $tab[ 10 ];
|
||||||
|
|
||||||
|
initialiser()
|
||||||
|
{
|
||||||
|
$tab[0] = 8; $tab[1] = 6; $tab[2] = 9;
|
||||||
|
$tab[3] = 9; $tab[4] = 4; $tab[5] = 2;
|
||||||
|
$tab[6] = 3; $tab[7] = 1; $tab[8] = 4;
|
||||||
|
$tab[9] = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
afficher( entier $n )
|
||||||
|
entier $i;
|
||||||
|
{
|
||||||
|
$i = 0;
|
||||||
|
tantque $i < $n faire {
|
||||||
|
ecrire( $tab[ $i ] );
|
||||||
|
$i = $i + 1;
|
||||||
|
}
|
||||||
|
ecrire( 0 ); # marqueur fin de tableau
|
||||||
|
}
|
||||||
|
|
||||||
|
echanger( entier $i, entier $j )
|
||||||
|
entier $temp;
|
||||||
|
{
|
||||||
|
$temp = $tab[ $j ];
|
||||||
|
$tab[ $j ] = $tab[ $i ];
|
||||||
|
$tab[ $i ] = $temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
trier( entier $n )
|
||||||
|
entier $echange, entier $j, entier $m;
|
||||||
|
{
|
||||||
|
$m = $n;
|
||||||
|
$echange = 1;
|
||||||
|
tantque $echange = 1 faire
|
||||||
|
{
|
||||||
|
$echange = 0;
|
||||||
|
$j = 0;
|
||||||
|
tantque $j < $m - 1 faire
|
||||||
|
{
|
||||||
|
si $tab[ $j + 1 ] < $tab[ $j ] alors {
|
||||||
|
echanger( $j, $j + 1 );
|
||||||
|
$echange = 1;
|
||||||
|
}
|
||||||
|
$j = $j + 1;
|
||||||
|
}
|
||||||
|
$m = $m - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
initialiser();
|
||||||
|
afficher( 10 );
|
||||||
|
trier( 10 );
|
||||||
|
afficher( 10 );
|
||||||
|
}
|
||||||
9
eval-final-projet/input/eval6-err.l
Normal file
9
eval-final-projet/input/eval6-err.l
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
$a = 1;
|
||||||
|
}
|
||||||
13
eval-final-projet/input/eval6.l
Normal file
13
eval-final-projet/input/eval6.l
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
entier $a;
|
||||||
|
|
||||||
|
procedure()
|
||||||
|
{
|
||||||
|
ecrire(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
procedure();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
8
eval-final-projet/input/eval7-err.l
Normal file
8
eval-final-projet/input/eval7-err.l
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
procedure()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
procedure(1);
|
||||||
|
}
|
||||||
5
eval-final-projet/input/eval7.l
Normal file
5
eval-final-projet/input/eval7.l
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
entier $a;
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire(5 - 3 + 2);
|
||||||
|
}
|
||||||
6
eval-final-projet/input/eval8-err.l
Normal file
6
eval-final-projet/input/eval8-err.l
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
entier $a;
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
ecrire($a[1]);
|
||||||
|
}
|
||||||
11
eval-final-projet/input/eval8.l
Normal file
11
eval-final-projet/input/eval8.l
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
procedure(entier $a)
|
||||||
|
{
|
||||||
|
ecrire($a);
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
procedure(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
1
eval-final-projet/input/eval9-err.l
Normal file
1
eval-final-projet/input/eval9-err.l
Normal file
@@ -0,0 +1 @@
|
|||||||
|
entier entier entier
|
||||||
11
eval-final-projet/input/eval9.l
Normal file
11
eval-final-projet/input/eval9.l
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
procedure()
|
||||||
|
{
|
||||||
|
ecrire(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
procedure();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
23
eval-final-projet/ref-asynt/eval1.asynt
Normal file
23
eval-final-projet/ref-asynt/eval1.asynt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
28
eval-final-projet/ref-asynt/eval10.asynt
Normal file
28
eval-final-projet/ref-asynt/eval10.asynt
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
procedure
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
procedure
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
37
eval-final-projet/ref-asynt/eval11.asynt
Normal file
37
eval-final-projet/ref-asynt/eval11.asynt
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
procedure
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
procedure
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
20
eval-final-projet/ref-asynt/eval12.asynt
Normal file
20
eval-final-projet/ref-asynt/eval12.asynt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
25
eval-final-projet/ref-asynt/eval13.asynt
Normal file
25
eval-final-projet/ref-asynt/eval13.asynt
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
96
eval-final-projet/ref-asynt/eval14.asynt
Normal file
96
eval-final-projet/ref-asynt/eval14.asynt
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<tabDec>$tab[10]</tabDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
29
eval-final-projet/ref-asynt/eval15.asynt
Normal file
29
eval-final-projet/ref-asynt/eval15.asynt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<tabDec>$tab[10]</tabDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
20
eval-final-projet/ref-asynt/eval16.asynt
Normal file
20
eval-final-projet/ref-asynt/eval16.asynt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
46
eval-final-projet/ref-asynt/eval17.asynt
Normal file
46
eval-final-projet/ref-asynt/eval17.asynt
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
107
eval-final-projet/ref-asynt/eval18.asynt
Normal file
107
eval-final-projet/ref-asynt/eval18.asynt
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$t0</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$t1</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$123</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$$</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$$$</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$f</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$_</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
f
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$$</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$$$</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$f</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$_</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$123</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$_</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$$</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$t0</var_simple>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$123</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$t0</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
f
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$123</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
16
eval-final-projet/ref-asynt/eval19.asynt
Normal file
16
eval-final-projet/ref-asynt/eval19.asynt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
et
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
63
eval-final-projet/ref-asynt/eval2.asynt
Normal file
63
eval-final-projet/ref-asynt/eval2.asynt
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$i</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$carre</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$carre</var_simple>
|
||||||
|
<opExp>
|
||||||
|
fois
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$carre</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
93
eval-final-projet/ref-asynt/eval20.asynt
Normal file
93
eval-final-projet/ref-asynt/eval20.asynt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
fact
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$f</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
ou
|
||||||
|
<opExp>
|
||||||
|
egal
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$f</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
<opExp>
|
||||||
|
egal
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$f</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<opExp>
|
||||||
|
fois
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
fact
|
||||||
|
<l_exp>
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$f</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$f</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
fact
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
85
eval-final-projet/ref-asynt/eval21.asynt
Normal file
85
eval-final-projet/ref-asynt/eval21.asynt
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
fibo
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$n</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$n</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
fibo
|
||||||
|
<l_exp>
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$n</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
fibo
|
||||||
|
<l_exp>
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$n</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
fibo
|
||||||
|
<l_exp>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
161
eval-final-projet/ref-asynt/eval22.asynt
Normal file
161
eval-final-projet/ref-asynt/eval22.asynt
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$b</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
pgcd
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$b</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$c</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$c</var_simple>
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<opExp>
|
||||||
|
fois
|
||||||
|
<opExp>
|
||||||
|
divise
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
egal
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$c</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
pgcd
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$c</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
pgcd
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
pgcd
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
22
eval-final-projet/ref-asynt/eval23.asynt
Normal file
22
eval-final-projet/ref-asynt/eval23.asynt
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
ou
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>5</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
65
eval-final-projet/ref-asynt/eval24.asynt
Normal file
65
eval-final-projet/ref-asynt/eval24.asynt
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
ou
|
||||||
|
<intExp>3</intExp>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
et
|
||||||
|
<intExp>3</intExp>
|
||||||
|
<intExp>6</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
ou
|
||||||
|
<intExp>3</intExp>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
et
|
||||||
|
<intExp>3</intExp>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
ou
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
et
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
33
eval-final-projet/ref-asynt/eval25.asynt
Normal file
33
eval-final-projet/ref-asynt/eval25.asynt
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
</opExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
126
eval-final-projet/ref-asynt/eval26.asynt
Normal file
126
eval-final-projet/ref-asynt/eval26.asynt
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$temp</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$g</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$l</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$v</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$g</var_simple>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<opExp>
|
||||||
|
ou
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
<opExp>
|
||||||
|
egal
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$l</var_simple>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<opExp>
|
||||||
|
et
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>100</intExp>
|
||||||
|
</opExp>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$v</var_simple>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<opExp>
|
||||||
|
et
|
||||||
|
<opExp>
|
||||||
|
non
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$g</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<opExp>
|
||||||
|
non
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$l</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$g</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$l</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$v</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
52
eval-final-projet/ref-asynt/eval27.asynt
Normal file
52
eval-final-projet/ref-asynt/eval27.asynt
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<opExp>
|
||||||
|
condexp
|
||||||
|
<intExp>1</intExp>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
19
eval-final-projet/ref-asynt/eval3.asynt
Normal file
19
eval-final-projet/ref-asynt/eval3.asynt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
fois
|
||||||
|
<intExp>5</intExp>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
106
eval-final-projet/ref-asynt/eval4.asynt
Normal file
106
eval-final-projet/ref-asynt/eval4.asynt
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
max
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$b</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$b</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
<l_instr>
|
||||||
|
<instr_retour>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_retour>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$v_1</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$v_2</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$v_1</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$v_2</var_simple>
|
||||||
|
<lireExp>
|
||||||
|
</lireExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
egal
|
||||||
|
<appelExp>
|
||||||
|
<appel>
|
||||||
|
max
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$v_1</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$v_2</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</appelExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$v_1</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$v_1</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$v_2</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
418
eval-final-projet/ref-asynt/eval5.asynt
Normal file
418
eval-final-projet/ref-asynt/eval5.asynt
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<tabDec>$tab[10]</tabDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
initialiser
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>8</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>6</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>9</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>3</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>9</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>5</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>6</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>3</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>7</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>8</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>4</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<intExp>9</intExp>
|
||||||
|
</var_indicee>
|
||||||
|
<intExp>5</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
afficher
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$n</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$i</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$n</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
echanger
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$i</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$j</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$temp</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$i</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$temp</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
trier
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$n</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$echange</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$j</varDec>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$m</varDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$m</var_simple>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$n</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$echange</var_simple>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
egal
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$echange</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$echange</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
<intExp>0</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
<l_instr>
|
||||||
|
<instr_tantque>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$m</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_si>
|
||||||
|
<opExp>
|
||||||
|
inf
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
<varExp>
|
||||||
|
<var_indicee>
|
||||||
|
<var_base_tableau>$tab</var_base_tableau>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</var_indicee>
|
||||||
|
</varExp>
|
||||||
|
</opExp>
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
echanger
|
||||||
|
<l_exp>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<l_exp>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$echange</var_simple>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_si>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$j</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
<l_instr>
|
||||||
|
<instr_affect>
|
||||||
|
<var_simple>$m</var_simple>
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$m</var_simple>
|
||||||
|
</varExp>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_affect>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</instr_tantque>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
initialiser
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
afficher
|
||||||
|
<l_exp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
trier
|
||||||
|
<l_exp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
afficher
|
||||||
|
<l_exp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
29
eval-final-projet/ref-asynt/eval6.asynt
Normal file
29
eval-final-projet/ref-asynt/eval6.asynt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
procedure
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
procedure
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
23
eval-final-projet/ref-asynt/eval7.asynt
Normal file
23
eval-final-projet/ref-asynt/eval7.asynt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<opExp>
|
||||||
|
plus
|
||||||
|
<opExp>
|
||||||
|
moins
|
||||||
|
<intExp>5</intExp>
|
||||||
|
<intExp>3</intExp>
|
||||||
|
</opExp>
|
||||||
|
<intExp>2</intExp>
|
||||||
|
</opExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
34
eval-final-projet/ref-asynt/eval8.asynt
Normal file
34
eval-final-projet/ref-asynt/eval8.asynt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
procedure
|
||||||
|
<l_dec>
|
||||||
|
<varDec>$a</varDec>
|
||||||
|
</l_dec>
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<varExp>
|
||||||
|
<var_simple>$a</var_simple>
|
||||||
|
</varExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
procedure
|
||||||
|
<l_exp>
|
||||||
|
<intExp>10</intExp>
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
26
eval-final-projet/ref-asynt/eval9.asynt
Normal file
26
eval-final-projet/ref-asynt/eval9.asynt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<prog>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
procedure
|
||||||
|
<l_instr>
|
||||||
|
<instr_ecrire>
|
||||||
|
<intExp>1</intExp>
|
||||||
|
</instr_ecrire>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
<l_dec>
|
||||||
|
<foncDec>
|
||||||
|
main
|
||||||
|
<l_instr>
|
||||||
|
<instr_appel>
|
||||||
|
<appel>
|
||||||
|
procedure
|
||||||
|
<l_exp>
|
||||||
|
</l_exp>
|
||||||
|
</appel>
|
||||||
|
</instr_appel>
|
||||||
|
</l_instr>
|
||||||
|
</foncDec>
|
||||||
|
</l_dec>
|
||||||
|
</l_dec>
|
||||||
|
</prog>
|
||||||
18
eval-final-projet/ref-lex/eval1.lex
Normal file
18
eval-final-projet/ref-lex/eval1.lex
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
21
eval-final-projet/ref-lex/eval10.lex
Normal file
21
eval-final-projet/ref-lex/eval10.lex
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
procedure id_fonction procedure
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
procedure id_fonction procedure
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
27
eval-final-projet/ref-lex/eval11.lex
Normal file
27
eval-final-projet/ref-lex/eval11.lex
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
procedure id_fonction procedure
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
procedure id_fonction procedure
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
19
eval-final-projet/ref-lex/eval12.lex
Normal file
19
eval-final-projet/ref-lex/eval12.lex
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
1 nombre 1
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
27
eval-final-projet/ref-lex/eval13.lex
Normal file
27
eval-final-projet/ref-lex/eval13.lex
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
0 nombre 0
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
sinon mot_clef sinon
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
0 nombre 0
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
64
eval-final-projet/ref-lex/eval14.lex
Normal file
64
eval-final-projet/ref-lex/eval14.lex
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
10 nombre 10
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$a id_variable $a
|
||||||
|
< symbole INFERIEUR
|
||||||
|
10 nombre 10
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$a id_variable $a
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
$a id_variable $a
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$a id_variable $a
|
||||||
|
< symbole INFERIEUR
|
||||||
|
10 nombre 10
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$a id_variable $a
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
$a id_variable $a
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
27
eval-final-projet/ref-lex/eval15.lex
Normal file
27
eval-final-projet/ref-lex/eval15.lex
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
10 nombre 10
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
4 nombre 4
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
4 nombre 4
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
4 nombre 4
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
19
eval-final-projet/ref-lex/eval16.lex
Normal file
19
eval-final-projet/ref-lex/eval16.lex
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
0 nombre 0
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
31
eval-final-projet/ref-lex/eval17.lex
Normal file
31
eval-final-projet/ref-lex/eval17.lex
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$a id_variable $a
|
||||||
|
< symbole INFERIEUR
|
||||||
|
10 nombre 10
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
$a id_variable $a
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
74
eval-final-projet/ref-lex/eval18.lex
Normal file
74
eval-final-projet/ref-lex/eval18.lex
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$t0 id_variable $t0
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$t1 id_variable $t1
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$123 id_variable $123
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$ id_variable $
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$$ id_variable $$
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$$$ id_variable $$$
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$f id_variable $f
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$_ id_variable $_
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
f id_fonction f
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$$ id_variable $$
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$$$ id_variable $$$
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$f id_variable $f
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$_ id_variable $_
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$ id_variable $
|
||||||
|
= symbole EGAL
|
||||||
|
$123 id_variable $123
|
||||||
|
+ symbole PLUS
|
||||||
|
$_ id_variable $_
|
||||||
|
+ symbole PLUS
|
||||||
|
$$ id_variable $$
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$ id_variable $
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$t0 id_variable $t0
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$123 id_variable $123
|
||||||
|
= symbole EGAL
|
||||||
|
$t0 id_variable $t0
|
||||||
|
+ symbole PLUS
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
f id_fonction f
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$123 id_variable $123
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
13
eval-final-projet/ref-lex/eval19.lex
Normal file
13
eval-final-projet/ref-lex/eval19.lex
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
& symbole ET
|
||||||
|
2 nombre 2
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
40
eval-final-projet/ref-lex/eval2.lex
Normal file
40
eval-final-projet/ref-lex/eval2.lex
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$i id_variable $i
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$carre id_variable $carre
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$i id_variable $i
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$i id_variable $i
|
||||||
|
< symbole INFERIEUR
|
||||||
|
10 nombre 10
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$carre id_variable $carre
|
||||||
|
= symbole EGAL
|
||||||
|
$i id_variable $i
|
||||||
|
* symbole FOIS
|
||||||
|
$i id_variable $i
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$carre id_variable $carre
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$i id_variable $i
|
||||||
|
= symbole EGAL
|
||||||
|
$i id_variable $i
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
57
eval-final-projet/ref-lex/eval20.lex
Normal file
57
eval-final-projet/ref-lex/eval20.lex
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
fact id_fonction fact
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$f id_variable $f
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
$f id_variable $f
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
| symbole OU
|
||||||
|
$f id_variable $f
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
sinon mot_clef sinon
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
fact id_fonction fact
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$f id_variable $f
|
||||||
|
- symbole MOINS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
* symbole FOIS
|
||||||
|
$f id_variable $f
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
fact id_fonction fact
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
51
eval-final-projet/ref-lex/eval21.lex
Normal file
51
eval-final-projet/ref-lex/eval21.lex
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
fibo id_fonction fibo
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$n id_variable $n
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
$n id_variable $n
|
||||||
|
< symbole INFERIEUR
|
||||||
|
2 nombre 2
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
sinon mot_clef sinon
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
fibo id_fonction fibo
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$n id_variable $n
|
||||||
|
- symbole MOINS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
+ symbole PLUS
|
||||||
|
fibo id_fonction fibo
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$n id_variable $n
|
||||||
|
- symbole MOINS
|
||||||
|
2 nombre 2
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
fibo id_fonction fibo
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
100
eval-final-projet/ref-lex/eval22.lex
Normal file
100
eval-final-projet/ref-lex/eval22.lex
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$b id_variable $b
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
pgcd id_fonction pgcd
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$b id_variable $b
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$c id_variable $c
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$c id_variable $c
|
||||||
|
= symbole EGAL
|
||||||
|
$a id_variable $a
|
||||||
|
- symbole MOINS
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
/ symbole DIVISE
|
||||||
|
$b id_variable $b
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
* symbole FOIS
|
||||||
|
$b id_variable $b
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
si mot_clef si
|
||||||
|
$c id_variable $c
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
$b id_variable $b
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
sinon mot_clef sinon
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
pgcd id_fonction pgcd
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$b id_variable $b
|
||||||
|
, symbole VIRGULE
|
||||||
|
$c id_variable $c
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$b id_variable $b
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
si mot_clef si
|
||||||
|
$b id_variable $b
|
||||||
|
< symbole INFERIEUR
|
||||||
|
$a id_variable $a
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
pgcd id_fonction pgcd
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
, symbole VIRGULE
|
||||||
|
$b id_variable $b
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
sinon mot_clef sinon
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
pgcd id_fonction pgcd
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$b id_variable $b
|
||||||
|
, symbole VIRGULE
|
||||||
|
$a id_variable $a
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
20
eval-final-projet/ref-lex/eval23.lex
Normal file
20
eval-final-projet/ref-lex/eval23.lex
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
1 nombre 1
|
||||||
|
| symbole OU
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
5 nombre 5
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
56
eval-final-projet/ref-lex/eval24.lex
Normal file
56
eval-final-projet/ref-lex/eval24.lex
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
3 nombre 3
|
||||||
|
| symbole OU
|
||||||
|
4 nombre 4
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
3 nombre 3
|
||||||
|
& symbole ET
|
||||||
|
6 nombre 6
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
3 nombre 3
|
||||||
|
| symbole OU
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
3 nombre 3
|
||||||
|
& symbole ET
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
0 nombre 0
|
||||||
|
| symbole OU
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
0 nombre 0
|
||||||
|
& symbole ET
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
26
eval-final-projet/ref-lex/eval25.lex
Normal file
26
eval-final-projet/ref-lex/eval25.lex
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$a id_variable $a
|
||||||
|
< symbole INFERIEUR
|
||||||
|
10 nombre 10
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
79
eval-final-projet/ref-lex/eval26.lex
Normal file
79
eval-final-projet/ref-lex/eval26.lex
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$temp id_variable $temp
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$g id_variable $g
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$l id_variable $l
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$v id_variable $v
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$temp id_variable $temp
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$g id_variable $g
|
||||||
|
= symbole EGAL
|
||||||
|
$temp id_variable $temp
|
||||||
|
< symbole INFERIEUR
|
||||||
|
0 nombre 0
|
||||||
|
| symbole OU
|
||||||
|
$temp id_variable $temp
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
? symbole INTERROGATION
|
||||||
|
1 nombre 1
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$l id_variable $l
|
||||||
|
= symbole EGAL
|
||||||
|
$temp id_variable $temp
|
||||||
|
< symbole INFERIEUR
|
||||||
|
100 nombre 100
|
||||||
|
& symbole ET
|
||||||
|
0 nombre 0
|
||||||
|
< symbole INFERIEUR
|
||||||
|
$temp id_variable $temp
|
||||||
|
? symbole INTERROGATION
|
||||||
|
1 nombre 1
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$v id_variable $v
|
||||||
|
= symbole EGAL
|
||||||
|
! symbole NON
|
||||||
|
$g id_variable $g
|
||||||
|
& symbole ET
|
||||||
|
! symbole NON
|
||||||
|
$l id_variable $l
|
||||||
|
? symbole INTERROGATION
|
||||||
|
1 nombre 1
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$g id_variable $g
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$l id_variable $l
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$v id_variable $v
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
49
eval-final-projet/ref-lex/eval27.lex
Normal file
49
eval-final-projet/ref-lex/eval27.lex
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
1 nombre 1
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
? symbole INTERROGATION
|
||||||
|
0 nombre 0
|
||||||
|
: symbole DEUXPOINTS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
16
eval-final-projet/ref-lex/eval3.lex
Normal file
16
eval-final-projet/ref-lex/eval3.lex
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
5 nombre 5
|
||||||
|
* symbole FOIS
|
||||||
|
2 nombre 2
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
72
eval-final-projet/ref-lex/eval4.lex
Normal file
72
eval-final-projet/ref-lex/eval4.lex
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
max id_fonction max
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$b id_variable $b
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
$a id_variable $a
|
||||||
|
< symbole INFERIEUR
|
||||||
|
$b id_variable $b
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
$b id_variable $b
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
retour mot_clef retour
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$v_1 id_variable $v_1
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$v_2 id_variable $v_2
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$v_1 id_variable $v_1
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$v_2 id_variable $v_2
|
||||||
|
= symbole EGAL
|
||||||
|
lire mot_clef lire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
si mot_clef si
|
||||||
|
max id_fonction max
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$v_1 id_variable $v_1
|
||||||
|
, symbole VIRGULE
|
||||||
|
$v_2 id_variable $v_2
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
= symbole EGAL
|
||||||
|
$v_1 id_variable $v_1
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$v_1 id_variable $v_1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
sinon mot_clef sinon
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$v_2 id_variable $v_2
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
271
eval-final-projet/ref-lex/eval5.lex
Normal file
271
eval-final-projet/ref-lex/eval5.lex
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
10 nombre 10
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
initialiser id_fonction initialiser
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
0 nombre 0
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
8 nombre 8
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
1 nombre 1
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
6 nombre 6
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
2 nombre 2
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
9 nombre 9
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
3 nombre 3
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
9 nombre 9
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
4 nombre 4
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
4 nombre 4
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
5 nombre 5
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
2 nombre 2
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
6 nombre 6
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
3 nombre 3
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
7 nombre 7
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
8 nombre 8
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
4 nombre 4
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
9 nombre 9
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
5 nombre 5
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
afficher id_fonction afficher
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$n id_variable $n
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$i id_variable $i
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$i id_variable $i
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$i id_variable $i
|
||||||
|
< symbole INFERIEUR
|
||||||
|
$n id_variable $n
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$i id_variable $i
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$i id_variable $i
|
||||||
|
= symbole EGAL
|
||||||
|
$i id_variable $i
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
0 nombre 0
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
echanger id_fonction echanger
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$i id_variable $i
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$j id_variable $j
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$temp id_variable $temp
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$temp id_variable $temp
|
||||||
|
= symbole EGAL
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$j id_variable $j
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$j id_variable $j
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$i id_variable $i
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$i id_variable $i
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
= symbole EGAL
|
||||||
|
$temp id_variable $temp
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
trier id_fonction trier
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$n id_variable $n
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
entier mot_clef entier
|
||||||
|
$echange id_variable $echange
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$j id_variable $j
|
||||||
|
, symbole VIRGULE
|
||||||
|
entier mot_clef entier
|
||||||
|
$m id_variable $m
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$m id_variable $m
|
||||||
|
= symbole EGAL
|
||||||
|
$n id_variable $n
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$echange id_variable $echange
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$echange id_variable $echange
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
$echange id_variable $echange
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$j id_variable $j
|
||||||
|
= symbole EGAL
|
||||||
|
0 nombre 0
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
tantque mot_clef tantque
|
||||||
|
$j id_variable $j
|
||||||
|
< symbole INFERIEUR
|
||||||
|
$m id_variable $m
|
||||||
|
- symbole MOINS
|
||||||
|
1 nombre 1
|
||||||
|
faire mot_clef faire
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
si mot_clef si
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$j id_variable $j
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
< symbole INFERIEUR
|
||||||
|
$tab id_variable $tab
|
||||||
|
[ symbole CROCHET_OUVRANT
|
||||||
|
$j id_variable $j
|
||||||
|
] symbole CROCHET_FERMANT
|
||||||
|
alors mot_clef alors
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
echanger id_fonction echanger
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
$j id_variable $j
|
||||||
|
, symbole VIRGULE
|
||||||
|
$j id_variable $j
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
$echange id_variable $echange
|
||||||
|
= symbole EGAL
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
$j id_variable $j
|
||||||
|
= symbole EGAL
|
||||||
|
$j id_variable $j
|
||||||
|
+ symbole PLUS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
$m id_variable $m
|
||||||
|
= symbole EGAL
|
||||||
|
$m id_variable $m
|
||||||
|
- symbole MOINS
|
||||||
|
1 nombre 1
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
initialiser id_fonction initialiser
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
afficher id_fonction afficher
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
10 nombre 10
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
trier id_fonction trier
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
10 nombre 10
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
afficher id_fonction afficher
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
10 nombre 10
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
23
eval-final-projet/ref-lex/eval6.lex
Normal file
23
eval-final-projet/ref-lex/eval6.lex
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
procedure id_fonction procedure
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
1 nombre 1
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
procedure id_fonction procedure
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
18
eval-final-projet/ref-lex/eval7.lex
Normal file
18
eval-final-projet/ref-lex/eval7.lex
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
entier mot_clef entier
|
||||||
|
$a id_variable $a
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
main id_fonction main
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
{ symbole ACCOLADE_OUVRANTE
|
||||||
|
ecrire mot_clef ecrire
|
||||||
|
( symbole PARENTHESE_OUVRANTE
|
||||||
|
5 nombre 5
|
||||||
|
- symbole MOINS
|
||||||
|
3 nombre 3
|
||||||
|
+ symbole PLUS
|
||||||
|
2 nombre 2
|
||||||
|
) symbole PARENTHESE_FERMANTE
|
||||||
|
; symbole POINT_VIRGULE
|
||||||
|
} symbole ACCOLADE_FERMANTE
|
||||||
|
symbole FIN
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user