From 69f4de0a907b5ec7f992f67cf31883f21bdd57b6 Mon Sep 17 00:00:00 2001 From: Xawirses Date: Tue, 19 Apr 2016 10:04:20 +0200 Subject: [PATCH] Repare & et | --- eval-final-projet/compare_arbres_xml | Bin 0 -> 19568 bytes .../input/{eval20.l => eval20.l.d} | 0 eval-final-projet/output/eval1-err.synt.xml | 0 eval-final-projet/output/eval1.asynt | 23 + eval-final-projet/output/eval1.lex | 18 + eval-final-projet/output/eval1.mips | 37 + eval-final-projet/output/eval1.synt | 113 + eval-final-projet/output/eval1.tab | 6 + eval-final-projet/output/eval10-err.synt.xml | 0 eval-final-projet/output/eval10.asynt | 28 + eval-final-projet/output/eval10.lex | 21 + eval-final-projet/output/eval10.mips | 54 + eval-final-projet/output/eval10.synt | 118 + eval-final-projet/output/eval10.tab | 11 + eval-final-projet/output/eval11-err.synt.xml | 34 + eval-final-projet/output/eval11.asynt | 37 + eval-final-projet/output/eval11.lex | 27 + eval-final-projet/output/eval11.mips | 52 + eval-final-projet/output/eval11.synt | 146 ++ eval-final-projet/output/eval11.tab | 12 + eval-final-projet/output/eval12-err.synt.xml | 7 + eval-final-projet/output/eval12.asynt | 20 + eval-final-projet/output/eval12.lex | 19 + eval-final-projet/output/eval12.mips | 40 + eval-final-projet/output/eval12.synt | 112 + eval-final-projet/output/eval12.tab | 6 + eval-final-projet/output/eval13.asynt | 25 + eval-final-projet/output/eval13.lex | 27 + eval-final-projet/output/eval13.mips | 51 + eval-final-projet/output/eval13.synt | 154 ++ eval-final-projet/output/eval13.tab | 6 + eval-final-projet/output/eval14.asynt | 96 + eval-final-projet/output/eval14.lex | 64 + eval-final-projet/output/eval14.mips | 140 ++ eval-final-projet/output/eval14.synt | 487 ++++ eval-final-projet/output/eval14.tab | 7 + eval-final-projet/output/eval15.asynt | 29 + eval-final-projet/output/eval15.lex | 27 + eval-final-projet/output/eval15.mips | 51 + eval-final-projet/output/eval15.synt | 170 ++ eval-final-projet/output/eval15.tab | 6 + eval-final-projet/output/eval16.asynt | 20 + eval-final-projet/output/eval16.lex | 19 + eval-final-projet/output/eval16.mips | 40 + eval-final-projet/output/eval16.synt | 110 + eval-final-projet/output/eval16.tab | 6 + eval-final-projet/output/eval17.asynt | 46 + eval-final-projet/output/eval17.lex | 31 + eval-final-projet/output/eval17.mips | 75 + eval-final-projet/output/eval17.synt | 222 ++ eval-final-projet/output/eval17.tab | 6 + eval-final-projet/output/eval18.asynt | 107 + eval-final-projet/output/eval18.lex | 74 + eval-final-projet/output/eval18.mips | 108 + eval-final-projet/output/eval18.synt | 401 +++ eval-final-projet/output/eval18.tab | 31 + eval-final-projet/output/eval19.asynt | 16 + eval-final-projet/output/eval19.lex | 13 + eval-final-projet/output/eval19.mips | 46 + eval-final-projet/output/eval19.synt | 80 + eval-final-projet/output/eval19.tab | 5 + eval-final-projet/output/eval2-err.synt.xml | 79 + eval-final-projet/output/eval2.asynt | 63 + eval-final-projet/output/eval2.lex | 40 + eval-final-projet/output/eval2.mips | 93 + eval-final-projet/output/eval2.synt | 283 +++ eval-final-projet/output/eval2.tab | 7 + eval-final-projet/output/eval20.asynt | 93 + eval-final-projet/output/eval20.lex | 57 + eval-final-projet/output/eval20.mips | 156 ++ eval-final-projet/output/eval20.synt | 408 ++++ eval-final-projet/output/eval20.tab | 13 + eval-final-projet/output/eval21.asynt | 85 + eval-final-projet/output/eval21.lex | 51 + eval-final-projet/output/eval21.mips | 130 + eval-final-projet/output/eval21.synt | 360 +++ eval-final-projet/output/eval21.tab | 12 + eval-final-projet/output/eval22.asynt | 161 ++ eval-final-projet/output/eval22.lex | 100 + eval-final-projet/output/eval22.mips | 197 ++ eval-final-projet/output/eval22.synt | 759 ++++++ eval-final-projet/output/eval22.tab | 18 + eval-final-projet/output/eval23.asynt | 22 + eval-final-projet/output/eval23.lex | 20 + eval-final-projet/output/eval23.mips | 58 + eval-final-projet/output/eval23.synt | 127 + eval-final-projet/output/eval23.tab | 5 + eval-final-projet/output/eval24.asynt | 65 + eval-final-projet/output/eval24.lex | 56 + eval-final-projet/output/eval24.mips | 192 ++ eval-final-projet/output/eval24.synt | 375 +++ eval-final-projet/output/eval24.tab | 5 + eval-final-projet/output/eval25.synt | 0 eval-final-projet/output/eval3-err.synt.xml | 13 + eval-final-projet/output/eval3.asynt | 19 + eval-final-projet/output/eval3.lex | 16 + eval-final-projet/output/eval3.mips | 42 + eval-final-projet/output/eval3.synt | 77 + eval-final-projet/output/eval3.tab | 6 + eval-final-projet/output/eval4-err.synt.xml | 16 + eval-final-projet/output/eval4.asynt | 106 + eval-final-projet/output/eval4.lex | 72 + eval-final-projet/output/eval4.mips | 146 ++ eval-final-projet/output/eval4.synt | 513 ++++ eval-final-projet/output/eval4.tab | 15 + eval-final-projet/output/eval5-err.synt.xml | 3 + eval-final-projet/output/eval5.asynt | 418 ++++ eval-final-projet/output/eval5.lex | 271 +++ eval-final-projet/output/eval5.mips | 527 ++++ eval-final-projet/output/eval5.synt | 2146 +++++++++++++++++ eval-final-projet/output/eval5.tab | 49 + eval-final-projet/output/eval6-err.synt.xml | 16 + eval-final-projet/output/eval6.asynt | 29 + eval-final-projet/output/eval6.lex | 23 + eval-final-projet/output/eval6.mips | 46 + eval-final-projet/output/eval6.synt | 104 + eval-final-projet/output/eval6.tab | 13 + eval-final-projet/output/eval7-err.synt.xml | 30 + eval-final-projet/output/eval7.asynt | 23 + eval-final-projet/output/eval7.lex | 18 + eval-final-projet/output/eval7.mips | 51 + eval-final-projet/output/eval7.synt | 91 + eval-final-projet/output/eval7.tab | 6 + eval-final-projet/output/eval8-err.synt.xml | 14 + eval-final-projet/output/eval8.asynt | 34 + eval-final-projet/output/eval8.lex | 23 + eval-final-projet/output/eval8.mips | 49 + eval-final-projet/output/eval8.synt | 134 + eval-final-projet/output/eval8.tab | 12 + eval-final-projet/output/eval9-err.synt.xml | 0 eval-final-projet/output/eval9.asynt | 26 + eval-final-projet/output/eval9.lex | 20 + eval-final-projet/output/eval9.mips | 45 + eval-final-projet/output/eval9.synt | 93 + eval-final-projet/output/eval9.tab | 11 + eval-final-projet/testAll.sh | 6 +- src/parcours.c | 25 +- 137 files changed, 13211 insertions(+), 13 deletions(-) create mode 100755 eval-final-projet/compare_arbres_xml rename eval-final-projet/input/{eval20.l => eval20.l.d} (100%) create mode 100644 eval-final-projet/output/eval1-err.synt.xml create mode 100644 eval-final-projet/output/eval1.asynt create mode 100644 eval-final-projet/output/eval1.lex create mode 100644 eval-final-projet/output/eval1.mips create mode 100644 eval-final-projet/output/eval1.synt create mode 100644 eval-final-projet/output/eval1.tab create mode 100644 eval-final-projet/output/eval10-err.synt.xml create mode 100644 eval-final-projet/output/eval10.asynt create mode 100644 eval-final-projet/output/eval10.lex create mode 100644 eval-final-projet/output/eval10.mips create mode 100644 eval-final-projet/output/eval10.synt create mode 100644 eval-final-projet/output/eval10.tab create mode 100644 eval-final-projet/output/eval11-err.synt.xml create mode 100644 eval-final-projet/output/eval11.asynt create mode 100644 eval-final-projet/output/eval11.lex create mode 100644 eval-final-projet/output/eval11.mips create mode 100644 eval-final-projet/output/eval11.synt create mode 100644 eval-final-projet/output/eval11.tab create mode 100644 eval-final-projet/output/eval12-err.synt.xml create mode 100644 eval-final-projet/output/eval12.asynt create mode 100644 eval-final-projet/output/eval12.lex create mode 100644 eval-final-projet/output/eval12.mips create mode 100644 eval-final-projet/output/eval12.synt create mode 100644 eval-final-projet/output/eval12.tab create mode 100644 eval-final-projet/output/eval13.asynt create mode 100644 eval-final-projet/output/eval13.lex create mode 100644 eval-final-projet/output/eval13.mips create mode 100644 eval-final-projet/output/eval13.synt create mode 100644 eval-final-projet/output/eval13.tab create mode 100644 eval-final-projet/output/eval14.asynt create mode 100644 eval-final-projet/output/eval14.lex create mode 100644 eval-final-projet/output/eval14.mips create mode 100644 eval-final-projet/output/eval14.synt create mode 100644 eval-final-projet/output/eval14.tab create mode 100644 eval-final-projet/output/eval15.asynt create mode 100644 eval-final-projet/output/eval15.lex create mode 100644 eval-final-projet/output/eval15.mips create mode 100644 eval-final-projet/output/eval15.synt create mode 100644 eval-final-projet/output/eval15.tab create mode 100644 eval-final-projet/output/eval16.asynt create mode 100644 eval-final-projet/output/eval16.lex create mode 100644 eval-final-projet/output/eval16.mips create mode 100644 eval-final-projet/output/eval16.synt create mode 100644 eval-final-projet/output/eval16.tab create mode 100644 eval-final-projet/output/eval17.asynt create mode 100644 eval-final-projet/output/eval17.lex create mode 100644 eval-final-projet/output/eval17.mips create mode 100644 eval-final-projet/output/eval17.synt create mode 100644 eval-final-projet/output/eval17.tab create mode 100644 eval-final-projet/output/eval18.asynt create mode 100644 eval-final-projet/output/eval18.lex create mode 100644 eval-final-projet/output/eval18.mips create mode 100644 eval-final-projet/output/eval18.synt create mode 100644 eval-final-projet/output/eval18.tab create mode 100644 eval-final-projet/output/eval19.asynt create mode 100644 eval-final-projet/output/eval19.lex create mode 100644 eval-final-projet/output/eval19.mips create mode 100644 eval-final-projet/output/eval19.synt create mode 100644 eval-final-projet/output/eval19.tab create mode 100644 eval-final-projet/output/eval2-err.synt.xml create mode 100644 eval-final-projet/output/eval2.asynt create mode 100644 eval-final-projet/output/eval2.lex create mode 100644 eval-final-projet/output/eval2.mips create mode 100644 eval-final-projet/output/eval2.synt create mode 100644 eval-final-projet/output/eval2.tab create mode 100644 eval-final-projet/output/eval20.asynt create mode 100644 eval-final-projet/output/eval20.lex create mode 100644 eval-final-projet/output/eval20.mips create mode 100644 eval-final-projet/output/eval20.synt create mode 100644 eval-final-projet/output/eval20.tab create mode 100644 eval-final-projet/output/eval21.asynt create mode 100644 eval-final-projet/output/eval21.lex create mode 100644 eval-final-projet/output/eval21.mips create mode 100644 eval-final-projet/output/eval21.synt create mode 100644 eval-final-projet/output/eval21.tab create mode 100644 eval-final-projet/output/eval22.asynt create mode 100644 eval-final-projet/output/eval22.lex create mode 100644 eval-final-projet/output/eval22.mips create mode 100644 eval-final-projet/output/eval22.synt create mode 100644 eval-final-projet/output/eval22.tab create mode 100644 eval-final-projet/output/eval23.asynt create mode 100644 eval-final-projet/output/eval23.lex create mode 100644 eval-final-projet/output/eval23.mips create mode 100644 eval-final-projet/output/eval23.synt create mode 100644 eval-final-projet/output/eval23.tab create mode 100644 eval-final-projet/output/eval24.asynt create mode 100644 eval-final-projet/output/eval24.lex create mode 100644 eval-final-projet/output/eval24.mips create mode 100644 eval-final-projet/output/eval24.synt create mode 100644 eval-final-projet/output/eval24.tab create mode 100644 eval-final-projet/output/eval25.synt create mode 100644 eval-final-projet/output/eval3-err.synt.xml create mode 100644 eval-final-projet/output/eval3.asynt create mode 100644 eval-final-projet/output/eval3.lex create mode 100644 eval-final-projet/output/eval3.mips create mode 100644 eval-final-projet/output/eval3.synt create mode 100644 eval-final-projet/output/eval3.tab create mode 100644 eval-final-projet/output/eval4-err.synt.xml create mode 100644 eval-final-projet/output/eval4.asynt create mode 100644 eval-final-projet/output/eval4.lex create mode 100644 eval-final-projet/output/eval4.mips create mode 100644 eval-final-projet/output/eval4.synt create mode 100644 eval-final-projet/output/eval4.tab create mode 100644 eval-final-projet/output/eval5-err.synt.xml create mode 100644 eval-final-projet/output/eval5.asynt create mode 100644 eval-final-projet/output/eval5.lex create mode 100644 eval-final-projet/output/eval5.mips create mode 100644 eval-final-projet/output/eval5.synt create mode 100644 eval-final-projet/output/eval5.tab create mode 100644 eval-final-projet/output/eval6-err.synt.xml create mode 100644 eval-final-projet/output/eval6.asynt create mode 100644 eval-final-projet/output/eval6.lex create mode 100644 eval-final-projet/output/eval6.mips create mode 100644 eval-final-projet/output/eval6.synt create mode 100644 eval-final-projet/output/eval6.tab create mode 100644 eval-final-projet/output/eval7-err.synt.xml create mode 100644 eval-final-projet/output/eval7.asynt create mode 100644 eval-final-projet/output/eval7.lex create mode 100644 eval-final-projet/output/eval7.mips create mode 100644 eval-final-projet/output/eval7.synt create mode 100644 eval-final-projet/output/eval7.tab create mode 100644 eval-final-projet/output/eval8-err.synt.xml create mode 100644 eval-final-projet/output/eval8.asynt create mode 100644 eval-final-projet/output/eval8.lex create mode 100644 eval-final-projet/output/eval8.mips create mode 100644 eval-final-projet/output/eval8.synt create mode 100644 eval-final-projet/output/eval8.tab create mode 100644 eval-final-projet/output/eval9-err.synt.xml create mode 100644 eval-final-projet/output/eval9.asynt create mode 100644 eval-final-projet/output/eval9.lex create mode 100644 eval-final-projet/output/eval9.mips create mode 100644 eval-final-projet/output/eval9.synt create mode 100644 eval-final-projet/output/eval9.tab diff --git a/eval-final-projet/compare_arbres_xml b/eval-final-projet/compare_arbres_xml new file mode 100755 index 0000000000000000000000000000000000000000..89f883623ef4eec14f32a57b90ccab8dd38ae7af GIT binary patch literal 19568 zcmeHP3wT@AeLq*S*B!SotBv}F>k?kmvi4#Id+N2OE_DdH&~r9`~Me?)9gCD6C zvf0cIiVZ&x=MWS*1y4xR3hGkM3RpsUizHY)A|v5UfiVS@hXkp-(d3a?0c)lUR6*2) z6G)GIt(E-R>1~{@;Dgc+4>`t@n_r1cdJR&qLFy@ZS~{knsvp&jelw-rnHCQ)!aW4o z8h#yxJQkpBI+qSn-ZfPSxTbn|M!{zUnJK9BZh#*7`5#R#DOewiwl7;!9}6vtMdO*> zi*_$xwrJUsx>Ta>O71_&Q5Dy1+{!gnJlw#j>>B(iWW+CZ4p;ug7v}68To8Hj#;I?7 zU_ErsKL69XHY_JBlk<}?F@@#qw`@#rfjpl_dmUOxf7V*+~H z1oUka&=*cX|0L*c{LG1l-+1*}Isu*9Z9Mt%3FtRWK%X-K{W{RA*mQPcW*c%0^MOq0 zPeJNF%UF1KG|eK3?r@xSXVNLU1UmysmP#i>nQj&dCn7A;5l#nLCeA@57)zwWtSb) zyDH5$(B%}tSq%nyVJZS=xq+_6JSlh#bmP3}GtiCm!X^Wqd{SwffnI1!Fxw1t1fq~S z4fL`C7551Py~04>ZJ*Yk{iN(hZCEdy(0UIng|vpmQV-bu`Xvm;3JEQC|j4V>oq?`nWklMS5U z_?v`NQw==9@$-aJ6Ac{Z_^$}3rWrWE@t+Y+O){{L<3Aysnqr`v z!o2glt?XvgdZrI7+4{{8c-S6Jz8ogzw_^cbuZAN9q)QjQCr9cl??g zIQgL!27K8e-^u)HpZ2Wp#~-Gr6s(miYn8Luj#Hxieb>GL|5>JLD-`o_IJV}X&(hGe# z?`dDog+6r$tRCA<(a835Gx^mB;Bo3I`MZ%L`O43osC@E7*84tJ>p6kG$c`NnI{8fy z@?~u|zz)n^N8s)gnYvL?DrE+h@|dxdpMIc9nMDT3A8weWU!M%=9~h;-4(a^M=s&)! zcL);y3<)@#Zw6iJLUGioKB8xB-yyM_?b`$lPC=B4xrd4=a%xS%sZSRfCh2V?UF6hM z$mE-ZQ+Y^iq+;OIH{K_wY?pELIxI`i?j1&N8{*uYN2j=7Dv+(H>?UC@Ct-FI`jU5e&@IKm1tDy+xmhpC&LW`Yf#m!_W~q`p(Scd zy-ehXcrQp#0vKXxd(YkrEOS)!j2ceMOd?vkly|2=8+T(g8q}?L<7T&B$ZbU-qTHt_ z4CH-3Msgu^B#gG8hBCLu&;E_}fSFalH8ugdgzar7b=m%W8k~E*BZHUi+dER0sm$5d zRk~Tv2`y_|g$x9LAO+V8L5R82e^0{czr)p$?uX2yQlT=;-5lhe=|xvO=fbo?b6y$hY|Si`GTkJJ#ZG2f6n# zHkPa3wgBRka<(}}#hk4ddKj0}#K3ugrupHKOxaO>gMSMe`7*==9w2C|GMD6R9b6$@ zc6=L672kbNPB;VokcG_3%uW5aX2|f{#t&gn=+=|&lnKQHG`Ax&fK`0Z5A8}FhVde9NAoZb6ApS`k}`e@udmDxbzLuHI zyY$n|KJQ01U%$~$^W(9#-pv~tH*SGUw?4Q9VwTKBT7 zm{!SrN;0p9Y0jJuW=W=oH2YbzudyZ4?TjS{uVT#kM0&Ue;}fd zV+;Tv%J+f`B4+UZ{7WQBt(X6y5J#wZxS+ykvDaZ4Gzq=mOr;4P0E3R%Iu`%Rhjc#u5yf<{i@#y3Rx0NRt+ShQWv=0Q0gx9nqmCFn=ivlGlv$Yn zCIm%zwo-_2cjWagp(t^*KmQb!R*Pp2u0%!rj*3_%iYUyEE?>cXxvJv_Bp7&`T4k3k z($8=1Sz8D2oGrkqC7G7vG^yn66b>|2zKmD4naf?=a%16aEMuNepqsL}zgC0#tj3Et&QCKjQ{p0iLtH#Hl5jrNWhu!)xx!r?|{f zF7queqh+e{QBM6baD<79EvI4^78l!Z%Rqoqeg&6L0?n_25FU#QkJkM8yz!%rA8E{v zG;VF&(z<`%RJ$7w+xr(0ys;(wZcFyX)&=zBtNTuVV9g(Y6TaR3dfL7C=j!>qHG94_ z`|cW87^!*1*Kn{J`f4&9$A$$ZY(a!G zNtDSqB?9SaB3{N;&P%Owvz7H6pb9G&8PY0Vrkdr{1gEAmrlu}FO>OkD)@VmO?4B2L zU+tD<38z;!t)lV`Z0@cbyCd#MBH4xDwFhER)R&?Wh^ND_aOu3%rHUL0C%X(}cwG;Z zO{|sXM=H39t!%n}6_Igmx}G(yMS0o`>ov~+UWDJ!(8!1j^OOtS;4E-EI{$LuzeShb z2Dl5OXgA?J(d! z0GIVE%Ko8*6=-6$5-vrzTcoy(5Ag!nJfRyMFosxF@W~S|S zX)`KH^#fX|i|DlBIRA~2k%c56)A;fXd)z|)%x^?2nA5e^S$kb&`7V7QTRr`ng;&kJ zluVG#HTXRXyKkY+tkLPZ$I?8>ZvC}}qB%bV@8t_$BcY$kJYkCltE;QQw(y{S8g=QSvD5R`3(3O@K*p9;$&S?sK?`= z--kZ+aFPB)1^pMmuRz~gVdPUDiORnK{ygx{5ka++Zz=Fw!M_pwLq+^A7Wgsne**rlB7U;K{|xvGFc#cK{!N_C``F{)F9$zN{3fUC zeoK?H_CBlE>E2(`{o%5TVZpcBt$*J@4@iy$V z!4ANfG^Bet?X-kSfSQDof)xT~XYC%InT zCo8Dt1=^saMDrr0Hk*e-MQ@O}^1Fd^8KaFmN~(NJQM^7bDUW9!j;nZL%H{ZZSwEru z-+xu-S>}?amU=kp4UYYo zbMaUmSy9;?oxrYm!Q7u<2&h|sH zgwu45Ze|q^;qndq#w*A|-PdwvIj&Z{bOQlRzZJq(OX)unR#Li|6YVihwCx5cDY4;b z0}8efc)Tvwo+xF1O+t537S?6~vFUdG^TI$1sKra_4Ud9S+KB8K+Z%JCuhRr=d$S!^ zrcR{8Oje+-lfw`!1i0p*XsMBWcwZE-TFzQ|DN*m_4%-Ad!OEab>xM++gBbL26{CPJ>@$Pls8td2S=sL*=u z+X=@l#96F;65ttDwv1R`D18!gwYFZWq@E|zmnh5hmvON@+)iZuqeTC5J18z@*DnXn zu2Tb+Q@fJe755-RRBB32y-!iAsgwA@M0fB3SWc6={ZU*e#hKf#{|Y&0JkiDM4r&ml zPey6>G9v5xb(Alsyh~q(tG$BqwNyS}<-NFQwsvTld$!hl3kHF!ryyWC*y@UNj2M=K zo~j=~O)Cv?tgY%!l%(kb+g5ca@f>8>a&Sx4S>lxmEQYelPrKd=Ym+;0DfwDEuGL}k zwer)j=dhlUQ!}I>%Z`-NfGmfA9FV_&0u4y>NOpks{{s@e?f(ZPddUC20r>-Xt<}t> zF(B_zpQQeer1cWjMFU-{p#fw$xUDMAw5de49PCsBik|GWONsc$(gI&va0_%~Sxv)E z2tcda4wAy!Sj`GT>t2uJGWBDG4KylGfXR zTWK|)ES3v-Up1dBB<88+(*sww9{kRys>=(utOt*Nsw%RWX;;gFsv=hwkhUpzlKE?> zP|LxatD;O>De~J`Sd`?O0{Y1f^R%urFBe6E&4_Ag=R`YEOv~Jih z?a&-dN$dSs9IhbG<-A2+M zC$!D!!Id$-qyp4>Yoo-x`)SGGYbefGU=wEkSedDuN|K+aLMK&vaK+m;g@*X3l>QSX zJ?$N;+R3#pAxXDeN?PwBNLK%rGs%?YU`%wpllOD1t@;tp6WBIZGm}dF`&Xr%6=VcS z>-_=jxVlmuU<%nzHob{yKc^U7T;<_X=lGSRtMOnzB}JxQkR}sP%ropm0S&VfH$z(Mn$8NvYu` zH6*R~($U-D9C16;apyDN4(EK1Y}`yOf#{Q7)6VsJ!Ld}RK(O#K~u9_RL90`GCbUl>J*utHcG#2n&3$9rgILj%9!S#VJxR$ z4|_@l9h4qSwta5~$R< z(iDc#>S;v46Cs8mJ4PK+`#t)U+GlL}7n=?SDO54<*- z|Lg_*dA+CayB&vi9lFV4LAB}K5es|je<~2gb@(rffqFc&)@Xe%XY}U}AL;AsTfeyP zdHqP|TYaq!-_d&z9P7(;d5VYWY5Oj{$D@C2X9v;j2Z;ERy+?md?>nqNpnsikJ(=OM zY5T1L;%ZIfVvFEnPj9o&UaZ&anZ@5BMzQfeYt_mgeRh4vYx+!Z(Jr`JBKDYGzf)ho zeaS(~g6ebn?A!0s*P}_+TgzA8rQgj3AGV)+q=&rH><`-yAMQ9*Kn^`}NRkQKchiOH zWfx>o0&uHdhieJpHgpH2ba?yHf6=Q!6wYXN{b!dOu?<%kvDQTbv+LJd%U1ST=2U;> z9!`1Ke(2o6x3>3fKd5(D7FHkbQ`F8w+pk)GFYUiP_OT6K>o@e z@|7xe=*W>HFXN}sTMumqQxbtJUVrGwcHTSv{zN3=PcwhZ_5Nfy5b}4Ylgy8IXz{vh zDtddESgFoLGTokuj0&{}@D44hfa>Q+ED`T;^Ghb4qT{BJn>L(A$%OeM(O5X17_}3Q zhZv5@GO=`kxUoP-s$iCQ{vgI;FcHgi#hE`53z4&_u<*7kki0DnU*QFReV2Ql37D(d&aZ#*3yfYA66p7-Ha#43OaVsLVGn{Ov7oPp`@NUG7 ztS?&vx3RnFZeF}tY;d|4b)_@$@UBMb#X*_UiB9jh_wnoGviFk-gLpkBy@?6$*Yhj|jSRg{@!pe!Ff>0T}Z0=2U2ZG@g zFRVR+?h%V7!_9a%ol0*{n9O4E1$nXY4t{*QPTYJZyjtmoX7P;STXC%aEzg;X=~eiCW<2|o*_m+{r*jdrf19$CV%b-lAAuovInBSXlAX z&SDy2R(A1NBBx(60e#j4boUrKJx7+XH%811tmww2V^xLGGB%!W&@If#Hkta#rILQY zL|-cDr%m+rplkR}ymEX8+(V-Wnl)OBW@HQ^M-Maq?`8#&q@2{jmk^7 zyuq-{UJE+K(>%XjH-S8zvr(MYwv%di+8i4%KA+%pCo}Iq(&5#3@}CFYJ=RV370|0J z)7WFCcK;^PQ3G|~QU09Z_AzhBeY~)=NhfsUmHX-h^!K3WLVdT%Ej8uZFfVsHQyX=v zT-xHN_A>7{HcPttj(4FnWRd;fybWCmI>lM-+9~@}Kqr69{eQNUS6hEdo;Fj-AM>#R z?Tr&%t=HA@{2xlXd24>Hq?>oHTP5ARrF*@kn~xl5(|El2XFzwW;2K~Sbc%!8`&9Kh zAnlv?X&;t!wFdvBwDna^HyD=Lz6t0*0-gGsInF-^-96R}duIYW-{Kicq~y z$o{P6D?GeM)7Xv)Cex{OCK5r`@4v2jv%j_F#w~t7t(?Lg(Nr3Xu5_0lA85w$*zEU* z68?@@0xux?L+L~^<)=3&X}J>%r^BJTWh<6oeKDR8p626GEDn-^J$}4nncRc#HUnK@ ze<;({wFfE&%uk*biH^JMDtfx--ml%BA53L<-RMP1`V`gU zF@Ah1KYcAG(wm^`u&&y&!9N=1EgPCC##?B)$v>Md*71i!fpkDDTE*wG#eBJlDq4h% zu5Q$;pZu%aVnyR(Yjg=V<}=%3B{VU-5ue*)8A)H}77G;CfAaI)Vy<}Km466a%rJe% zi(*mbLQME30d@%EepcX9J3h4~Nh{A-bm`fPfQ2ASf5JNG6u4oWG zB+_Ia6dGi8=me||E!u^d3bb&0rUQDke*n5bqwz>W z1xJfKxdp&ZPO<-z%x*`9ic_ejVAo-m4&3`>ESMb4;S*dL-!g+$*Q7?VpP3Vsf_QQsxk=`QK0@>kg~ z<6koAtLJ046l}tll`*Mu746TEF_y3Pr9w4A!l48uG}r&DQeU;7T1RwC{fABUH~arh zlfK&LQhzVznSZDJ<0gHzA9iM{P+Uoa!;sA7KMx)b>iHNVG4)=z`nx)2c{BbZbSe${ zYX8M8JC0f2jQB1u+&$6DjP~q;U6MHG*y4K9(ZDc z^4&^NLMsZV@*7NarC(*DlPo0#=_Oi~7aVatDa&s&5|KB{(x2}z(@15u+|q2Kn}Z>l zWiOjRKR90~eO3iV+A!-cok0Jc%Z0+D|BgQGlaWnx{Cew!{ud|ESAI}@O(I + + $a + + + + main + + + $a + 1 + + + + + $a + + + + + + + diff --git a/eval-final-projet/output/eval1.lex b/eval-final-projet/output/eval1.lex new file mode 100644 index 0000000..fb828db --- /dev/null +++ b/eval-final-projet/output/eval1.lex @@ -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 diff --git a/eval-final-projet/output/eval1.mips b/eval-final-projet/output/eval1.mips new file mode 100644 index 0000000..5f5f8c0 --- /dev/null +++ b/eval-final-projet/output/eval1.mips @@ -0,0 +1,37 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$a +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval1.synt b/eval-final-projet/output/eval1.synt new file mode 100644 index 0000000..038df30 --- /dev/null +++ b/eval-final-projet/output/eval1.synt @@ -0,0 +1,113 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $a + + + + EGAL + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval1.tab b/eval-final-projet/output/eval1.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval1.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval10-err.synt.xml b/eval-final-projet/output/eval10-err.synt.xml new file mode 100644 index 0000000..e69de29 diff --git a/eval-final-projet/output/eval10.asynt b/eval-final-projet/output/eval10.asynt new file mode 100644 index 0000000..4ff357e --- /dev/null +++ b/eval-final-projet/output/eval10.asynt @@ -0,0 +1,28 @@ + + + + procedure + + + 1 + + + + + + main + + + + + procedure + + + + + + + + + + diff --git a/eval-final-projet/output/eval10.lex b/eval-final-projet/output/eval10.lex new file mode 100644 index 0000000..5577cab --- /dev/null +++ b/eval-final-projet/output/eval10.lex @@ -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 diff --git a/eval-final-projet/output/eval10.mips b/eval-final-projet/output/eval10.mips new file mode 100644 index 0000000..870d3f4 --- /dev/null +++ b/eval-final-projet/output/eval10.mips @@ -0,0 +1,54 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +procedure : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 4($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +jal procedure +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval10.synt b/eval-final-projet/output/eval10.synt new file mode 100644 index 0000000..5a20a3e --- /dev/null +++ b/eval-final-projet/output/eval10.synt @@ -0,0 +1,118 @@ + + + + + + procedure + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + procedure + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval10.tab b/eval-final-projet/output/eval10.tab new file mode 100644 index 0000000..a780954 --- /dev/null +++ b/eval-final-projet/output/eval10.tab @@ -0,0 +1,11 @@ +------------------------------------------ +base = 1 +sommet = 1 +0 procedure GLOBALE FONCTION 0 0 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 2 +0 procedure GLOBALE FONCTION 0 0 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval11-err.synt.xml b/eval-final-projet/output/eval11-err.synt.xml new file mode 100644 index 0000000..a4dc1a4 --- /dev/null +++ b/eval-final-projet/output/eval11-err.synt.xml @@ -0,0 +1,34 @@ +.data +$$a: .space 40 +$$b: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$a($t4) +li $t0, 5 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$b +Indice tableau $a est attendu diff --git a/eval-final-projet/output/eval11.asynt b/eval-final-projet/output/eval11.asynt new file mode 100644 index 0000000..cef5db4 --- /dev/null +++ b/eval-final-projet/output/eval11.asynt @@ -0,0 +1,37 @@ + + + + procedure + + $a + + + + $a + 1 + + + + + $a + + + + + + + + main + + + + procedure + + + + + + + + + diff --git a/eval-final-projet/output/eval11.lex b/eval-final-projet/output/eval11.lex new file mode 100644 index 0000000..d2991f9 --- /dev/null +++ b/eval-final-projet/output/eval11.lex @@ -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 diff --git a/eval-final-projet/output/eval11.mips b/eval-final-projet/output/eval11.mips new file mode 100644 index 0000000..649b873 --- /dev/null +++ b/eval-final-projet/output/eval11.mips @@ -0,0 +1,52 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +procedure : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +jal procedure +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval11.synt b/eval-final-projet/output/eval11.synt new file mode 100644 index 0000000..9147791 --- /dev/null +++ b/eval-final-projet/output/eval11.synt @@ -0,0 +1,146 @@ + + + + + + procedure + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $a + + + + EGAL + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + procedure + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval11.tab b/eval-final-projet/output/eval11.tab new file mode 100644 index 0000000..75b866f --- /dev/null +++ b/eval-final-projet/output/eval11.tab @@ -0,0 +1,12 @@ +------------------------------------------ +base = 1 +sommet = 2 +0 procedure GLOBALE FONCTION 0 0 +1 $a LOCALE ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 2 +0 procedure GLOBALE FONCTION 0 0 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval12-err.synt.xml b/eval-final-projet/output/eval12-err.synt.xml new file mode 100644 index 0000000..4868e4e --- /dev/null +++ b/eval-final-projet/output/eval12-err.synt.xml @@ -0,0 +1,7 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +Fonction main non trouvé diff --git a/eval-final-projet/output/eval12.asynt b/eval-final-projet/output/eval12.asynt new file mode 100644 index 0000000..f4b25e7 --- /dev/null +++ b/eval-final-projet/output/eval12.asynt @@ -0,0 +1,20 @@ + + + $a + + + + main + + + 1 + + + 1 + + + + + + + diff --git a/eval-final-projet/output/eval12.lex b/eval-final-projet/output/eval12.lex new file mode 100644 index 0000000..a51d4f1 --- /dev/null +++ b/eval-final-projet/output/eval12.lex @@ -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 diff --git a/eval-final-projet/output/eval12.mips b/eval-final-projet/output/eval12.mips new file mode 100644 index 0000000..19de312 --- /dev/null +++ b/eval-final-projet/output/eval12.mips @@ -0,0 +1,40 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e0 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +j e1 +e0: +e1: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval12.synt b/eval-final-projet/output/eval12.synt new file mode 100644 index 0000000..c855a07 --- /dev/null +++ b/eval-final-projet/output/eval12.synt @@ -0,0 +1,112 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + 1 + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 1 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval12.tab b/eval-final-projet/output/eval12.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval12.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval13.asynt b/eval-final-projet/output/eval13.asynt new file mode 100644 index 0000000..68c8ccf --- /dev/null +++ b/eval-final-projet/output/eval13.asynt @@ -0,0 +1,25 @@ + + + $a + + + + main + + + 0 + + + 1 + + + + + 0 + + + + + + + diff --git a/eval-final-projet/output/eval13.lex b/eval-final-projet/output/eval13.lex new file mode 100644 index 0000000..a40b0de --- /dev/null +++ b/eval-final-projet/output/eval13.lex @@ -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 diff --git a/eval-final-projet/output/eval13.mips b/eval-final-projet/output/eval13.mips new file mode 100644 index 0000000..4b91b0c --- /dev/null +++ b/eval-final-projet/output/eval13.mips @@ -0,0 +1,51 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e0 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +j e1 +e0: +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +e1: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval13.synt b/eval-final-projet/output/eval13.synt new file mode 100644 index 0000000..f049cf1 --- /dev/null +++ b/eval-final-projet/output/eval13.synt @@ -0,0 +1,154 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + 0 + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 1 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + sinon + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 0 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval13.tab b/eval-final-projet/output/eval13.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval13.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval14.asynt b/eval-final-projet/output/eval14.asynt new file mode 100644 index 0000000..96fad91 --- /dev/null +++ b/eval-final-projet/output/eval14.asynt @@ -0,0 +1,96 @@ + + + $tab[10] + + + + main + + $a + + + + $a + 0 + + + + + inf + + $a + + 10 + + + + + $tab + + $a + + + + $a + + + + + $a + + plus + + $a + + 1 + + + + + + + + $a + 0 + + + + + inf + + $a + + 10 + + + + + + $tab + + $a + + + + + + + $a + + plus + + $a + + 1 + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval14.lex b/eval-final-projet/output/eval14.lex new file mode 100644 index 0000000..3c9e1b9 --- /dev/null +++ b/eval-final-projet/output/eval14.lex @@ -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 diff --git a/eval-final-projet/output/eval14.mips b/eval-final-projet/output/eval14.mips new file mode 100644 index 0000000..04753b1 --- /dev/null +++ b/eval-final-projet/output/eval14.mips @@ -0,0 +1,140 @@ +.data +$$tab: .space 40 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +e0: +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e2 +li $t0, 0 +e2: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e1 +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +j e0 +e1: +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +e3: +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e5 +li $t0, 0 +e5: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e4 +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +j e3 +e4: +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval14.synt b/eval-final-projet/output/eval14.synt new file mode 100644 index 0000000..d0d0c20 --- /dev/null +++ b/eval-final-projet/output/eval14.synt @@ -0,0 +1,487 @@ + + + + + entier + $tab + + CROCHET_OUVRANT + 10 + CROCHET_FERMANT + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $a + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $a + + + + + + + + + + + + INFERIEUR + + + + 10 + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $a + + + + EGAL + + + + + + + + + $a + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + + $a + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $a + + + + + + + + + + + + INFERIEUR + + + + 10 + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + $a + + + + EGAL + + + + + + + + + $a + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval14.tab b/eval-final-projet/output/eval14.tab new file mode 100644 index 0000000..6ef7c9a --- /dev/null +++ b/eval-final-projet/output/eval14.tab @@ -0,0 +1,7 @@ +------------------------------------------ +base = 2 +sommet = 3 +0 $tab GLOBALE TABLEAU 0 10 +1 main GLOBALE FONCTION 0 0 +2 $a LOCALE ENTIER 0 -1 +------------------------------------------ diff --git a/eval-final-projet/output/eval15.asynt b/eval-final-projet/output/eval15.asynt new file mode 100644 index 0000000..80cfd53 --- /dev/null +++ b/eval-final-projet/output/eval15.asynt @@ -0,0 +1,29 @@ + + + $tab[10] + + + + main + + + + $tab + 4 + + 4 + + + + + + $tab + 4 + + + + + + + + diff --git a/eval-final-projet/output/eval15.lex b/eval-final-projet/output/eval15.lex new file mode 100644 index 0000000..d3d8f9d --- /dev/null +++ b/eval-final-projet/output/eval15.lex @@ -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 diff --git a/eval-final-projet/output/eval15.mips b/eval-final-projet/output/eval15.mips new file mode 100644 index 0000000..39381b4 --- /dev/null +++ b/eval-final-projet/output/eval15.mips @@ -0,0 +1,51 @@ +.data +$$tab: .space 40 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval15.synt b/eval-final-projet/output/eval15.synt new file mode 100644 index 0000000..f09da36 --- /dev/null +++ b/eval-final-projet/output/eval15.synt @@ -0,0 +1,170 @@ + + + + + entier + $tab + + CROCHET_OUVRANT + 10 + CROCHET_FERMANT + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 4 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 4 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 4 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval15.tab b/eval-final-projet/output/eval15.tab new file mode 100644 index 0000000..de4eeb4 --- /dev/null +++ b/eval-final-projet/output/eval15.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $tab GLOBALE TABLEAU 0 10 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval16.asynt b/eval-final-projet/output/eval16.asynt new file mode 100644 index 0000000..4b68dd0 --- /dev/null +++ b/eval-final-projet/output/eval16.asynt @@ -0,0 +1,20 @@ + + + $a + + + + main + + + 0 + + + 1 + + + + + + + diff --git a/eval-final-projet/output/eval16.lex b/eval-final-projet/output/eval16.lex new file mode 100644 index 0000000..911ee5b --- /dev/null +++ b/eval-final-projet/output/eval16.lex @@ -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 diff --git a/eval-final-projet/output/eval16.mips b/eval-final-projet/output/eval16.mips new file mode 100644 index 0000000..28928f9 --- /dev/null +++ b/eval-final-projet/output/eval16.mips @@ -0,0 +1,40 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +e0: +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e1 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +j e0 +e1: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval16.synt b/eval-final-projet/output/eval16.synt new file mode 100644 index 0000000..7dcd9b3 --- /dev/null +++ b/eval-final-projet/output/eval16.synt @@ -0,0 +1,110 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + tantque + + + + + + + + 0 + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 1 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval16.tab b/eval-final-projet/output/eval16.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval16.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval17.asynt b/eval-final-projet/output/eval17.asynt new file mode 100644 index 0000000..370907a --- /dev/null +++ b/eval-final-projet/output/eval17.asynt @@ -0,0 +1,46 @@ + + + $a + + + + main + + + $a + 0 + + + + + inf + + $a + + 10 + + + + + $a + + + + + $a + + plus + + $a + + 1 + + + + + + + + + + diff --git a/eval-final-projet/output/eval17.lex b/eval-final-projet/output/eval17.lex new file mode 100644 index 0000000..fb449a8 --- /dev/null +++ b/eval-final-projet/output/eval17.lex @@ -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 diff --git a/eval-final-projet/output/eval17.mips b/eval-final-projet/output/eval17.mips new file mode 100644 index 0000000..66b00b6 --- /dev/null +++ b/eval-final-projet/output/eval17.mips @@ -0,0 +1,75 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$a +e0: +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e2 +li $t0, 0 +e2: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e1 +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$a +j e0 +e1: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval17.synt b/eval-final-projet/output/eval17.synt new file mode 100644 index 0000000..812c711 --- /dev/null +++ b/eval-final-projet/output/eval17.synt @@ -0,0 +1,222 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $a + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $a + + + + + + + + + + + + INFERIEUR + + + + 10 + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + $a + + + + EGAL + + + + + + + + + $a + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval17.tab b/eval-final-projet/output/eval17.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval17.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval18.asynt b/eval-final-projet/output/eval18.asynt new file mode 100644 index 0000000..eae93f6 --- /dev/null +++ b/eval-final-projet/output/eval18.asynt @@ -0,0 +1,107 @@ + + + $t0 + + $t1 + + $123 + + $ + + $$ + + $$$ + + $f + + $_ + + + + + + + + + + + f + + $$ + + + $$$ + + $f + + $_ + + + + + + $ + + plus + + plus + + $123 + + + $_ + + + + $$ + + + + + + + $ + + + + + + + + main + + + $t0 + 1 + + + + $123 + + plus + + $t0 + + 0 + + + + + + f + + + $123 + + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval18.lex b/eval-final-projet/output/eval18.lex new file mode 100644 index 0000000..628d3be --- /dev/null +++ b/eval-final-projet/output/eval18.lex @@ -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 diff --git a/eval-final-projet/output/eval18.mips b/eval-final-projet/output/eval18.mips new file mode 100644 index 0000000..aa464a5 --- /dev/null +++ b/eval-final-projet/output/eval18.mips @@ -0,0 +1,108 @@ +.data +$$t0: .space 4 +$$t1: .space 4 +$$123: .space 4 +$$: .space 4 +$$$: .space 4 +$$$$: .space 4 +$$f: .space 4 +$$_: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +f : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +subi $sp, $sp, 4 +subi $sp, $sp, 4 +lw $t0, $$123 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -16($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $$ +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$ +lw $t0, $$ +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 12 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$t0 +lw $t0, $$t0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$123 +subi $sp, $sp, 4 #Val Retour +lw $t0, $$123 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal f +addi $sp, $sp, 4 #désalocation des arguments +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval18.synt b/eval-final-projet/output/eval18.synt new file mode 100644 index 0000000..0adb6ca --- /dev/null +++ b/eval-final-projet/output/eval18.synt @@ -0,0 +1,401 @@ + + + + + entier + $t0 + + + + + VIRGULE + + entier + $t1 + + + + + VIRGULE + + entier + $123 + + + + + VIRGULE + + entier + $ + + + + + VIRGULE + + entier + $$ + + + + + VIRGULE + + entier + $$$ + + + + + VIRGULE + + entier + $f + + + + + VIRGULE + + entier + $_ + + + + + + + + + + + + + + POINT_VIRGULE + + + + f + + PARENTHESE_OUVRANTE + + + + entier + $$ + + + + + + + + PARENTHESE_FERMANTE + + + + + entier + $$$ + + + + + VIRGULE + + entier + $f + + + + + VIRGULE + + entier + $_ + + + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $ + + + + EGAL + + + + + + + + + $123 + + + + + + + + + PLUS + + + + $_ + + + + + + + + + PLUS + + + + $$ + + + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $ + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $t0 + + + + EGAL + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $123 + + + + EGAL + + + + + + + + + $t0 + + + + + + + + + PLUS + + + 0 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + f + PARENTHESE_OUVRANTE + + + + + + + + + + $123 + + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval18.tab b/eval-final-projet/output/eval18.tab new file mode 100644 index 0000000..028ddd4 --- /dev/null +++ b/eval-final-projet/output/eval18.tab @@ -0,0 +1,31 @@ +------------------------------------------ +base = 9 +sommet = 13 +0 $t0 GLOBALE ENTIER 0 -1 +1 $t1 GLOBALE ENTIER 4 -1 +2 $123 GLOBALE ENTIER 8 -1 +3 $ GLOBALE ENTIER 12 -1 +4 $$ GLOBALE ENTIER 16 -1 +5 $$$ GLOBALE ENTIER 20 -1 +6 $f GLOBALE ENTIER 24 -1 +7 $_ GLOBALE ENTIER 28 -1 +8 f GLOBALE FONCTION 0 1 +9 $$ ARGUMENT ENTIER 0 -1 +10 $$$ LOCALE ENTIER 0 -1 +11 $f LOCALE ENTIER 4 -1 +12 $_ LOCALE ENTIER 8 -1 +------------------------------------------ +------------------------------------------ +base = 10 +sommet = 10 +0 $t0 GLOBALE ENTIER 0 -1 +1 $t1 GLOBALE ENTIER 4 -1 +2 $123 GLOBALE ENTIER 8 -1 +3 $ GLOBALE ENTIER 12 -1 +4 $$ GLOBALE ENTIER 16 -1 +5 $$$ GLOBALE ENTIER 20 -1 +6 $f GLOBALE ENTIER 24 -1 +7 $_ GLOBALE ENTIER 28 -1 +8 f GLOBALE FONCTION 0 1 +9 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval19.asynt b/eval-final-projet/output/eval19.asynt new file mode 100644 index 0000000..edf971b --- /dev/null +++ b/eval-final-projet/output/eval19.asynt @@ -0,0 +1,16 @@ + + + + main + + + + et + 1 + 2 + + + + + + diff --git a/eval-final-projet/output/eval19.lex b/eval-final-projet/output/eval19.lex new file mode 100644 index 0000000..b89d57d --- /dev/null +++ b/eval-final-projet/output/eval19.lex @@ -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 diff --git a/eval-final-projet/output/eval19.mips b/eval-final-projet/output/eval19.mips new file mode 100644 index 0000000..4c3f4c9 --- /dev/null +++ b/eval-final-projet/output/eval19.mips @@ -0,0 +1,46 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e1 +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t2, e1 +and $t0, $t1, $t2 +j e0 + e1 : +li $t0 0 + e0 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval19.synt b/eval-final-projet/output/eval19.synt new file mode 100644 index 0000000..3f15bda --- /dev/null +++ b/eval-final-projet/output/eval19.synt @@ -0,0 +1,80 @@ + + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 1 + + + + + + + + + + + + + ET + + + + + + 2 + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval19.tab b/eval-final-projet/output/eval19.tab new file mode 100644 index 0000000..2a3c2e8 --- /dev/null +++ b/eval-final-projet/output/eval19.tab @@ -0,0 +1,5 @@ +------------------------------------------ +base = 1 +sommet = 1 +0 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval2-err.synt.xml b/eval-final-projet/output/eval2-err.synt.xml new file mode 100644 index 0000000..9280285 --- /dev/null +++ b/eval-final-projet/output/eval2-err.synt.xml @@ -0,0 +1,79 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +add : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +lw $t0, 8($fp) #variable argument $a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 12($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +subi $sp, $sp, 4 +subi $sp, $sp, 4 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -12($fp) #variable locale +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -16($fp) #variable locale +subi $sp, $sp, 4 #Val Retour +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -16($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +Nombre Argument différent pour l'appel à add diff --git a/eval-final-projet/output/eval2.asynt b/eval-final-projet/output/eval2.asynt new file mode 100644 index 0000000..3f2aace --- /dev/null +++ b/eval-final-projet/output/eval2.asynt @@ -0,0 +1,63 @@ + + + $i + + $carre + + + + + main + + + $i + 0 + + + + + inf + + $i + + 10 + + + + $carre + + fois + + $i + + + $i + + + + + + + $carre + + + + + $i + + plus + + $i + + 1 + + + + + + + + + + + diff --git a/eval-final-projet/output/eval2.lex b/eval-final-projet/output/eval2.lex new file mode 100644 index 0000000..cbdea9f --- /dev/null +++ b/eval-final-projet/output/eval2.lex @@ -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 diff --git a/eval-final-projet/output/eval2.mips b/eval-final-projet/output/eval2.mips new file mode 100644 index 0000000..56e0446 --- /dev/null +++ b/eval-final-projet/output/eval2.mips @@ -0,0 +1,93 @@ +.data +$$i: .space 4 +$$carre: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$i +e0: +lw $t0, $$i +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e2 +li $t0, 0 +e2: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e1 +lw $t0, $$i +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, $$i +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +mult $t1, $t2 +mflo $t0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$carre +lw $t0, $$carre +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +lw $t0, $$i +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$i +j e0 +e1: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval2.synt b/eval-final-projet/output/eval2.synt new file mode 100644 index 0000000..c3cf0f2 --- /dev/null +++ b/eval-final-projet/output/eval2.synt @@ -0,0 +1,283 @@ + + + + + entier + $i + + + + + VIRGULE + + entier + $carre + + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $i + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $i + + + + + + + + + + + + INFERIEUR + + + + 10 + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + + $carre + + + + EGAL + + + + + + + + + $i + + + + + + FOIS + + + $i + + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $carre + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + $i + + + + EGAL + + + + + + + + + $i + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + + ACCOLADE_FERMANTE + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval2.tab b/eval-final-projet/output/eval2.tab new file mode 100644 index 0000000..f37700e --- /dev/null +++ b/eval-final-projet/output/eval2.tab @@ -0,0 +1,7 @@ +------------------------------------------ +base = 3 +sommet = 3 +0 $i GLOBALE ENTIER 0 -1 +1 $carre GLOBALE ENTIER 4 -1 +2 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval20.asynt b/eval-final-projet/output/eval20.asynt new file mode 100644 index 0000000..de7c576 --- /dev/null +++ b/eval-final-projet/output/eval20.asynt @@ -0,0 +1,93 @@ + + + + fact + + $f + + + + + ou + + egal + + $f + + 1 + + + egal + + $f + + 0 + + + + + 1 + + + + + + fois + + + fact + + + moins + + $f + + 1 + + + + + + + + $f + + + + + + + + + + main + + $a + + + + $a + + + + + + + + fact + + + $a + + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval20.lex b/eval-final-projet/output/eval20.lex new file mode 100644 index 0000000..bd86f66 --- /dev/null +++ b/eval-final-projet/output/eval20.lex @@ -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 diff --git a/eval-final-projet/output/eval20.mips b/eval-final-projet/output/eval20.mips new file mode 100644 index 0000000..0cf87dd --- /dev/null +++ b/eval-final-projet/output/eval20.mips @@ -0,0 +1,156 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +fact : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +lw $t0, 4($fp) #variable argument $f +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +beq $t1, $t2 e4 +li $t0, 0 +e4: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e0 +j e2 +e0 : +lw $t0, 4($fp) #variable argument $f +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +beq $t1, $t2 e5 +li $t0, 0 +e5: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +e2 : +or $t0, $t1, $t2 +j e3 +e1 : +or $t0, $t1, $t2 +e3 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e6 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 8($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +j e7 +e6: +subi $sp, $sp, 4 #Val Retour +lw $t0, 4($fp) #variable argument $f +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal fact +addi $sp, $sp, 4 #désalocation des arguments +lw $t0, 4($fp) #variable argument $f +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +mult $t1, $t2 +mflo $t0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 8($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +e7: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 #Val Retour +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal fact +addi $sp, $sp, 4 #désalocation des arguments +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval20.synt b/eval-final-projet/output/eval20.synt new file mode 100644 index 0000000..8c37de9 --- /dev/null +++ b/eval-final-projet/output/eval20.synt @@ -0,0 +1,408 @@ + + + + + + fact + + PARENTHESE_OUVRANTE + + + + entier + $f + + + + + + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + + $f + + + + + + + + + + + + EGAL + + + + 1 + + + + + + + + + + + + + + + + + OU + + + + + + + + $f + + + + + + + + + + + + EGAL + + + + 0 + + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + sinon + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + + fact + PARENTHESE_OUVRANTE + + + + + + + + + + $f + + + + + + + + + MOINS + + + 1 + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + FOIS + + + $f + + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $a + + + + EGAL + + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + fact + PARENTHESE_OUVRANTE + + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval20.tab b/eval-final-projet/output/eval20.tab new file mode 100644 index 0000000..8d8ab1f --- /dev/null +++ b/eval-final-projet/output/eval20.tab @@ -0,0 +1,13 @@ +------------------------------------------ +base = 1 +sommet = 2 +0 fact GLOBALE FONCTION 0 1 +1 $f ARGUMENT ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 3 +0 fact GLOBALE FONCTION 0 1 +1 main GLOBALE FONCTION 0 0 +2 $a LOCALE ENTIER 0 -1 +------------------------------------------ diff --git a/eval-final-projet/output/eval21.asynt b/eval-final-projet/output/eval21.asynt new file mode 100644 index 0000000..292ebb7 --- /dev/null +++ b/eval-final-projet/output/eval21.asynt @@ -0,0 +1,85 @@ + + + + fibo + + $n + + + + + inf + + $n + + 2 + + + + 1 + + + + + + plus + + + fibo + + + moins + + $n + + 1 + + + + + + + + + fibo + + + moins + + $n + + 2 + + + + + + + + + + + + + + + main + + + + + fibo + + + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval21.lex b/eval-final-projet/output/eval21.lex new file mode 100644 index 0000000..40e933b --- /dev/null +++ b/eval-final-projet/output/eval21.lex @@ -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 diff --git a/eval-final-projet/output/eval21.mips b/eval-final-projet/output/eval21.mips new file mode 100644 index 0000000..7d118aa --- /dev/null +++ b/eval-final-projet/output/eval21.mips @@ -0,0 +1,130 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +fibo : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +lw $t0, 4($fp) #variable argument $n +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e0 +li $t0, 0 +e0: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e1 +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 8($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +j e2 +e1: +subi $sp, $sp, 4 #Val Retour +lw $t0, 4($fp) #variable argument $n +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal fibo +addi $sp, $sp, 4 #désalocation des arguments +subi $sp, $sp, 4 #Val Retour +lw $t0, 4($fp) #variable argument $n +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal fibo +addi $sp, $sp, 4 #désalocation des arguments +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 8($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +e2: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal fibo +addi $sp, $sp, 4 #désalocation des arguments +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval21.synt b/eval-final-projet/output/eval21.synt new file mode 100644 index 0000000..1ca6407 --- /dev/null +++ b/eval-final-projet/output/eval21.synt @@ -0,0 +1,360 @@ + + + + + + fibo + + PARENTHESE_OUVRANTE + + + + entier + $n + + + + + + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + + $n + + + + + + + + + + + + INFERIEUR + + + + 2 + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + sinon + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + + fibo + PARENTHESE_OUVRANTE + + + + + + + + + + $n + + + + + + + + + MOINS + + + 1 + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + PLUS + + + + fibo + PARENTHESE_OUVRANTE + + + + + + + + + + $n + + + + + + + + + MOINS + + + 2 + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + fibo + PARENTHESE_OUVRANTE + + + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval21.tab b/eval-final-projet/output/eval21.tab new file mode 100644 index 0000000..9245325 --- /dev/null +++ b/eval-final-projet/output/eval21.tab @@ -0,0 +1,12 @@ +------------------------------------------ +base = 1 +sommet = 2 +0 fibo GLOBALE FONCTION 0 1 +1 $n ARGUMENT ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 2 +0 fibo GLOBALE FONCTION 0 1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval22.asynt b/eval-final-projet/output/eval22.asynt new file mode 100644 index 0000000..efeef4e --- /dev/null +++ b/eval-final-projet/output/eval22.asynt @@ -0,0 +1,161 @@ + + + $a + + $b + + + + + pgcd + + $a + + $b + + + + $c + + + + $c + + moins + + $a + + + fois + + divise + + $a + + + $b + + + + $b + + + + + + + + egal + + $c + + 0 + + + + + $b + + + + + + + + pgcd + + + $b + + + + $c + + + + + + + + + + + + + + + + main + + + $a + + + + + + $b + + + + + + + inf + + $b + + + $a + + + + + + + pgcd + + + $a + + + + $b + + + + + + + + + + + + + + pgcd + + + $b + + + + $a + + + + + + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval22.lex b/eval-final-projet/output/eval22.lex new file mode 100644 index 0000000..d4220d6 --- /dev/null +++ b/eval-final-projet/output/eval22.lex @@ -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 diff --git a/eval-final-projet/output/eval22.mips b/eval-final-projet/output/eval22.mips new file mode 100644 index 0000000..89fd3f8 --- /dev/null +++ b/eval-final-projet/output/eval22.mips @@ -0,0 +1,197 @@ +.data +$$a: .space 4 +$$b: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +pgcd : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +lw $t0, 8($fp) #variable argument $a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 8($fp) #variable argument $a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +div $t1, $t2 +mflo $t0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +mult $t1, $t2 +mflo $t0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +beq $t1, $t2 e0 +li $t0, 0 +e0: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e1 +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 12($fp) #Adresse de retour +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +j e2 +e1: +subi $sp, $sp, 4 #Val Retour +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal pgcd +addi $sp, $sp, 8 #désalocation des arguments +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 12($fp) #Adresse de retour +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +e2: +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$a +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$b +lw $t0, $$b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e3 +li $t0, 0 +e3: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e4 +subi $sp, $sp, 4 #Val Retour +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, $$b +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal pgcd +addi $sp, $sp, 8 #désalocation des arguments +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +j e5 +e4: +subi $sp, $sp, 4 #Val Retour +lw $t0, $$b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, $$a +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal pgcd +addi $sp, $sp, 8 #désalocation des arguments +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +e5: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval22.synt b/eval-final-projet/output/eval22.synt new file mode 100644 index 0000000..9f90605 --- /dev/null +++ b/eval-final-projet/output/eval22.synt @@ -0,0 +1,759 @@ + + + + + entier + $a + + + + + VIRGULE + + entier + $b + + + + + + + + POINT_VIRGULE + + + + pgcd + + PARENTHESE_OUVRANTE + + + + entier + $a + + + + + VIRGULE + + entier + $b + + + + + + + + + PARENTHESE_FERMANTE + + + + + entier + $c + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $c + + + + EGAL + + + + + + + + + $a + + + + + + + + + MOINS + + + PARENTHESE_OUVRANTE + + + + + + + + + $a + + + + + + DIVISE + + + $b + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + FOIS + + + $b + + + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + si + + + + + + + + + $c + + + + + + + + + + + + EGAL + + + + 0 + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + + $b + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + sinon + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + + pgcd + PARENTHESE_OUVRANTE + + + + + + + + + + $b + + + + + + + + + + + + + + + + + + + + + + VIRGULE + + + + + + + + + $c + + + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $a + + + + EGAL + + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $b + + + + EGAL + + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + si + + + + + + + + + $b + + + + + + + + + + + + INFERIEUR + + + + + $a + + + + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + pgcd + PARENTHESE_OUVRANTE + + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + + VIRGULE + + + + + + + + + $b + + + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + sinon + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + pgcd + PARENTHESE_OUVRANTE + + + + + + + + + + $b + + + + + + + + + + + + + + + + + + + + + + VIRGULE + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval22.tab b/eval-final-projet/output/eval22.tab new file mode 100644 index 0000000..a0255dd --- /dev/null +++ b/eval-final-projet/output/eval22.tab @@ -0,0 +1,18 @@ +------------------------------------------ +base = 3 +sommet = 6 +0 $a GLOBALE ENTIER 0 -1 +1 $b GLOBALE ENTIER 4 -1 +2 pgcd GLOBALE FONCTION 0 2 +3 $a ARGUMENT ENTIER 0 -1 +4 $b ARGUMENT ENTIER 4 -1 +5 $c LOCALE ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 4 +sommet = 4 +0 $a GLOBALE ENTIER 0 -1 +1 $b GLOBALE ENTIER 4 -1 +2 pgcd GLOBALE FONCTION 0 2 +3 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval23.asynt b/eval-final-projet/output/eval23.asynt new file mode 100644 index 0000000..c46432c --- /dev/null +++ b/eval-final-projet/output/eval23.asynt @@ -0,0 +1,22 @@ + + + + main + + + + ou + 1 + + + + + + 5 + + + + + + + diff --git a/eval-final-projet/output/eval23.lex b/eval-final-projet/output/eval23.lex new file mode 100644 index 0000000..d384bb1 --- /dev/null +++ b/eval-final-projet/output/eval23.lex @@ -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 diff --git a/eval-final-projet/output/eval23.mips b/eval-final-projet/output/eval23.mips new file mode 100644 index 0000000..11fffbc --- /dev/null +++ b/eval-final-projet/output/eval23.mips @@ -0,0 +1,58 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e0 +j e2 +e0 : +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +or $t0, $t1, $t2 +j e3 +e2 : +move $t0 $t1 +e3 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e4 +li $t0, 5 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +j e5 +e4: +e5: +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval23.synt b/eval-final-projet/output/eval23.synt new file mode 100644 index 0000000..08c8ac7 --- /dev/null +++ b/eval-final-projet/output/eval23.synt @@ -0,0 +1,127 @@ + + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + 1 + + + + + + + + + + + + + + + + OU + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 5 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval23.tab b/eval-final-projet/output/eval23.tab new file mode 100644 index 0000000..2a3c2e8 --- /dev/null +++ b/eval-final-projet/output/eval23.tab @@ -0,0 +1,5 @@ +------------------------------------------ +base = 1 +sommet = 1 +0 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval24.asynt b/eval-final-projet/output/eval24.asynt new file mode 100644 index 0000000..7f3b530 --- /dev/null +++ b/eval-final-projet/output/eval24.asynt @@ -0,0 +1,65 @@ + + + + main + + + + ou + 3 + 4 + + + + + + et + 3 + 6 + + + + + + ou + 3 + + + + + + + + et + 3 + + + + + + + + ou + 0 + + + + + + + + et + 0 + + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval24.lex b/eval-final-projet/output/eval24.lex new file mode 100644 index 0000000..a840965 --- /dev/null +++ b/eval-final-projet/output/eval24.lex @@ -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 diff --git a/eval-final-projet/output/eval24.mips b/eval-final-projet/output/eval24.mips new file mode 100644 index 0000000..c010107 --- /dev/null +++ b/eval-final-projet/output/eval24.mips @@ -0,0 +1,192 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e0 +j e2 +e0 : +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +or $t0, $t1, $t2 +j e3 +e2 : +move $t0 $t1 +e3 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e5 +li $t0, 6 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t2, e5 +and $t0, $t1, $t2 +j e4 + e5 : +li $t0 0 + e4 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e6 +j e8 +e6 : +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +or $t0, $t1, $t2 +j e9 +e8 : +move $t0 $t1 +e9 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e11 +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t2, e11 +and $t0, $t1, $t2 +j e10 + e11 : +li $t0 0 + e10 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e12 +j e14 +e12 : +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +or $t0, $t1, $t2 +j e15 +e14 : +move $t0 $t1 +e15 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t1, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t1, e17 +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +beq $zero, $t2, e17 +and $t0, $t1, $t2 +j e16 + e17 : +li $t0 0 + e16 : +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval24.synt b/eval-final-projet/output/eval24.synt new file mode 100644 index 0000000..d08fc77 --- /dev/null +++ b/eval-final-projet/output/eval24.synt @@ -0,0 +1,375 @@ + + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 3 + + + + + + + + + + + + + + + + OU + + + + + + + 4 + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 3 + + + + + + + + + + + + + ET + + + + + + 6 + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 3 + + + + + + + + + + + + + + + + OU + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 3 + + + + + + + + + + + + + ET + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 0 + + + + + + + + + + + + + + + + OU + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 0 + + + + + + + + + + + + + ET + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval24.tab b/eval-final-projet/output/eval24.tab new file mode 100644 index 0000000..2a3c2e8 --- /dev/null +++ b/eval-final-projet/output/eval24.tab @@ -0,0 +1,5 @@ +------------------------------------------ +base = 1 +sommet = 1 +0 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval25.synt b/eval-final-projet/output/eval25.synt new file mode 100644 index 0000000..e69de29 diff --git a/eval-final-projet/output/eval3-err.synt.xml b/eval-final-projet/output/eval3-err.synt.xml new file mode 100644 index 0000000..b6a708d --- /dev/null +++ b/eval-final-projet/output/eval3-err.synt.xml @@ -0,0 +1,13 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +Fonction procedure introuvable diff --git a/eval-final-projet/output/eval3.asynt b/eval-final-projet/output/eval3.asynt new file mode 100644 index 0000000..5a3244d --- /dev/null +++ b/eval-final-projet/output/eval3.asynt @@ -0,0 +1,19 @@ + + + $a + + + + main + + + + fois + 5 + 2 + + + + + + diff --git a/eval-final-projet/output/eval3.lex b/eval-final-projet/output/eval3.lex new file mode 100644 index 0000000..a569a71 --- /dev/null +++ b/eval-final-projet/output/eval3.lex @@ -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 diff --git a/eval-final-projet/output/eval3.mips b/eval-final-projet/output/eval3.mips new file mode 100644 index 0000000..74cae41 --- /dev/null +++ b/eval-final-projet/output/eval3.mips @@ -0,0 +1,42 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 5 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +mult $t1, $t2 +mflo $t0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval3.synt b/eval-final-projet/output/eval3.synt new file mode 100644 index 0000000..4d058f0 --- /dev/null +++ b/eval-final-projet/output/eval3.synt @@ -0,0 +1,77 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 5 + + + FOIS + + 2 + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval3.tab b/eval-final-projet/output/eval3.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval3.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval4-err.synt.xml b/eval-final-projet/output/eval4-err.synt.xml new file mode 100644 index 0000000..f4723a6 --- /dev/null +++ b/eval-final-projet/output/eval4-err.synt.xml @@ -0,0 +1,16 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +Variable $a non déclaré diff --git a/eval-final-projet/output/eval4.asynt b/eval-final-projet/output/eval4.asynt new file mode 100644 index 0000000..e419965 --- /dev/null +++ b/eval-final-projet/output/eval4.asynt @@ -0,0 +1,106 @@ + + + + max + + $a + + $b + + + + + + inf + + $a + + + $b + + + + + + $b + + + + + + + + $a + + + + + + + + main + + $v_1 + + $v_2 + + + + + $v_1 + + + + + + $v_2 + + + + + + + egal + + + max + + + $v_1 + + + + $v_2 + + + + + + + + + $v_1 + + + + + + $v_1 + + + + + + + $v_2 + + + + + + + + + + + diff --git a/eval-final-projet/output/eval4.lex b/eval-final-projet/output/eval4.lex new file mode 100644 index 0000000..5b96821 --- /dev/null +++ b/eval-final-projet/output/eval4.lex @@ -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 diff --git a/eval-final-projet/output/eval4.mips b/eval-final-projet/output/eval4.mips new file mode 100644 index 0000000..187d585 --- /dev/null +++ b/eval-final-projet/output/eval4.mips @@ -0,0 +1,146 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +max : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +lw $t0, 8($fp) #variable argument $a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e0 +li $t0, 0 +e0: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e1 +lw $t0, 4($fp) #variable argument $b +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 12($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +j e2 +e1: +e2: +lw $t0, 8($fp) #variable argument $a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0 12($fp) #Adresse de retour +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +jr $ra +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +subi $sp, $sp, 4 +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +li $v0 5 +syscall +move $t0, $v0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 #Val Retour +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal max +addi $sp, $sp, 8 #désalocation des arguments +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +beq $t1, $t2 e3 +li $t0, 0 +e3: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e4 +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +j e5 +e4: +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +e5: +addi $sp, $sp 8 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval4.synt b/eval-final-projet/output/eval4.synt new file mode 100644 index 0000000..08f06d7 --- /dev/null +++ b/eval-final-projet/output/eval4.synt @@ -0,0 +1,513 @@ + + + + + + max + + PARENTHESE_OUVRANTE + + + + entier + $a + + + + + VIRGULE + + entier + $b + + + + + + + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + + $a + + + + + + + + + + + + INFERIEUR + + + + + $b + + + + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + retour + + + + + + + + + $b + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + + retour + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + entier + $v_1 + + + + + VIRGULE + + entier + $v_2 + + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $v_1 + + + + EGAL + + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $v_2 + + + + EGAL + + + + + + + + lire + PARENTHESE_OUVRANTE + PARENTHESE_FERMANTE + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + si + + + + + + + + + max + PARENTHESE_OUVRANTE + + + + + + + + + + $v_1 + + + + + + + + + + + + + + + + + + + + + + VIRGULE + + + + + + + + + $v_2 + + + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + + + + + + + + + EGAL + + + + + $v_1 + + + + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $v_1 + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + sinon + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $v_2 + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval4.tab b/eval-final-projet/output/eval4.tab new file mode 100644 index 0000000..3d3086c --- /dev/null +++ b/eval-final-projet/output/eval4.tab @@ -0,0 +1,15 @@ +------------------------------------------ +base = 1 +sommet = 3 +0 max GLOBALE FONCTION 0 2 +1 $a ARGUMENT ENTIER 0 -1 +2 $b ARGUMENT ENTIER 4 -1 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 4 +0 max GLOBALE FONCTION 0 2 +1 main GLOBALE FONCTION 0 0 +2 $v_1 LOCALE ENTIER 0 -1 +3 $v_2 LOCALE ENTIER 4 -1 +------------------------------------------ diff --git a/eval-final-projet/output/eval5-err.synt.xml b/eval-final-projet/output/eval5-err.synt.xml new file mode 100644 index 0000000..a746856 --- /dev/null +++ b/eval-final-projet/output/eval5-err.synt.xml @@ -0,0 +1,3 @@ +.data +$$a: .space 4 +Variable $a déjà déclaré diff --git a/eval-final-projet/output/eval5.asynt b/eval-final-projet/output/eval5.asynt new file mode 100644 index 0000000..f1106e5 --- /dev/null +++ b/eval-final-projet/output/eval5.asynt @@ -0,0 +1,418 @@ + + + $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 + + $n + + + $i + + + + $i + 0 + + + + + inf + + $i + + + $n + + + + + + + $tab + + $i + + + + + + + $i + + plus + + $i + + 1 + + + + + + + + 0 + + + + + + + + echanger + + $i + + $j + + + + $temp + + + + $temp + + + $tab + + $j + + + + + + + + $tab + + $j + + + + + $tab + + $i + + + + + + + + $tab + + $i + + + + $temp + + + + + + + + + trier + + $n + + + $echange + + $j + + $m + + + + + + $m + + $n + + + + + $echange + 1 + + + + + egal + + $echange + + 1 + + + + $echange + 0 + + + + $j + 0 + + + + + inf + + $j + + + moins + + $m + + 1 + + + + + + inf + + + $tab + + plus + + $j + + 1 + + + + + + $tab + + $j + + + + + + + + echanger + + + $j + + + + plus + + $j + + 1 + + + + + + + + + + $echange + 1 + + + + + + + $j + + plus + + $j + + 1 + + + + + + + + $m + + moins + + $m + + 1 + + + + + + + + + + + + + + main + + + + initialiser + + + + + + + + afficher + + 10 + + + + + + + + + trier + + 10 + + + + + + + + + afficher + + 10 + + + + + + + + + + + + + + + + diff --git a/eval-final-projet/output/eval5.lex b/eval-final-projet/output/eval5.lex new file mode 100644 index 0000000..457125e --- /dev/null +++ b/eval-final-projet/output/eval5.lex @@ -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 diff --git a/eval-final-projet/output/eval5.mips b/eval-final-projet/output/eval5.mips new file mode 100644 index 0000000..3557338 --- /dev/null +++ b/eval-final-projet/output/eval5.mips @@ -0,0 +1,527 @@ +.data +$$tab: .space 40 +.text +__start: +jal main +li $v0, 10 +syscall +initialiser : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 8 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 6 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 9 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 9 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 5 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 6 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 7 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 4 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 8 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +li $t0, 5 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 9 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +afficher : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +e0: +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $n +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e2 +li $t0, 0 +e2: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e1 +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +j e0 +e1: +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +echanger : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +lw $t0, 4($fp) #variable argument $j +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +lw $t0, 8($fp) #variable argument $i +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 4($fp) #variable argument $j +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 8($fp) #variable argument $i +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, $$tab($t4) +addi $sp, $sp 4 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +trier : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 +subi $sp, $sp, 4 +subi $sp, $sp, 4 +lw $t0, 4($fp) #variable argument $n +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -16($fp) #variable locale +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +e3: +lw $t0, -8($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +beq $t1, $t2 e5 +li $t0, 0 +e5: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e4 +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +li $t0, 0 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -12($fp) #variable locale +e6: +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -16($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e8 +li $t0, 0 +e8: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $0 e7 +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t4, 0($sp) +addi $sp, $sp, 4 +add $t4,$t4,$t4 +add $t4,$t4,$t4 +lw $t0, $$tab($t4) +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +li $t0, 1 +blt $t1, $t2 e9 +li $t0, 0 +e9: +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +beq $t0 $zero e10 +subi $sp, $sp, 4 #Val Retour +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal echanger +addi $sp, $sp, 8 #désalocation des arguments +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -8($fp) #variable locale +j e11 +e10: +e11: +lw $t0, -12($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -12($fp) #variable locale +j e6 +e7: +lw $t0, -16($fp) #variable locale +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +sw $t0, -16($fp) #variable locale +j e3 +e4: +addi $sp, $sp 12 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +jal initialiser +subi $sp, $sp, 4 #Val Retour +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal afficher +addi $sp, $sp, 4 #désalocation des arguments +subi $sp, $sp, 4 #Val Retour +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal trier +addi $sp, $sp, 4 #désalocation des arguments +subi $sp, $sp, 4 #Val Retour +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal afficher +addi $sp, $sp, 4 #désalocation des arguments +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval5.synt b/eval-final-projet/output/eval5.synt new file mode 100644 index 0000000..77a518b --- /dev/null +++ b/eval-final-projet/output/eval5.synt @@ -0,0 +1,2146 @@ + + + + + entier + $tab + + CROCHET_OUVRANT + 10 + CROCHET_FERMANT + + + + + + POINT_VIRGULE + + + + initialiser + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 0 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 8 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 1 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 6 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 2 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 9 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 3 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 9 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 4 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 4 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 5 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 2 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 6 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 3 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 7 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 8 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 4 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + 9 + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + 5 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + + + + + + + + + ACCOLADE_FERMANTE + + + + + afficher + + PARENTHESE_OUVRANTE + + + + entier + $n + + + + + + + + PARENTHESE_FERMANTE + + + + + entier + $i + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $i + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $i + + + + + + + + + + + + INFERIEUR + + + + + $n + + + + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $i + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + $i + + + + EGAL + + + + + + + + + $i + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 0 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + + + ACCOLADE_FERMANTE + + + + + echanger + + PARENTHESE_OUVRANTE + + + + entier + $i + + + + + VIRGULE + + entier + $j + + + + + + + + + PARENTHESE_FERMANTE + + + + + entier + $temp + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $temp + + + + EGAL + + + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $j + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $j + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $i + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $i + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + EGAL + + + + + + + + + $temp + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + + ACCOLADE_FERMANTE + + + + + trier + + PARENTHESE_OUVRANTE + + + + entier + $n + + + + + + + + PARENTHESE_FERMANTE + + + + + entier + $echange + + + + + VIRGULE + + entier + $j + + + + + VIRGULE + + entier + $m + + + + + + + + + POINT_VIRGULE + + + ACCOLADE_OUVRANTE + + + + + $m + + + + EGAL + + + + + + + + + $n + + + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $echange + + + + EGAL + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $echange + + + + + + + + + + + + EGAL + + + + 1 + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + + $echange + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + $j + + + + EGAL + + + + + + + + 0 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + tantque + + + + + + + + + $j + + + + + + + + + + + + INFERIEUR + + + + + $m + + + + + + + + + MOINS + + + 1 + + + + + + + + + + + + + + + + + + + + faire + + ACCOLADE_OUVRANTE + + + + si + + + + + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $j + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + INFERIEUR + + + + + $tab + + CROCHET_OUVRANT + + + + + + + + + $j + + + + + + + + + + + + + + + + + + + + + CROCHET_FERMANT + + + + + + + + + + + + + + + + + + + + + alors + + ACCOLADE_OUVRANTE + + + + + echanger + PARENTHESE_OUVRANTE + + + + + + + + + + $j + + + + + + + + + + + + + + + + + + + + + + VIRGULE + + + + + + + + + $j + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + + $echange + + + + EGAL + + + + + + + + 1 + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + + + + $j + + + + EGAL + + + + + + + + + $j + + + + + + + + + PLUS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + ACCOLADE_FERMANTE + + + + + + + + $m + + + + EGAL + + + + + + + + + $m + + + + + + + + + MOINS + + + 1 + + + + + + + + + + + + + + + + + + + POINT_VIRGULE + + + + + + + + + ACCOLADE_FERMANTE + + + + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + initialiser + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + + afficher + PARENTHESE_OUVRANTE + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + + trier + PARENTHESE_OUVRANTE + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + + afficher + PARENTHESE_OUVRANTE + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + + + + ACCOLADE_FERMANTE + + + + + + + + + + diff --git a/eval-final-projet/output/eval5.tab b/eval-final-projet/output/eval5.tab new file mode 100644 index 0000000..b248a59 --- /dev/null +++ b/eval-final-projet/output/eval5.tab @@ -0,0 +1,49 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $tab GLOBALE TABLEAU 0 10 +1 initialiser GLOBALE FONCTION 0 0 +------------------------------------------ +------------------------------------------ +base = 3 +sommet = 5 +0 $tab GLOBALE TABLEAU 0 10 +1 initialiser GLOBALE FONCTION 0 0 +2 afficher GLOBALE FONCTION 0 1 +3 $n ARGUMENT ENTIER 0 -1 +4 $i LOCALE ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 4 +sommet = 7 +0 $tab GLOBALE TABLEAU 0 10 +1 initialiser GLOBALE FONCTION 0 0 +2 afficher GLOBALE FONCTION 0 1 +3 echanger GLOBALE FONCTION 0 2 +4 $i ARGUMENT ENTIER 0 -1 +5 $j ARGUMENT ENTIER 4 -1 +6 $temp LOCALE ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 5 +sommet = 9 +0 $tab GLOBALE TABLEAU 0 10 +1 initialiser GLOBALE FONCTION 0 0 +2 afficher GLOBALE FONCTION 0 1 +3 echanger GLOBALE FONCTION 0 2 +4 trier GLOBALE FONCTION 0 1 +5 $n ARGUMENT ENTIER 0 -1 +6 $echange LOCALE ENTIER 0 -1 +7 $j LOCALE ENTIER 4 -1 +8 $m LOCALE ENTIER 8 -1 +------------------------------------------ +------------------------------------------ +base = 6 +sommet = 6 +0 $tab GLOBALE TABLEAU 0 10 +1 initialiser GLOBALE FONCTION 0 0 +2 afficher GLOBALE FONCTION 0 1 +3 echanger GLOBALE FONCTION 0 2 +4 trier GLOBALE FONCTION 0 1 +5 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval6-err.synt.xml b/eval-final-projet/output/eval6-err.synt.xml new file mode 100644 index 0000000..f4723a6 --- /dev/null +++ b/eval-final-projet/output/eval6-err.synt.xml @@ -0,0 +1,16 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +Variable $a non déclaré diff --git a/eval-final-projet/output/eval6.asynt b/eval-final-projet/output/eval6.asynt new file mode 100644 index 0000000..c9f82a0 --- /dev/null +++ b/eval-final-projet/output/eval6.asynt @@ -0,0 +1,29 @@ + + + $a + + + + procedure + + + 1 + + + + + + main + + + + procedure + + + + + + + + + diff --git a/eval-final-projet/output/eval6.lex b/eval-final-projet/output/eval6.lex new file mode 100644 index 0000000..f54672c --- /dev/null +++ b/eval-final-projet/output/eval6.lex @@ -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 diff --git a/eval-final-projet/output/eval6.mips b/eval-final-projet/output/eval6.mips new file mode 100644 index 0000000..afeb2bf --- /dev/null +++ b/eval-final-projet/output/eval6.mips @@ -0,0 +1,46 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +procedure : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +jal procedure +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval6.synt b/eval-final-projet/output/eval6.synt new file mode 100644 index 0000000..8451b47 --- /dev/null +++ b/eval-final-projet/output/eval6.synt @@ -0,0 +1,104 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + procedure + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 1 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + procedure + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval6.tab b/eval-final-projet/output/eval6.tab new file mode 100644 index 0000000..52a6119 --- /dev/null +++ b/eval-final-projet/output/eval6.tab @@ -0,0 +1,13 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 procedure GLOBALE FONCTION 0 0 +------------------------------------------ +------------------------------------------ +base = 3 +sommet = 3 +0 $a GLOBALE ENTIER 0 -1 +1 procedure GLOBALE FONCTION 0 0 +2 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval7-err.synt.xml b/eval-final-projet/output/eval7-err.synt.xml new file mode 100644 index 0000000..cf70be0 --- /dev/null +++ b/eval-final-projet/output/eval7-err.synt.xml @@ -0,0 +1,30 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +procedure : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +Nombre Argument différent pour l'appel à procedure diff --git a/eval-final-projet/output/eval7.asynt b/eval-final-projet/output/eval7.asynt new file mode 100644 index 0000000..95531e5 --- /dev/null +++ b/eval-final-projet/output/eval7.asynt @@ -0,0 +1,23 @@ + + + $a + + + + main + + + + plus + + moins + 5 + 3 + + 2 + + + + + + diff --git a/eval-final-projet/output/eval7.lex b/eval-final-projet/output/eval7.lex new file mode 100644 index 0000000..c59c081 --- /dev/null +++ b/eval-final-projet/output/eval7.lex @@ -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 diff --git a/eval-final-projet/output/eval7.mips b/eval-final-projet/output/eval7.mips new file mode 100644 index 0000000..bc714e6 --- /dev/null +++ b/eval-final-projet/output/eval7.mips @@ -0,0 +1,51 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 5 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 3 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +sub $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +li $t0, 2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t2, 0($sp) +addi $sp, $sp, 4 +lw $t1, 0($sp) +addi $sp, $sp, 4 +add $t0, $t1, $t2 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval7.synt b/eval-final-projet/output/eval7.synt new file mode 100644 index 0000000..62e65c9 --- /dev/null +++ b/eval-final-projet/output/eval7.synt @@ -0,0 +1,91 @@ + + + + + entier + $a + + + + + + + POINT_VIRGULE + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 5 + + + + + + MOINS + + + 3 + + + + + + PLUS + + + 2 + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + diff --git a/eval-final-projet/output/eval7.tab b/eval-final-projet/output/eval7.tab new file mode 100644 index 0000000..91bc69d --- /dev/null +++ b/eval-final-projet/output/eval7.tab @@ -0,0 +1,6 @@ +------------------------------------------ +base = 2 +sommet = 2 +0 $a GLOBALE ENTIER 0 -1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval8-err.synt.xml b/eval-final-projet/output/eval8-err.synt.xml new file mode 100644 index 0000000..250b873 --- /dev/null +++ b/eval-final-projet/output/eval8-err.synt.xml @@ -0,0 +1,14 @@ +.data +$$a: .space 4 +.text +__start: +jal main +li $v0, 10 +syscall +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +$a n'est pas un Tableau diff --git a/eval-final-projet/output/eval8.asynt b/eval-final-projet/output/eval8.asynt new file mode 100644 index 0000000..3c3faf2 --- /dev/null +++ b/eval-final-projet/output/eval8.asynt @@ -0,0 +1,34 @@ + + + + procedure + + $a + + + + + $a + + + + + + + main + + + + procedure + + 10 + + + + + + + + + + diff --git a/eval-final-projet/output/eval8.lex b/eval-final-projet/output/eval8.lex new file mode 100644 index 0000000..631b37d --- /dev/null +++ b/eval-final-projet/output/eval8.lex @@ -0,0 +1,23 @@ +procedure id_fonction procedure +( symbole PARENTHESE_OUVRANTE +entier mot_clef entier +$a id_variable $a +) symbole PARENTHESE_FERMANTE +{ symbole ACCOLADE_OUVRANTE +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 +10 nombre 10 +) symbole PARENTHESE_FERMANTE +; symbole POINT_VIRGULE +} symbole ACCOLADE_FERMANTE + symbole FIN diff --git a/eval-final-projet/output/eval8.mips b/eval-final-projet/output/eval8.mips new file mode 100644 index 0000000..a04e648 --- /dev/null +++ b/eval-final-projet/output/eval8.mips @@ -0,0 +1,49 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +procedure : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +lw $t0, 4($fp) #variable argument $a +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +li $t0, 10 +subi $sp, $sp, 4 +sw $t0, 0($sp) +jal procedure +addi $sp, $sp, 4 #désalocation des arguments +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval8.synt b/eval-final-projet/output/eval8.synt new file mode 100644 index 0000000..ab621d9 --- /dev/null +++ b/eval-final-projet/output/eval8.synt @@ -0,0 +1,134 @@ + + + + + + procedure + + PARENTHESE_OUVRANTE + + + + entier + $a + + + + + + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + + $a + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + procedure + PARENTHESE_OUVRANTE + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval8.tab b/eval-final-projet/output/eval8.tab new file mode 100644 index 0000000..e831412 --- /dev/null +++ b/eval-final-projet/output/eval8.tab @@ -0,0 +1,12 @@ +------------------------------------------ +base = 1 +sommet = 2 +0 procedure GLOBALE FONCTION 0 1 +1 $a ARGUMENT ENTIER 0 -1 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 2 +0 procedure GLOBALE FONCTION 0 1 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/output/eval9-err.synt.xml b/eval-final-projet/output/eval9-err.synt.xml new file mode 100644 index 0000000..e69de29 diff --git a/eval-final-projet/output/eval9.asynt b/eval-final-projet/output/eval9.asynt new file mode 100644 index 0000000..7e82dc0 --- /dev/null +++ b/eval-final-projet/output/eval9.asynt @@ -0,0 +1,26 @@ + + + + procedure + + + 1 + + + + + + main + + + + procedure + + + + + + + + + diff --git a/eval-final-projet/output/eval9.lex b/eval-final-projet/output/eval9.lex new file mode 100644 index 0000000..95dbd62 --- /dev/null +++ b/eval-final-projet/output/eval9.lex @@ -0,0 +1,20 @@ +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 diff --git a/eval-final-projet/output/eval9.mips b/eval-final-projet/output/eval9.mips new file mode 100644 index 0000000..a661af0 --- /dev/null +++ b/eval-final-projet/output/eval9.mips @@ -0,0 +1,45 @@ +.data +.text +__start: +jal main +li $v0, 10 +syscall +procedure : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +li $t0, 1 +subi $sp, $sp, 4 +sw $t0, 0($sp) +lw $t0, 0($sp) +addi $sp, $sp, 4 +move $a0, $t0 +li $v0, 1 +syscall +li $a0, '\n' +li $v0, 11 +syscall +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra +main : +subi $sp, $sp, 4 +sw $fp, 0($sp) +move $fp, $sp +subi $sp, $sp, 4 +sw $ra, 0($sp) +subi $sp, $sp, 4 #Val Retour +jal procedure +addi $sp, $sp 0 # desallocation variables locales +lw $ra, 0($sp) +addi $sp, $sp, 4 +lw $fp, 0($sp) +addi $sp, $sp, 4 +addi $sp, $sp, 4 #ignore valeur de retour +jr $ra diff --git a/eval-final-projet/output/eval9.synt b/eval-final-projet/output/eval9.synt new file mode 100644 index 0000000..cf9f1f3 --- /dev/null +++ b/eval-final-projet/output/eval9.synt @@ -0,0 +1,93 @@ + + + + + + procedure + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + ecrire + PARENTHESE_OUVRANTE + + + + + + + + 1 + + + + + + + + + + + + + + + + + + PARENTHESE_FERMANTE + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + main + + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + + + + ACCOLADE_OUVRANTE + + + + + procedure + PARENTHESE_OUVRANTE + + + PARENTHESE_FERMANTE + + POINT_VIRGULE + + + + + + ACCOLADE_FERMANTE + + + + + + + diff --git a/eval-final-projet/output/eval9.tab b/eval-final-projet/output/eval9.tab new file mode 100644 index 0000000..a780954 --- /dev/null +++ b/eval-final-projet/output/eval9.tab @@ -0,0 +1,11 @@ +------------------------------------------ +base = 1 +sommet = 1 +0 procedure GLOBALE FONCTION 0 0 +------------------------------------------ +------------------------------------------ +base = 2 +sommet = 2 +0 procedure GLOBALE FONCTION 0 0 +1 main GLOBALE FONCTION 0 0 +------------------------------------------ diff --git a/eval-final-projet/testAll.sh b/eval-final-projet/testAll.sh index 379fe18..b811c47 100755 --- a/eval-final-projet/testAll.sh +++ b/eval-final-projet/testAll.sh @@ -30,13 +30,13 @@ # 1) MODIFIEZ LA VARIABLE CI-DESSOUS AVEC LE CHEMIN VERS VOTRE COMPILATEUR -MYCOMPILO="../../TP/src/compilo" +MYCOMPILO="../compilateur-l" # 2) DÉCOMMENTEZ + MODIFIEZ LES COMMANDES POUR GÉNÉRER LES DIFFÉRENTES SORTIES MYCOMPILODEFAULT="${MYCOMPILO}" # utilisé pour test reconnaissance et erreur -#MYCOMPILOLEX="${MYCOMPILO} -l" # exécuter l'analyseur lexical -#MYCOMPILOSYNT="${MYCOMPILO} -s" # exécuter l'analyseur syntaxique +MYCOMPILOLEX="${MYCOMPILO} -l" # exécuter l'analyseur lexical +MYCOMPILOSYNT="${MYCOMPILO} -s" # exécuter l'analyseur syntaxique MYCOMPILOASYNT="${MYCOMPILO} -a" # afficher l'arbre abstrait MYCOMPILOTAB="${MYCOMPILO} -t" # afficher les tables des symboles MYCOMPILOMIPS="${MYCOMPILO} -m" # générer code MIPS diff --git a/src/parcours.c b/src/parcours.c index cd5ebfa..20826fc 100644 --- a/src/parcours.c +++ b/src/parcours.c @@ -499,7 +499,7 @@ void parcours_opExp(n_exp *n) parcours_exp(n->u.opExp_.op1); sprintf(tmp, "$t%d", iRegistre2); depile(tmp); - sprintf(tmp,"beq $zero, $t%d, %s",iRegistre2,faux1); + sprintf(tmp,"beq $zero, $t%d, %s",iRegistre2, faux1); printMips(tmp); sprintf(tmp,"j %s",vrai); printMips(tmp); @@ -507,19 +507,19 @@ void parcours_opExp(n_exp *n) printMips(tmp); parcours_exp(n->u.opExp_.op2); - sprintf(tmp, "$t%d", iRegistre2); + sprintf(tmp, "$t%d", iRegistre3); depile(tmp); - sprintf(tmp,"beq $zero $t%d %s",iRegistre2,faux2); - sprintf(tmp, "%s :", vrai); - printMips(tmp); - sprintf(tmp,"li $t%d 1",iRegistre); + + sprintf(tmp,"or $t%d, $t%d, $t%d",iRegistre, iRegistre2, iRegistre3); printMips(tmp); + sprintf(tmp,"j %s",empile); printMips(tmp); - sprintf(tmp,"%s :",faux2); + sprintf(tmp, "%s :", vrai); printMips(tmp); - sprintf(tmp,"li $t%d 0",iRegistre); + sprintf(tmp,"move $t%d $t%d",iRegistre, iRegistre2); printMips(tmp); + sprintf(tmp,"%s : ", empile); printMips(tmp); } else if(n->u.opExp_.op == et) { @@ -531,8 +531,8 @@ void parcours_opExp(n_exp *n) parcours_exp(n->u.opExp_.op1); sprintf(tmp, "$t%d", iRegistre2); depile(tmp); - sprintf(tmp,"li $t%d, 1",iRegistre); - printMips(tmp); + //sprintf(tmp,"li $t%d, 1",iRegistre); + //printMips(tmp); sprintf(tmp,"beq $zero, $t%d, %s",iRegistre2,faux); printMips(tmp); @@ -542,6 +542,11 @@ void parcours_opExp(n_exp *n) sprintf(tmp,"beq $zero, $t%d, %s",iRegistre3,faux); printMips(tmp); + //-- + sprintf(tmp,"and $t%d, $t%d, $t%d",iRegistre, iRegistre2, iRegistre3); + printMips(tmp); + //-- + sprintf(tmp,"j %s", empile); printMips(tmp);