diff --git a/eval-partiel/Makefile b/eval-partiel/Makefile new file mode 100644 index 0000000..9022348 --- /dev/null +++ b/eval-partiel/Makefile @@ -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 diff --git a/eval-partiel/README.html b/eval-partiel/README.html new file mode 100644 index 0000000..3cf923a --- /dev/null +++ b/eval-partiel/README.html @@ -0,0 +1,97 @@ + + + +
+Vous pouvez modifier le script runEval.sh en modifiant le chemin vers l'exécutable de votre compilateur. Ensuite, exécutez-le pour effectuer les tests ci-dessous 100% automatiquement
+ +Analysez les programmes suivants :
+ +| affect.l |
| boucle.l |
| expression.l |
| max.l |
| tri.l |
| affect-err.l |
Compilez à l'aide de votre compilateur, les programmes suivants :
+ +| eval1.l |
| eval2.l |
| eval3.l |
| eval4.l |
| eval5.l |
| eval6.l |
| eval7.l |
| eval8.l |
Vérifiez que les programmes suivants ne compilent pas :
+ +| eval1err.l |
| eval2err.l |
| eval3err.l |
| eval4err.l |
| eval5err.l |
On désire ajouter à notre langage une boucle de type pour, dont voici la syntaxe:
+ +pour IAFFinit E; IAFFincr faire IB
Une telle instruction exécute d'abord la première affectation, contenue dans IAFFinit, pour l'initialisation. Ensuite, tant que la valeur de l'expression E est vraie, c'est-à-dire, ne vaut pas zéro, elle exécute le bloc d'instructions dans IB suivi de l'instruction d'incrément IAFFincr. Cette boucle est similaire à la boucle for en C. Cependant, il n'est pas possible de mettre autre chose qu'une affectation dans les parties d'initialisation et d'incrément (en C, elles peuvent être vides ou contenir n'importe quelle instruction-expression).
+ + + +Modifiez l'analyseur lexical et l'analyseur syntaxique afin de prendre en compte cette nouvelle instruction.
+ +Vous testerez votre nouvel analyseur sur les programmes suivants:
+ +| test1.l |
| test2.l |
| test3.l |
| test1err.l - ne doit pas compiler |