From 7fc7eb773f26336625ce446cceede11cea167d55 Mon Sep 17 00:00:00 2001 From: Vu Tuan Minh Date: Tue, 29 Apr 2025 14:05:51 +0200 Subject: [PATCH] tesst bugged --- src/main/java/TP2/Main.java | 4 ++-- src/main/java/TP2/asd/SymTable.java | 23 ++++++++++++++-------- src/main/java/TP2/asd/toLLVM_Visitor.java | 20 +++++++++++-------- tests/fragment0/add0 | Bin 0 -> 15848 bytes tests/fragment0/add1 | Bin 0 -> 15848 bytes tests/fragment0/const0 | Bin 0 -> 15848 bytes tests/fragment0/const1 | Bin 0 -> 15848 bytes tests/fragment0/div0 | Bin 0 -> 15848 bytes tests/fragment0/div1 | Bin 0 -> 15848 bytes tests/fragment0/mod | Bin 0 -> 15848 bytes tests/fragment0/mult1 | Bin 0 -> 15848 bytes tests/fragment0/mult2 | Bin 0 -> 15848 bytes tests/fragment0/paren | Bin 0 -> 15848 bytes tests/fragment0/priority1 | Bin 0 -> 15848 bytes tests/fragment0/priority2 | Bin 0 -> 15848 bytes tests/fragment0/sub0 | Bin 0 -> 15848 bytes tests/fragment0/sub1 | Bin 0 -> 15848 bytes tests/fragment1/assign1 | Bin 0 -> 15848 bytes tests/fragment1/assign2 | Bin 0 -> 15848 bytes tests/fragment1/block | Bin 0 -> 15848 bytes tests/fragment1/decl | Bin 0 -> 15848 bytes tests/fragment2/proto1 | Bin 0 -> 15848 bytes 22 files changed, 29 insertions(+), 18 deletions(-) create mode 100755 tests/fragment0/add0 create mode 100755 tests/fragment0/add1 create mode 100755 tests/fragment0/const0 create mode 100755 tests/fragment0/const1 create mode 100755 tests/fragment0/div0 create mode 100755 tests/fragment0/div1 create mode 100755 tests/fragment0/mod create mode 100755 tests/fragment0/mult1 create mode 100755 tests/fragment0/mult2 create mode 100755 tests/fragment0/paren create mode 100755 tests/fragment0/priority1 create mode 100755 tests/fragment0/priority2 create mode 100755 tests/fragment0/sub0 create mode 100755 tests/fragment0/sub1 create mode 100755 tests/fragment1/assign1 create mode 100755 tests/fragment1/assign2 create mode 100755 tests/fragment1/block create mode 100755 tests/fragment1/decl create mode 100755 tests/fragment2/proto1 diff --git a/src/main/java/TP2/Main.java b/src/main/java/TP2/Main.java index f8263fe..fe77088 100644 --- a/src/main/java/TP2/Main.java +++ b/src/main/java/TP2/Main.java @@ -56,12 +56,12 @@ public class Main { //System.err.println("todo " + ast); //System.out.println("\n\n PRETTYPRINTER VSL : \n--------------\n"); - System.out.println(ast.prettyprinter()); + //System.out.println(ast.prettyprinter()); //System.out.println("\n\n PRETTYPRINTER VSL : \n--------------\n"); // Verify the program semantic // Generate the intermediate representation - System.out.println("\n\n"); + //System.out.println("\n\n"); ProgramLLVMImp astLLVM = ast.toLLVM(); //System.out.println("\n\n PRETTYPRINTER LLVM : \n--------------\n"); diff --git a/src/main/java/TP2/asd/SymTable.java b/src/main/java/TP2/asd/SymTable.java index 34f774f..2dd98c0 100644 --- a/src/main/java/TP2/asd/SymTable.java +++ b/src/main/java/TP2/asd/SymTable.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import org.pcollections.*; import TP2.asd.Interface.Type; import TP2.asd.Program.Type_intImp; +import TP2.llvm.Interface.TypeLLVM; import TP2.llvm.ProgramLLVM.DeclarGlobalLLVMImp; import TP2.llvm.ProgramLLVM.DefineLLVMImp; @@ -14,7 +15,8 @@ public class SymTable { private PMap functionsMap; private int[] id ; //id partagé entre toute les symTable, [0] : idVar, [1] : idLabel, [2] : idGlobalVar private ArrayList declarationsGlobal; //aussi partagé entre toute les symTable (.fmt pour les print et scan) - + private TypeLLVM currentFuncType; + public SymTable(){ this.id = new int[3]; this.varMap= ConsPStack.singleton(HashTreePMap.empty()); @@ -24,11 +26,13 @@ public class SymTable { this.id[1] = 1; //idLaber this.id[2] = 1; //idGlobalVar } - public SymTable(PStack> varMap, PMap functionsMap, int[] id,ArrayList declarationsGlobal){ + public SymTable(PStack> varMap, PMap functionsMap, + int[] id,ArrayList declarationsGlobal,TypeLLVM type){ this.varMap= varMap; this.id = id; this.functionsMap = functionsMap; this.declarationsGlobal = declarationsGlobal; + this.currentFuncType=type; } public static class ValueFunMap{ @@ -42,12 +46,12 @@ public class SymTable { } public SymTable newBlock() { - return new SymTable(varMap.plus(HashTreePMap.empty()), functionsMap, id,declarationsGlobal); + return new SymTable(varMap.plus(HashTreePMap.empty()), functionsMap, id,declarationsGlobal,currentFuncType); } public SymTable outBlock() { if (varMap.size() > 1) { - return new SymTable(varMap.minus(0), functionsMap, id,declarationsGlobal); + return new SymTable(varMap.minus(0), functionsMap, id,declarationsGlobal,currentFuncType); } else { return this; } @@ -84,10 +88,10 @@ public class SymTable { } - public SymTable addFunction(DefineLLVMImp function, Boolean isProto){ + public SymTable addFunction(DefineLLVMImp function, Boolean isProto,TypeLLVM type){ ValueFunMap value = this.functionsMap.get(function.name()); if(value == null || (value!=null && value.isProto && !isProto)){ - return new SymTable(this.varMap, this.functionsMap.plus(function.name(),new ValueFunMap(function,isProto)), this.id,this.declarationsGlobal); + return new SymTable(this.varMap, this.functionsMap.plus(function.name(),new ValueFunMap(function,isProto)), this.id,this.declarationsGlobal,type); } else{ if(value.isProto) System.err.println("[VSL compile error] : Le prototype "+function.name()+" existe déjà"); @@ -101,6 +105,9 @@ public class SymTable { return this.functionsMap.get(name); } + public TypeLLVM getFuncType(){ + return this.currentFuncType; + } public int getId(){ return this.id[0]; } @@ -151,7 +158,7 @@ public class SymTable { String realName = nomVar + id[0]; top = top.plus(nomVar, new ValueVarMap(new Type_intImp(), id[0], false)); id[0]++; - SymTable newSym = new SymTable(varMap.minus(0).plus(0, top), functionsMap, id,this.declarationsGlobal); + SymTable newSym = new SymTable(varMap.minus(0).plus(0, top), functionsMap, id,this.declarationsGlobal,currentFuncType); return new Result(newSym, realName); } @@ -210,7 +217,7 @@ public class SymTable { } top = top.plus(nomVar, new ValueVarMap(type, id[0], isParam)); if(!isParam) this.id[0]++; - return new SymTable(varMap.minus(0).plus(0, top), functionsMap, id, this.declarationsGlobal); + return new SymTable(varMap.minus(0).plus(0, top), functionsMap, id, this.declarationsGlobal,currentFuncType); } public String print_all(){ diff --git a/src/main/java/TP2/asd/toLLVM_Visitor.java b/src/main/java/TP2/asd/toLLVM_Visitor.java index 0ce01c4..9f6a0c3 100644 --- a/src/main/java/TP2/asd/toLLVM_Visitor.java +++ b/src/main/java/TP2/asd/toLLVM_Visitor.java @@ -49,7 +49,8 @@ public class toLLVM_Visitor implements ProgramVisitor, for(int i = 0; i, @Override public ArrayList visitIfThen(IfThenImp instr, SymTable h) { ArrayList l = new ArrayList<>(); - String labelIf= "if"+h.getNewIdLabel()+":"; - String labelThen= "then"+h.getNewIdLabel()+":"; - String labelFin= "fin"+h.getNewIdLabel(); + String labelIf= "if"+h.getNewIdLabel(); + String labelThen= "then"+h.getNewIdLabel(); + String labelFin= "fi"+h.getNewIdLabel(); l.add(new LabelLLVMImp(labelIf)); InstrAndVal temp = instr.e().accept(this,h); @@ -272,16 +273,19 @@ public class toLLVM_Visitor implements ProgramVisitor, h=h.outBlock(); l.add(new LabelLLVMImp(labelFin)); + if (h.getFuncType() instanceof IntLLVMImp) { + l.add(new ReturnLLVMImp(new IntLLVMImp(), new ValLLVMImp(new IntLLVMImp(), 0))); + } return l; } @Override public ArrayList visitIfThenElse(IfThenElseImp instr, SymTable h) { ArrayList l = new ArrayList<>(); - String labelIf= "if"+h.getNewIdLabel()+":"; - String labelThen= "then"+h.getNewIdLabel()+":"; - String labelElse= "else"+h.getNewIdLabel()+":"; - String labelFin= "fin"+h.getNewIdLabel(); + String labelIf= "if"+h.getNewIdLabel(); + String labelThen= "then"+h.getNewIdLabel(); + String labelElse= "else"+h.getNewIdLabel(); + String labelFin= "fi"+h.getNewIdLabel(); l.add(new LabelLLVMImp(labelIf)); InstrAndVal temp = instr.e().accept(this,h); diff --git a/tests/fragment0/add0 b/tests/fragment0/add0 new file mode 100755 index 0000000000000000000000000000000000000000..9dfdd7040ff82db11ab8d7ff3405b0f80477cd5d GIT binary patch literal 15848 zcmeHOZEPGz8J@c&^@S$!#WccAO0t3!C5^p4e-cQYoIkU!oTPOe5d?I#_O9)d?!(;e zwRTm~AcII$MGgD_A%PTx1fr@`g!&^wLUP(F3Kc>PzsetE0hK}p)KMw4eB^lF-S;`K zS7!wk3Grjbx_xGz_kCt&-<{i=_0BvqGCrD2BoxvnbyRUFn+}<*80PvULy%R6)pk1W zRUcLNP4JEQ{ceEEJR$9E zbR87pFDT(v9r@f;Ur$HgZO`Y5)rIzj!+q_2J!Yk3b_Gpyzqkz^Q^!x9QOWaanK|e= ze;<7~tZe`Op_jM*?&Y?J`rm!#_T?`Pe64Bc&=aVGHSEKQ{m~^ZbDrB^pYZ&@OgS0L zgg3ok76M{}1M6BE*oKHR8u0c8d~pN*!^D5AK|RX0DT32>#dpfSU2t+mVx|`ydnQ+O z^0}ux#b%CYpE^E1HaKK=nO$aYJ>T7*<8i<%9AIC@};6T=}hH4s%y4T zDoX8k=-SYcBbW&O!U3M3GWQqbqq;k{m7~t%jk%Y;{!I#VlJ0Plc&B;q->s!TrmSbTTSBH8pT;iUeB8SDTWjg}tB+2ObS`)P+`80%lYDBsK1c3kyg5;kI{ClSu4&JdYu3Fdre9XG`-X<$?-MV?l zzmF=|E)}F|D>KdehS&7mzw`YMl37&`ow1hs-{J>r>*AaKHtX5`dx*bvuvV+xa_Mk= z%fHB&_yVJu(aI7(W%F-9xWnu(h<-R&=JrP&=JrP&=JrP&=JrP z&=JrP&=L4Qi~zq6OYGTna6m+6HT^Zc%U_3c{i6YMbD6uc4JPuU*&TqQmrcBDslv_8^&?~|$X>e%ih z4|VSkULUfa+r2`5c-Kb7;GLXLc!BysFY0vC5zrCP5zrCP5zrCP5zrCP5zrCP5zrC% zfDyoYMyy}N+C;4B+=hB(edBg1KP>AY?}uI1L++6>p5b<*EOvfIcWNarUy((Q zSi5+ZA4VyKYhIPQA@&c2w7MX8uVAa-Eib76>>rr} z*E>>PmHyG2;h_JB8$G55e=qS#wL{Iz_!Dp#NTAJ#T1L>S@YwyZC;9=W&-%)LR+P;D1P& zM*ZLDyj~3IX;Cj3s9_Bo)$_B!f0v41$LoP?r`l|+={fgn`Xtmx>f;{Pw<*(TJ@_^X zhykYvelp% zv)yW;ut<_f$tF*KovY)z88e?Jx6z4#6C?J>$zhw8-w%KG-dfePJ(LTLbwZn3hTE7*lwj{ z&pAbxw+oD&A}=>rw5t`*Rdn8Tu%{{&(aQb=+G2n+;=KnAHx#Vj#Zd1y?_CJOMLT{f ziv{1ABJ|54&LNj8(nf}PWfn`mXU-O@=6ty{@0I<<2sKsB(XNx6E7ZW?SUZn~zd(0(MJbeq!yr^3PxU&5+%z>>^0{W}5?>sX0;^0Khy@y7(ZT;;kmi(14?0 zT>ly3|4MTS^dIvjAlk=#Dc*mF^gLIB9`h;SWoeiD$Z>`q^Pn7Ye9F*ceg@><#c1L> zqUnoN;JFg?D{_KB%rnt{_yNz6p66aDWBvuqNMrH-qYsxT!%aeu`5$mu9MOLK{J%wZ zJ}21g_iwq6W8N#(1Z^SD_&54Q^@iwxQmji*27WiD&xiqt{-Oeufj@}pv!VyS51}C1 z1^q%ykKcD7o(td~AHP2leSPj>h^JuOA7$WAMUU%;`3|s6ssliW@{O22V}usq1vm;K zZlHffnH}_zul?HmkC&5Diun-*n=MPK1ZSUL~rPozKj0fH718r literal 0 HcmV?d00001 diff --git a/tests/fragment0/add1 b/tests/fragment0/add1 new file mode 100755 index 0000000000000000000000000000000000000000..b03d758546b86dbf5b5cf31c8d28adadedd2fc3c GIT binary patch literal 15848 zcmeHOZEPGz8J@euwc94~#WccAO0p^mO4@k+Z2}?5#a~$?Cuto=1VOV}`_}eJ_hIh# zs9lv1WRMb75rH2dq$0u}Di9I~iWDIsUDOhV3Za@`?H^ZeP(9go!guB&U}7kd^DLzD5Op5sNzyOrJ1xC<_07~kXDD(R{Gqn zKA`TS^5&4!_Ou4F>hxN2J+=tHiI8>eoN0iMXj%c$Lq^tZlvbLw1*qgaSQnb43?6t^ z8UTW?w`WOYkl>#^KWedbiFL>@uw&3Nm z&-jYX9M1uDVtj0H$nCLv?EZSbw@*3;v`xmGh~t*?h4e zwY%E2p(95y5&qKyJV9mdFUCh@XZC)MI*&KzUi`|}D9lN^!%33wAHFZvcFniM_!X(J zB`tQ5qg*|v3BHDWO^|Ly_~>n~iGYcKiGYcKiGYcK ziGYbfqX^t--TilG>8%#$xuzSPN;zMu2Fcp1&eF>*FNN;4{#S^u?fWHtw(dz&?t7G* zxr(}2-~ETN%gg7T%fEG&ez*F>`!y620bg!pd|<6LR_ zD#J(K4R%n|M>$VT-(Op4-E)y0UlJt$Z0O%V#c<%Rb9vRd@yBD%jdwRWiJQ*y-QXdr zV5?NnQd^m6-7~zV=l)$hvX9KF^7vV2>ByV>VC`IfBiQ0RcjP|eZy%`DYPU1=akJ@P zWK29oZP(jp{qLV9qx9!GKL{*Uo0qChOVtPTe~wf=j`he9X_AS6iGYcKiGYcKiGYcK ziGYcKiGYcKiGYc~|49V+eOO}Gro;QGKm0!Fk=0u5(}V{J`HB5wg!DMA4!%>XJx|E* zG&v=nnNW#^RASeb=9a7ULW_BRSHJppt@a^y7;X;Vi0!3pA05|;4~cE5(QWM?Z+-CT zmW%4x&cl!O?hRibvYy+$Mt*qLM#b=*TtIk<`muuvlS~9m1WW`>1WW`>1WW`>1WW`> z1WW`>1m05wu$~d?7qK=GYdW`}R$1S;RmzU6gM1ivSr55O%6Nv`iL%)F8Icq0f4*BQ za`~Dpa>UxjbNnz$Nw0ZT>Xz6a(6qWF_@H3BVEh?TWa_r8k8Bn{OBzBys>0J^&@iFC zf7EpUhzwotN_kcKM{kD1{v&Smm>QN>#QrxaqaRZJ{~WM>e4~c3PW8ml&_}KPXQwKK zpkj6R+P!vH$3P`4_FU-cv%C5Z2)$8Fn&)_IR`1l}UL4;9S)P@ESmMCzh#UFuCO)aQ zsd*WH;;t;=uf_OY;W3`!KSr5^dRV2>n!)wrRo4mn>jl>HYO7MuQij{b_X9kSyM&_N z%6JC<0%aQYf1~sIL0C_ldeK4+YuKospN0NARQx*L3}xHZW@}B)x!37PsQ1^$J*;n2 zrqO!vEff$7P7(ZY$kVqW9U&>ZpZJt&ug4SCPU72=tqS)C@crT+uV*le9csz_!M2=_B1>-9wxqxu47upN%*%ZGL^(1;{mD*;@>6rH{4H_ zi0A&q{l84S1#twwOFZtO5n8=Wd|Q(4TCs7f&P~W!I}LsOe&UKIaF1#_nqD!7K2yu2(8~i>_Y? zN{ecyQFPw);ZBvyqLuv#w8a2t#Cs1KZYWs4i=p0a z-n$Tni+22!7xRHPMHrMc&LNjA&_;%NWfzKpZ_gGg_I#;0@0Wtb2sKs7(yo(iMyTV1 zV;wviLiahZJg4l;Vu6~_7?iZ-vwo?ZEf&@lT(Xt?oW}xX^R-m=d@itOi~dzS;60>fa<8uX&k60~I)0ltzQoXDKU%euy=gwDq5cUy@D5p`dOT0v7Cr70r~o?PKVy287SAq? z=%=vt{-d0v#!3=+O@Rxv$aGOayb{UN=Gic%9K1=%a|S7j;cbg^qNLe}{OC oqd$lXKlh;TQT-);V4?I18q&qEuaXUcr=yMZ6aCsNbr1c&0XKz>aR2}S literal 0 HcmV?d00001 diff --git a/tests/fragment0/const0 b/tests/fragment0/const0 new file mode 100755 index 0000000000000000000000000000000000000000..1e5673034f0a2a6943bae90b949152ec3264772b GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/tests/fragment0/div1 b/tests/fragment0/div1 new file mode 100755 index 0000000000000000000000000000000000000000..b37ffbb3586d43dfa5c357aa76be458eea45c9a2 GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/tests/fragment0/mult1 b/tests/fragment0/mult1 new file mode 100755 index 0000000000000000000000000000000000000000..a5c3dba8be06e33a9352fab9b1fcaf6f7aee039e GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/tests/fragment0/priority1 b/tests/fragment0/priority1 new file mode 100755 index 0000000000000000000000000000000000000000..b3776d21d63d5c5d2c5d02690bef0f51a37506de GIT binary patch literal 15848 zcmeHOU2Ggz6~4Q65{D+)jcJ6Nlw<@cN@zUsU#!qJ$vXZUBReUHLsRiHn)QzD5&L6y zXNg@(2{K5Isz@n8RFyyqFCZa=0OcVZsyUCLJ;vG0gT$h9IL3tF83C zTfJXxq;hM(h4xGcWDV2ppUW1~!QIJy?o5|<7^=(xzbwCK{J1O7nz2}C?OCj2=p@r#{=S3xTxZ@ZR_8nC5BGQW_nDQF*%LI){o*!wOpTs6qmt)UjXCH! z{~&!htZaX`C+S@N$!{;;{^8>1zp!-qjg<5BX4JtN_Tj|-=n|JX&uy?zc>G_YoQ!3{ zTkfw40kO^(>)M;x28lD8@b)@#DAbkJ<7Hzf>UH8 z_l&F9%<=43qvK=82kjoS$2`=?_x34!Y;wZRxn+08tN3nta$+!FD!P+SHt$khGlf!7 zYPUnzrj8uJMDQ05@C22)zZf6Yo!(}SI*&KzuD6?jqqX5L&fa~&*KMaIl}XJ(Md-@M?gnFM?gnFM?gnF zM?goQSp?on?f$2=_@_4O`3=_(DrJ48<|pf~T8lqxyAin85B;3z`Xj%j@6?_Q<-SX~ z=}V}K_1%9SyKw8%)`j0&i+@;oa&ox4*8Pfg@yIRmsqgp%xxYParuKX}kP!b8G1kQm zUuF2nJN^!8`Y7kA>CN@!)SmO~cteo%xk4{f%SR^>g;n!m+*{>Vn+@9eMF>vwYW_40;) zlQHorYP-=s>;HI;jMATLJh}c%ZR29Cb+OiRLp9>ph#1**(h<-R&=JrP&=JrP&=JrP z&=JrP&=JrP&=L4QivYh5OYCZSd>{3T-zPo1Qm=oK@Bkq{u|GjbkJIYFoAvrP2>G2R zr^GX-RAN4z*tKO-+a-FT#XP^OU-?VD{vmc4+7!GI+e_I#`dlMEAhxAPwsm|o^}xBd z^Xk~n$3NV=H+X%>dT#d$`Qcp~6@zzjKH(DeBgKSHIs!TZIs!TZIs!TZIs!TZIs!TZ zIs!TZ_Z0!GXTq&vQL}W>?>Sq1US^dkuGi{qOh%d-*?LmYS=aWntj#3$7@ zH7Daw+?65xl^EYEJjOHp$0(Cf52SIhceCjzus|O4eDuER}Iv#ip}czY2d#@#n0m}0@-%eYOLxx_dEI|)cX|1J*;n2 zrrCP%?Gz9LP7!<};OT0}L`ceZ5}#Hbjd;S^M|^uSrEq@$|Csp4>lqE|hu128ocQg@ z4ux?E%M|m}vNA$OE;CgoK27JhBLmM6GsL&kdCbT-3H~=lrgP$t@c`AL_;<BmGo;Ih{ z>MD5KFW6JO4!%O3xspATFJ+y)o%2iOitSYA)l{i4mv?>};hXTG^yP`wVbIyaA!8wDC4{H z^vwf;oJv7ZO?Os?z-*4BD238+EQAW=sa~hxO;MvIpKGQr@yRhMu*#&-SfD``y#nqp z&+`hpbm*QOrVjc20AgMt=D-(u#t+hmfBT_7EP9|pwrIk<032_Bi|Wsc9=I2dg19e% z=HH*F9>0G;1CD}m{ZqvMjph>QKjuq7w2%2xy#EgAd9DOK=2O5+(k}Or;|x9KK^}2@ z$k1bc2ISwxXyQ7e>9bVexf1lta)3b0Gtqze0iPp1&%IE_{0rD6jm7(qK3t>>HwiuF zf54hJqW$>szesjICfFPIZ@G_S-YeAvZ6VM2clt#2hUkD&Y)DWBelw=;5(5zZMFl7W zza7(OL=TKl)X*;K`(9ixzmNEx$8!Pv7qHoMS4Dl3<`=bo}vFLIBFy8?lkm>-? zp?ou@?=nIQa0!lrh#TnNP-Yu_Z?^rH`qxRzV-I@F z1F=sO`$2j9b3(f~kKZDW#~<|Ak5)U#-b(EYq45np@GY`L^_W-Q5k2k`r~o?PyD`1W zh-X)b=%=ua{-d0v#!Z=+O@Rxv$Z*i3sMzy(FPM{ppPQPUeq-s6`SNA*kmz(VQQXecZOeU)qge7QB#KXoYdO5a2OA9do63jhEB literal 0 HcmV?d00001 diff --git a/tests/fragment0/priority2 b/tests/fragment0/priority2 new file mode 100755 index 0000000000000000000000000000000000000000..38cc9ebf0a6e77bdc124aeeb9186ede099ca6f3f GIT binary patch literal 15848 zcmeHOYit}>6~4Q6>Mc#LFl;1x}@lmq60oJ{RASO925Q=mUxCy zBO52p`&KHfJ1@F04v9aI+u(HebvJV-?L8*CX3eWch4Fw-D&Sn zoWGww99Fjf;^m*M?Z5Ar-)nh)H9q+LKQ2D^O#3kEU=90lVt;gr%be#n*vCKquTf6M zGU1Z_yPQXC^2NHg2DU-svgLMCPi@4EV)+EHFK7eCuVZaGN+up zm35x56`MJp{c3c4?8Kniqxa~C>iOP2WsXgpG&6S5o_0#EU7R>Mm@VY(2`inosjlf< zAuqL?zH38Aj$q9D^9Oj0%G_U!kMa)ZZjL&SH|DN=^E(vgINjkS$@PcpMceN4i4eam z6(&+*7dgt+<37RXkk1Ly%>W-f@3#WH-*aE_T7c*AgR~srdAvj^ia->BC<0Lgq6kD0 zh$0Y0Ac{bv2)xz0>wTm0w}f$N%Z-Cd8Q-Y7@!Bn;@^a!O&%Ji&*F@JI`YnC8?oLte zIm%64L0zox{`=VC(wB_IKO2?5tUfj|++FQ{)wq0giF|79pC|XXr}Wm{U-u-$KTV8r zdCRvLKJ~8KPE8-tRpoKZRY20vIEi?6#|jY~)GB7S9GtyWvf(AO(l z{!7N#7pd)f`>g-#1u{y1uJh#jMV^sA{my%fw<^`YKz||J-Aw{eSz=*AwRJ{N=T2>>cE?|+7Af%ohGN)6K7OxE*aaowIy+d zUT87T@9J0oS*v}L9fn%GH)4Az+ee@4#CycH;Z4!HZ$D*a9pnSB%X-M2QpPjf4wS{t&xo90|JPcrz~!s5$PsH7&-245 zC4bGUQa8o^5ua8Ig7*k^2(}9XM5b0`ePoLmG-(L^s0vSuLA`|f{!{b&N2KSvCgoM> zAH5m&`j5ELW2#qP7W;crMn9zb4;`?6e6xnJPIYu}@QAkeT)Lch%UXA@-m7~pdRN~*p*O3^=Q$qD>dji%i{l$3%aaliO&oX~aU=g-#K+Y(H7ny!+?6K$)ezq+ zJjOHp$0!q152$3yXK=oF)pd;idx7=5zE!CwDZ}mJ`T)=4E~corGM>Tzm@ZA2>59`~MX|x`EI|W38Qve_J zc)A)=0g|$v#3xlpJ)W@k5#JVXRk%NZKO+9&dPcqa;kAyRC4PInLt$LPGRZu(tTdmI z%S;uCPty7ANWs&`6!C3z9#b+-y#Gy+>4NxUJU~?u|1P<|;eSpG#B+bb{@*5EgE)Xc zB_8+C0IgmnzAa97t!`S&%oGe^2#`Qvs|(>iVmK>%yg+FTG^yP`wVbIyaA!%u7ZtQ8S35U4Gdn)XxmR| zKId9#LbvGS402AMb~DT>JzsEbeL7#(XN!edyXejbsC3z(ttU=KsDTq>ojfEw_Zh1+ zqx8&to|^E{E&7(P*u|1l$Zsf^WGmWPiv>#O6RPyttgBBKDC635^vwf;oC;o0b$dpJ zz)XguDEU%`!yaMhl&+`hpbm*S!rw;l3 z0AgMtX3rOS#!t|PfBT_7EP9|uwqU}%032_B3+m5{9=HdNg19e%=HH*79>0G;4UU3g z{o};{o8}VeKjuq7w2%2xxc?UEd9DOK=2O5c(k}Or;|x9KK@M?z$k1bc2ISwxVB$K0 z>C05$xf1lta)3b0Gtqze0iPm0&%IE_{0rD6jfMMV^{xGEP5(5zZMFl7WpAG3#q6h8|oiMbE z`hF79HyH8d^4o)(tHbW0gi%* z8|Xh!W*dFvvR|M7@p4j1VSki?JRfVN5A>LCCjL+T8>Hp22R-J2*e8nppgjILpHQ`ma{QI1pN zTo?L}d00~PXb1k>*I;TPf;n-oo1lNV&iEPVgNU&gbWKTxhIEX7hj@&mKZpxI_n_}V f{Q^I*Q2IR@@{3+yCF=oCM;qxMKjeEQZ=?So+N+{- literal 0 HcmV?d00001 diff --git a/tests/fragment0/sub0 b/tests/fragment0/sub0 new file mode 100755 index 0000000000000000000000000000000000000000..a71c29dc900509120add660f41946d08dc44b2f7 GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/tests/fragment1/assign1 b/tests/fragment1/assign1 new file mode 100755 index 0000000000000000000000000000000000000000..2c0cb1c8fe28b611f69d38ef4a7784ed168d3ca8 GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/tests/fragment1/assign2 b/tests/fragment1/assign2 new file mode 100755 index 0000000000000000000000000000000000000000..2ba9eb3614542ee6c9cf2f52e944c7dd5069ab99 GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/tests/fragment1/decl b/tests/fragment1/decl new file mode 100755 index 0000000000000000000000000000000000000000..60670d4f68ca0543e69eca986a394e194da1ae7a GIT binary patch literal 15848 zcmeHOZD<_F8J;`a@g=dXvl>&yPVFVJi``hOZ$+(Z`}FBmknKd4sY{zIE8R*uxDWMi zuaQD<9n^wNFm+OB2qfVCX=y36g#0jtf=p85hEU?tAL*YWN&{|a8-=uKnzX*Y@6P+2 zR?7+Z14@6)h}&o8dEaMd_T9O?S?$c%hQ~&diG)JhppGamWzw3-h+(!@G6Wgbr?%2@ zxB8U2gUTC2PTMmY$g0y@$+eggegh%vS~$}H@6)sbqKAyETQ4nd(iWhS^I%w01R|as6aMr`JmYAQ zjgu7~m5S@mh%Syp;t%9DIGuVs$o?noJtDe|R#=US<3UX;AliGBbYVQjemlTr9+&pk zyABHR7nJa-wtQ}~x4SK$ZO!M3)%n)>zTVc}Zo5*lJHw{AU)%Pg#2oaT zzlS~?R<`#)@Z4Sd9{czW?_%pm^Dq4DSA7pX{VmkN8usDD{^$~yInQmdk3RpWDJNr@ z@P_}3LP)H0U|n+q+aPgP1KwSSFRsIXg82Iz)T3ONA~@w%0YIf{E}?5AXz)xxW}6)t$LJIqE##n0w{fZ&R3)bcd59-#>g`tnHdl#rS2Z zFqILz$WdN8stLY^d`*z9NBHP1}Co@>Qh5uV2n(sG37@nVvRfQf*KfQf*KfQf*K zfQf*KK%)q}-?aN9XYmgy=b24c+mv#?u@oe0Z#s*wrCtr)Ydx%KDE9-( zO=;O&{SrHGOAoxoOWic6?Qk{Bxmy&m_ZvTh4_Q=jxx1I#)m3;3Td&H*N*@ zPz771f>dpJx@phQs-F9I?(jY`tLlTNoyEiN@PoB;;q73H^UUEph`)KDR;%62(&5^s ze~>Zp7`0t*pY^|gf{fCiD?CZ3(A48rj}-AHnFyE&mvT0kOn^*AX}J-%Wf{ZBuhH{={8b z!e5T@UBY8L!+(@A33abZXEcNB#jCCp^xq4t=harFo}vu5i|+?`9(M^vy_N9{{(F>Z z)c^I)>qlWd&FU2kHLPNzdVU)E?@;mUcrBD|R~xNWJ?DN+pM?5kecZ$PE@c|62j4;g zvEUTJheDpd4Vef@+5N<)RZBgdu(lE3oNQ9KKY;HM|9CwEVg2x0#Yc(Xo@`MVm#{p} zJhiMW&B)hG6^KvM^=-+(Q{y4xo9Q}cWSoTmn<7(L{4pM&IxGI|a(~19XOVdBPu%~T z#9I(Y@cYE$9vY$5Ys5Dv>8=$Ux9ZeXIq0xUw6fis%(;O#qll;k)#+(_O0BMfcY}gE z#p~cJb#mN73T7O;Aidj#vZ%^Kj(VovbW&+#h|>PrpsQz zceB+(VSyx(l1rY!8rQ5pmACVGavK@%KR)aZpBQp!`TfurPxK!j9VD9eF}TBySe>D9 z;lOn!5AcIW+w_Et{XT88v;Ym;}T+q7!sIYcRfSaw9 z+*z-fnn)A!SLWG*E=4jVRE-O_3z-TLvhR}W1 ztIR4pyHKPiGzMjD`Kn*8S3T2$Wy&uAvZ;hmIAJsy2Ka9robwj24aE6S9I|I7kQpn&{v1<$vU;j z?*|a`3NeSi$TL1bAO7u!zEAW(i)_(^c>y@y{ub4r5j}7(90hS-0?ofaQ9XYDfEFAD zRH(;)wR+=l?v} z`J7;{-@oNPj(M+C6Sjps<6r3$)mx$iO0h0M8Te96-!29q`ilxs27WiD&xjuQ0fd5R z7xWKfdi=fv@mv7^`1pNU^!2%iC7yzDf0Thg5k0OS<~zWHQXK#~l&{D1?UuFx&%;p= zaRdEJ%50;LeC=1~f4rQOQrsV9;BUyMi9XO{zM1+L_3x0D#~$>U2V$Qn_Ji{H=Y)1~ z9lt{yk3Z!Z=+O@Rxv$Z*nF!{@y>5d3!8)Te&_@wtFY20+3LWVf{|@mOM}H6(e(piv gqx$pwz(VPDG^C4RUnLs?Pe&W+$9uF_`ZoH10{Vo8&j0`b literal 0 HcmV?d00001 diff --git a/tests/fragment2/proto1 b/tests/fragment2/proto1 new file mode 100755 index 0000000000000000000000000000000000000000..974577ec12baf7f4ecf121c96f72694268595474 GIT binary patch literal 15848 zcmeHOTWlOx89uv7nk`N2jcHUjDeo_*b6o(^gF)MLt7le+BtjmfnD>~p0q@O^Sgx^Xfb>~Ev#9{FVavPk^yy+J{NP7>9Zle)aqmpxcCyuA)zS%?2H@%J~WN7*(-aMG^%PSv-|PO(DFum?Q{i7Uz*AJ_{$hO8cNFjBsPlMZ?!~9RMPW|U9Zr&5f4E+ZZ4sYI z@XJzRCMR~0qr7x9BKREgIYGJ}gF7t-Jndo&RITdUDg1gGyOXEcxl+b?f|3Ggm|R;Ly*B4jy=wzFRwT zl>08_rY@l_)_4DD?81#NS{Hs}o&W91!xJOjOWi-SE)LuvpJ4mv$o;QVW^2bcLJ9HD z5My23^fbeR@A%uP=_8z{rtb`vTRRrm@v0#C7eoI;d4|2WtqUvGl|LV~uDr9sN?o&V z-1hIL3bslGnP7RUwPScy&;45%c!12RzW=Ose&8*Bu(mF|>2I-~9Jqt{n|p&GxLKgD zYn%Q<#?%+6?MC~o|NSFml>T%tT~&>kHKN2l)=5V|M?gnFM?gnFM?gnFM?gnFM?gnF zM?gp5|2G2sJ}k9!!$W(hi~K(6zLg;OJmCRCeq#S5Aw5p31Gj?USweoN$tm^dX_cDG zrgm=GoVi3Vw3z32^(%h~f{(Go@aFK1*lx=9(dQ-NL!u=++S2~1*1I0bEU2S99@^Kt zJA8e}dT#eJ`Qcp~6~lLOKH(zuBmN$YZ93@)=m_Wt=m_Wt=m_Wt=m_Wt=m_Wt=m@<3 z2w*)U)-PghBGzF{e<-5WqTpSE?Sk6{0eEJ-DeEIQi@}hF(2phIX)$P+P~X3TsDDI; zuD7MUBK@N`!(smsH+oDB%gbVaSIX#zRR2E*tRG*mVXRXZ|zg;EIHz*^_=@9eNyTkg>et-Ey^@o58grn zG2j%#2Sc8&hFpxK>^|bNs=X0USi6aDOSdZAAHaWH{FC(zhxNm270(dAE#0m#E@Al+ z^VG63B1SGV z;thyn_&wrr4~^048u4vux@#rItvWMV^}9`vR<=9&qU}4=iinzDpPDi!)#@sE+b`Rb zybiubo(0dIE_r#UWEXs|TC<({oSO8?vnAJe3uaey4_<*^w4G|znYZ1FU!7M|Rj2IQ zg?hO>Pm);4CQpBj>ulBYy>7EqBFE9wgC|Dpk(0wVEx;fC?8(6sV?#vKP6m6#600?Q zTG_|PPaPW^w@;0Zo*9|2CkBs=kB}m{KOl!~0PnT*-z_-4qr$_WTDTDH1E9j%O#ybH z=Gik&rNA2o#!it}p;)o&HMgMX$mz?@*J`4b9SXF`07t~T51MW%Si6s*(QV$n5C)9) z{M6>lzLO{Ps}as1SFF%hhFN7+Jl{2^D|M41I_p;b`52Y27ir%~u^`mov9V4b525>v zQ=3s{VZK65MCex|%U9fLt>{(O6l}6p-IBusW%Ain=4{C~r#;H}?i_vdXdovq465nQ z$oZcskQAjz8V!U>%A34s@V;)o_jt?1n%+G*}WQ!-R zBc8rY1)eKGzbpp`#5@!Ihad29((~L4Wz4^TUD8;x|LDU-%5am=WBvzR5=XS3JpON! zosS9j#{FCFcn zyP&_H(Bt-?p?p1|?=m6_a1oAz zh#Tl%P^N`Ga@nuW|9CkmrKCT~z+aP3D}A8Hd^7Vt^>2}u#~$>U2V$Qn_Ji{H=Y)1~ z9=}5zk3Zgkg2p%WKpr1)J?51+MUVRgDu537?}T3E#Iq|x^i$YI|4~j; z<6IZ|k9k;D^k@hE+}C*8Oayb{-Y`MGzrjQq=;Mg77kAA`g_d-Te}{OCqd$lXKlh;T das6U%RC*N+i7`>6Id60Q#Gy!#O$ZW2^