Ajout arbre abstrait au test
This commit is contained in:
Binary file not shown.
23
test/output/affect.asynt
Normal file
23
test/output/affect.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>
|
||||
63
test/output/boucle.asynt
Normal file
63
test/output/boucle.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>
|
||||
19
test/output/expression.asynt
Normal file
19
test/output/expression.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
test/output/max.asynt
Normal file
106
test/output/max.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
test/output/tri.asynt
Normal file
418
test/output/tri.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>
|
||||
@@ -12,7 +12,7 @@
|
||||
MYCOMPILO="../compilateur-l"
|
||||
MYCOMPILOLEX="${MYCOMPILO} -l"
|
||||
MYCOMPILOSYNT="${MYCOMPILO} -s"
|
||||
#MYCOMPILOASYNT="${MYCOMPILO} -a"
|
||||
MYCOMPILOASYNT="${MYCOMPILO} -a"
|
||||
#MYCOMPILOTAB="${MYCOMPILO} -t"
|
||||
#MYCOMPILOMIPS="${MYCOMPILO} -m"
|
||||
|
||||
@@ -68,8 +68,8 @@ function test_fichier_ok() {
|
||||
${MYCOMPILOLEX} input/$input.l > output/$input.lex
|
||||
diff_prog "${REGDIFF}" $input lex
|
||||
diff_prog ${XMLDIFF} $input synt
|
||||
#${MYCOMPILOASYNT} input/$input.l > output/$input.asynt
|
||||
#diff_prog ${XMLDIFF} $input asynt
|
||||
${MYCOMPILOASYNT} input/$input.l > output/$input.asynt
|
||||
diff_prog ${XMLDIFF} $input asynt
|
||||
#${MYCOMPILOTAB} input/$input.l > output/$input.tab
|
||||
#diff_prog "${REGDIFF}" $input tab
|
||||
#${MYCOMPILOMIPS} input/$input.l > output/$input.mips
|
||||
|
||||
Reference in New Issue
Block a user