From 45464654c6ebad2d532c07b2b529f80609ba9a68 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 3 Aug 2020 23:21:12 +0200 Subject: [PATCH] [refactoring] store halt_compiler tokens --- internal/php5/php5.go | Bin 331289 -> 330857 bytes internal/php5/php5.y | 14 ++---- internal/php7/php7.go | Bin 272612 -> 272180 bytes internal/php7/php7.y | 12 ++--- pkg/printer/printer.go | 12 +---- pkg/token/position.go | 1 - pkg/token/position_string.go | 93 +++++++++++++++++------------------ 7 files changed, 54 insertions(+), 78 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 6feebfc24f3054c5afd92070bc093593e3cf6bd6..397fb9de03ab0b5bc305150efa6fa4373bd2fcb1 100644 GIT binary patch delta 9466 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 delta 9451 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 delta 6665 zcmcIpd0f@iw*RcP4>CxIi5McDgK3#s95{zbO>qLu5>wHf(bUBGl8QNFlawV+tOg}) zu(Vr}N&A-1(#)<+YTmM*nUbcd4dV56)BC9Ickkah2kZ0xeSe+bp4R+bYwdk@9Ekn) z)7YAuTdNGO?|yGJ#wfowTR9iKYdQ0SukZxLEv5|lW;pe9X8ziPK4iJrk>e|CC`vYVqj)(K$JfZhT^y;G?V|+JU-c#z z$;D-4_C(6=0Te4eGt?+u-Jh~ZHua-^P5j=d$jF6KG=O@@pf@>Icg>{{OzGktK-m%- z&+W{)7P9^>YO6i{=~v=Rug2mHDnwaN97sKx{JPiEJen#8Q@+l5n#Yj5Fog2hmukfJ z=`o{;lr$SfZ6#+oJ;Ui~8uR%s$_%aVQH zbQ0y0U&;!(rPNJSXQW^<<;&`KX}&bOhjKyqsVu+LJy=t{^Do)rcK zCG51mV;22`rDTgLmhuuXfS265zJwIXvO*BILSL8@)MB2zIv3wQJ?bWUgruw#gA5~N zJ1OW)eZ@N;6X|loPxnaOd?=XhmDH1tkcG1LzN=&|l)eiv^pwyv`FR2Lqcr)n1c4P> zMz_o6g)nJ`B$rUJ3|nN)3o?mPG>}}nO*Xmd{~?rzO7#-3N|)vLE&&*eTRUwl0J0o62aqj4s31_8(}fL@$TJndwrsf|6wKN@}OqE~jdP zh16O^ZA{Dp-Sa=qOHWTOFWaWvhpTrE5%R zU*km5=3SJ}{&b;Y)lH7&V8i86+((zbO|4xa7)+4Jy@>mzg~(JkQtx<=`b)Qc$Rg?R z%0J&jG-d}gPoy5Xk9xC=-cPLzqY2V-e=vLl=p69@jyHlT`a|juv?L#UH~Z2;)HW7L;q$uZc##EY(ZlJiK~9f#>M z)BeOqDjw!UeegJa$<xi$(|?ev*D?dHpm%xaB*LoPHXdvLxa(CF#SbX$MK>S-Re= zt)gt5eU?s>95_$yBtWa|a zDeulCu+m`y0$GvJhs+2u5-8@_E%%Px_7iZh)k3A%2m;=bI+nT|C<< zTq^2SEA4f04YNO0us%lj4Cn8dvhFuYI+R!rwqL`hS#vl_NMB% z=J*nC47_x-1?O>^Pf}wLBE#a~9iIchx8k@p!2l4eNTBHi7b>q_%_z4{?H55s=_bute$;KXm1p4fpOGr&X6>?Ad%93dVLM{Dm*%#0vD zmdxNbl%ne+9L}dy=u~nZ!VS;gjR9vBJHS+s%q}~G9!s>ii0mz}0Z{uI3Y7m5Q zfM!laNY!BUEWaL8;X3I~9_w@~5+oR*vAh8t$JG@*v(QS1ihiG5Ddb$Z$JV%tavmUC zhp{c_4f4})qg+K$h*$4IKsg4snez8hT%v17@UKL^%3{^sOlnM?VR>zwllcO?0^T5qI-#iqpLoHPWnv!}R>g`~q>R&q)<< zdy8PI3e(G{aCMlRoEa4P$(hh4D9jl-J_~whG!`jAoru#TXLBXV;BCtGcp6NOlfZd_dXmrI-yi4L5O|RKKD++qOXe ztCR`G3N#dL*mdy%>|+*h_%7%~0Qd>t3dsMVYsljXIoGOBXqj9C+9&nWJt z>sRwan0p;;2%zW5{!3_xT#)h4Wx`r(JAmY! z2CA7Roh6z=gqdHSLKF=4A$k7J2Jjdlx2ZhLQM%O;;M(}nmTn_fn=kphkXRj$@)=Y4ED_%^Ge8?^ z1nPO5PaBTFf+K=pCQKL98MzR6ZVfTc6Y`dkNss)NkB|v3j~;Z!WEMo0TZf(HFAVvz zi)gw3_Z+V`dBEh`)gtnhZR^OTdJny!)5zK_^ z`s+c`AjO*R-yNWUmF|s>=4*C2uwW{@Mul%n@<3;mFH5?pR+UTCP|56qkqOAk6qO=_ zjxwGQW}??S(M3g>9P9L*@yP}${Ec}`Td_bYU`!Im^i z-;`mj0f-0i6rp`tkk(wcJUXMRu{EwmS*o4R>Fy|J2YEe=e=@D6IzIu zBwe(SZH<|ub>tBBBqNxOm-M@ZD!NI)j{2uj>TQ?FrNR49j2tdfC>`e6W8iq$FlT~l zE3c1NkDFZ9XM%dzHd+nx{v>6}A07?n$wQM>=$2=*_|j^XAkkM;OPM_a-D}}J>Sc(m zQ3l$Y=GMk;QHh#BQawYNe#%0-$xIb(?wM$0FXEOQK2xFA{`)Tw!i0l!p}?t^3@)Kc zuwG4`3w8bG38Gl8n}^`Jwp2}*kLSVq)(BH%Q7KfKIv=57n$6_-kQP|AQk2hEm+j4> z@%7`}0;8GsErd@@r7f0*MWA|aG5l)IZ(0m~Y4VqHtPEL#Z+jUqJ`NLat#awzOH?o1 zIxL6l^$leTdDUuAzg9JsSuw6I`cQ>xfd=^j$Y?_0_QBv z$t0&%L$yE9%q3Z~7CW*GO>phCUfGN9BkR>1wsqej?S4XSvZ!`smw^jagg*DAdd#>7 zN0S9RZr1yrR?E;+Y=lc*+vvz|AG?Og_$qkC*hTNIQl+HZKBuZ#zIYb00$J#*zGbQ1 ztY*mU%_2eyj4Bm#Ew1t1a+p zBP49*!RynWmn~ATd8*9$E2Nw83hJgk(f$=IWtymRhjJB8L~S$S_<4}s&TZgcTN4y* zMvdyPV{1(&+OQq2u!+H=5fzB!4|YHeNb1okwJHW(Cu+1Ftr7D`?lzhZzX@s|zon+h zgKyz$=}zPUd(Fz&X@#-)t=egFcUGv^5d$_2u+1kK_YREbJl44#{MC~yQWn+m9TJ;I zAL)kOCIq3@p{{j)SfEev$1TUxbYyQmsj_xt${dp>#BpQAIaN)S6ij^2SJ4o z@3&ZKUW-gw`H{*u$|Kv}{0RccsR|nMK1-5;(<L@Z$GZ~pzrbNW_4<;;R)TYmzsKA171$aZeFV!`KOW^;3mmy5^jjV!TV&6Mwt zQ=}Y-;YgW{Ykeq*T*dLq56YwPWTLUZ8*X=vS5te1T8CHwHj5;s3x%7DRf2y0e@r>C zoolHq`WK9uX}07AFEf#5Z=CM>iz-3xYiy)Lp|snazPf227!)i)ULJvWlWi~X6~Uwa z4d%auUUFyz^8M_O)h>DOS7eJc{~r!_*Xw>$9r04?({Gc@W3H@!d_0qaV%13+cA+sE z<#Hvnd42`=jRK>!whZxh<7(gdjA9=Me6pKeM`UGFSAO7C;7{q*e~k-uP%pm5wFHfW zZfNFuSDEHMq}ZRzRKGZvEmId;x?-LG8f4jg$dsJm>dul=qC9$Wq6_$O-m`2$63m3_ zu1PL*mS== Position(len(_Position_index)-1) {