From 4d36b778a95c6b60864cac7c880c1dc4d21ec9a6 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 20 Apr 2013 14:06:54 +0400 Subject: [PATCH] Allow to use multi-character tokens --- lime.bootstrap | 2 +- lime_scan_tokens | Bin 22209 -> 21207 bytes lime_scan_tokens.l | 3 ++- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lime.bootstrap b/lime.bootstrap index 5e8bdbc..bdac656 100644 --- a/lime.bootstrap +++ b/lime.bootstrap @@ -21,7 +21,7 @@ action : $$ = new lime_action($1, NULL); action lambda : $$ = new lime_action($1, $2); sym : $$ = new lime_glyph($1, NULL); sym lambda : $$ = new lime_glyph($1, $2); -lit : $$ = new lime_glyph($1, NULL); +str : $$ = new lime_glyph(substr($1, 1, -1), NULL); to slot : $$ = new lime_rhs(); rhs slot : $$->add($2); diff --git a/lime_scan_tokens b/lime_scan_tokens index b3d8296ef80dcf279937d1d11e994940aa04e0cc..74c69e793e400a4a284478ce6b8a215a01e488d2 100755 GIT binary patch literal 21207 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 TD=U#T$N`o5f`|F@H;MlQr1(*C literal 22209 zcmeHveR!0`x%cd50}F-(FtI^`t`am@h(Un^1xxr?1R5anB?!7K$%b9o?8eP5C0<~W z1!23SrY)`Z)LJ9F9_-<=*jma_Pfs9`&~wqAc*%Q2iVUH94SlR>x7R-DPgA%=)D zafKKy1|f*N$=e|V=RgFyT!h)+a^O|~uejG{r@IuGjywcQ2ZF?HcImzbKOEzW;fh~4 zONhe%vf1h8AyNk%^CjO3QU-n*cyuR$>BwgubY94NkvH8uU^>mKej{8v;RYcl{K96Z z+X-1Z&A$bFi1)d4`pdvK>vtZKbc~N=#PxpPhU@*c6aBtGWJ`HtupD`j2h}D2<|QlP zQ{`Zq1#sjS!m;kie{M~|-zGo$XyJ&v%O*Ad?B&zH@lX2)d6Z!utgG!`wO&nJ1jlRq zn7t*_-i?l)OlTzhzt6&*S-3n4AIicHWZ{RiFq$ZJF~1!tBm^|f$t9cf&o$E_qam{qjWG57Ih7g zaE+)>r9f7l&+iEYMcp?;zOYBsA^lp&g?xc(!Un)=xChUKns1oVYK`gjIiMnTg5BDyn4~c z2Mtwqp9^DW9p`>UwM{NN0PtY;Us7akCq-w;BSqs4Cq;)TBt?fSCLJt938`HO2k8(Y zN=cDV8R;b$A4v0rs33)glS%W1m_~|DJChWJs3aYMF@_X|yMPn}-ty>qdx8a6dvE*w zi-d?rKT0N(yV}CJ37U4|9CS{6SRzEU!@jnift$7Tw@J)Wdy9z=OU%-H9mJ1F%v$i45w}Rp+VEBoZfLV%Cy(0dcj&tSxUfaizqpHScQT3W-^J-u1)|iCK$Y7N~o;#H>wk1F?{pwd&nM z-1`Xv#<6z2+lkLf%v$#DA?}ixwe4*oZUdh5mpfvAioV`ky<(ZS0e#ae@N>&5Z&|C& zo^T<(3oRMf%GeudCfoL#b|M)Onbo=n^ce?g|K6Sw{2u$z8tt)6Kht?d{FsYee(2*HRwoN6#0xmO>T{Kk_KU;2F|sD`i-+ z>$mMKkhyggw3yj?7-{TkE7-LUQk}U(93xwwlEIOoow@YMpuI*=Yb`wciCSB9&~^q9 zwLT()!k0-;yy!u|V}G_oWxj= z_>@Cn797bv0J3LL?CDN4pN|tJWCe>#P&lr`-9WZM2_{#t^Aov z?}SCO>u$1I3U+zW+zg>A$ZyvlB43G1HR4hw6DxL87j=9$b}{z+_+zn?`%kMM%!k25Og{Y*e}tuUzl55{FEZd(Q@{xZ%tt^XMBhyMyznL7qE-_L|AUON^!e$(u_wkWC!jMf?vF8i|3T#652uKIG&a01r?YYbTc$4~UTte-VwU5r z?84KJhgN8-J!k3K&#=TeJR4)}v69lnAL(gp9@Ft!{?$L{uaDMcnHGBv9{|(*WK~QJzQAC4B*`-WG4r{EQ$!Qm5|Nhsopsr8G*kyl=!FMC=&}LtIa*x&n{u?rRX#((S;n z9*L{^NxH$Ns-quPr7d2>%8eekr0TaZ4|zBaBaf#sHRvx=8Jhj8vRbu;DTBFai3~l; zR_xx3zIPM`D!O;T*H^T8b+Xgh!CLJpC^#~B&!FfDOSIDxb#_>$-`=tHe1Ex4K*L0? z>&xlPWeJ#;Dod<-c=s{n-B&VRofkW!#z|@1r@Aj7mXt$#7xsHawi%^P2NCN{^`GZdW8N)Bd>g6vWIY@*d{qOS~Bq184yh%58t!!zTV*{9&qZKp)R zcdQtw?}g7H#65#Mozl~{65^G`c(U(&3i)?ByRMVuG=4?TxPFAIZLu>s&eJS!*B)yW zzPR($4Cm?1CGzpivFGadlgXH~E4r;K86Je+p^;z9-_MsEqeaG~68qKPP`?LG*pul%0CE^*QE*u@4H495*I~vChmnVeB6TM~-Dq3fuIo4^u`HJ3T9uqt5gb z1v}QlQetOx5mqf%Pn2h zGJ5vfZqjpx(;j)|Qv|4~PPAZOTfq@dRdXS144iB4xV>FJnM&eg_yE>Z#+-glB-&=3 zex~5QUTv|>4c30-U>W^cF(Nn5>|Z|C+dSFYb4m2Cmgw6SH1nRp{Ulpyo8B8b8~Y&E zs|I*WyUFj&>nBE0rW*el9~obk7n5e0dKUE)t>NBm{ zJXA(PXX{xfeHqX8n6p;~>UmTm{`X{()1_igmj>Yxco`lCdT?5gERVuulRdZUDN(O6 zS8LI#;k_&7yrA>UNL-7^!bZ1UNY#h&S`v3&_$}=UZ=UL*&FuRY5#!Co#28GZGFkn- zDf-ZpV#*{3oC(BN+Vw~`4&!TrV{5dd5O2;C*+wnedBe z6uJy24}ZZ-FTU~uCPp$?PljZyp^W9c&{Wqm;4X2Sel^Qp!@`5sT3PLGYm88-C6-X>wAuB&EUxM*3XZN9>93evF~P(xQ6}8>3(+ zU%(OpB&bvQ-|iG>y0J2^jJYyGhqZEg#G#HfOT_3vzsKvIdN*Vhq#L@}(7s^jBf3Je zk}ueKpXLl`dThR>sHm*`yOi}w71O%nNs-bOp=H^TxNa66nJE4gt(80mOkbz7SG8&H zv2(J+ZN&h(pJRwoFxg2RPok6l7|SnlXK!=iE|f>L8U{zT0*3(V-}x47%-OsDA;j;@ zrG^yket_}}Ypzbpf=oYNuzLprJDnFO5icSW-IcS@-oAOrzV<$b+Wr;ex)35a=cN@> zDas|p*nehgd6h{^V}K|_Z?bH5pf^Pm)*KAiNAN6-prZm?G!74yuZP_~qUOeMwisHO zhqD!|sk`v3K-A{yPdFN>5e=P?UFiZI#4?b@#mI%EsJk9wIP%3{a)^b@AyBLZDviE} zu(DK`?1hv@-QW2S*1a0>ZjGKVWruZM;8QtvToyr=^<(|Qs=(~oa;OHZ_I)P4p?Kzqi7;}kFqeWX!KKS9&%XIRfD$>NA; ztdaddvveHJ*G^K4RunQ`#8|D&G@{=JQTLgHQ=l_<1;RPpbmnq|fd@W4N_6IO5Kv)O}fX7UUO;ha{U;eH-#mmsYkd zgXhX%t#sm5*uK z9!#wSmYATuX=c2L?SIsP@c809E>maO=+W0uvD=N*kpkk1#D1A|%SwECO85|PZ+p)~ zj92GN;{MW#=4be=E-?cUo1^rO?>v^Y?n;KoPkLW{2aC@uofex=3VrSHPNv?;eZQnA z)*z>U5_wg>SM?0b_}=zjd%UEyJsqUpKWwes=MlY_3}5;TeRVC-9$T_2o`aysg{b_f z*3x4Bo;nN4CT5`w(e$@dmMiC%i_f`zAk}Ul`7gp_dX&fWTIx?N2OD9m0i720)qYZz z2%p$dv!Bl~4i>vI($MK)S}qr35b-5AtEEJo!!Ogh8g4Xp5n3(g`x;S!kkfGgL?O{8o`U~p zVv2ZN><69%v<9>Ubd`7rzP0eJ6YE8tctC6vd&F+hgperqCDw~O#SXDr1c4jjtd=ce zv)CloiMzzzh_^=EEABxG)5VS8ei!k70<6s*W?f~Ms z5RfIbqz4$B-}zq&4_#+JEUe zdJn_Mm4_!-9!A~~_#KI-7JvCvLUywFI%H?dI4)5o7C`rvVh(I%fs}QKtI&>Pg+tz@1|0`_jd7=a z*CKQ>^1KOm749`Mz3F0+Sc3ExBB!s5#iAN$sUf!jbSds-;#TNZEmlG9Hb_;2PLts` z!M_&1b>LIGy0m87ncR zIQz08ycEATBHRWaZSH#LzW~1rfNw;(C^h5@-c!)dGts)rdRD_0X|=Op4^w3L*HNo; zfEU857NbsANjwK=5iDaN?!~y5A^cY0rLd;8K+9k^x1wd(T5Hj2a}mDYbn8)ubOUEfj4=jfx4o8lSXwi-6TO32uw-1))GwwSvD(HI?#s+=+F(&D|9%EAg_7E`c zAbM2LxH$&t`!4kKyNo-8(I8~pjj$1pK)l148FLikJs8iR+%IfBF0=W-Z^^=+1u35$ zCp)Y^tkW&WCfi_xXl$y-mfo=NyX!a9xK;IF#NxUJ86Wy1WNZl z+~9B9>=khH;i};nCjj~_xE8opxL?4v!~G8KEZm!Ly>K7E+2S^PK3p-}3b>p5ai2qf zPoUNjtaEIL)M2Nvqu$rZEzK&PETLnfsp#02tR;h+J)t^(@SDOHV5kq}H&+w)KqDbs z*w4%iYMTP?dS8tLTcCrXCdxN8xv*#174U2cyHxgN<5}nCWEvuk-iaHqvD%T!Z=m#Q zuq!(3NvAe|tS8VI329Nad0S>bpuRMMbm{|_P02QeJ&j0rgS%E&oGN(+SLbQejb}@P zJAm!w8y#}*`NWzakTfy5#~gLkZ@2^IXSB(<#-XAC+j7U%TE;cvkL_R?oik%QI>zyw*w1g%RXlP5t-x)C3AA{L#wLH`rb zGSKNg$QSe#P(SDo&SP&E=pR52gZ>S)3$zrUZO((1gXUq9JPmXL=p4{0&?-T^>3CmWyWptj+wg>g@Kp1wCi?-*J z$x2|6Z=au^x2WKfux*Q&b@`0zZYaH)%i5K2Eoi%MLw7Md-@eN_XISp?XzqQs-8nf& za)!3gJ~6v+u*bCsdP5=%N!uvrJ(oH_~i_jmYH z^49mBLwd5F=7DdAUEXizFOKF|x3$YWnT8iKjgUERma+aura?aIya+bUrL%M%9;z&L zI0*h7;PXu*&A&Sp|0MX&f`3;AzdprJfIkd0{sPn=*VR(xTPoSIeey6S%>X~MZPWY-;7=JK zeiis-;LDX*ZC^{$@%`YleHWSYx6V)Lw-@|*;Ik|#{Z^;r9|FG;e6E9}_-oSqQ{dkO z{v0#^9>t%Au=C)r2j89I&(6==oijUs_&qJWvIf4afiG*IpBlhN%p`*~rJvIvj-h#Q>vq}f zeC8g)zZU-OlVtD^{>L0cwOAL$|EYqW1?DsTf8h9yi}CoKhZi2{;sU;Ka$J58j`Mkb zcjC95j-56;{Rcq#Ome{S*~jl__>vtABOE#fsS92Qg7bjk{lXXjXI@8o3}rb2cLMIe z;ogLMA8ru-|Nk<$Yv88B&4*hBR|mHl?moC5!aW9e1nvZ!PLulGJa_Kb9AzsvL;~T+ z^;N!rI}~(GE}vRHY2x&V47_o?!gvM4LQ2@Z0W=&^)T@1RsiZ-a2ZCWw`Rq9hCx+cv z%#vthAX2^|;={k$`)Wlwk=Nbm73EkZ;KGcgSb>ooEHpIopQO#e1zyPGr=0RM_`{;y z7r=r}c^C@{qPz|OtY9sca74Ms>#7U6>pd=SEn;dU%4@>GP$RNavJQa#L|>HUbq5@6opQAEdC0_^FT?3J!Le`9&;AiMwp~lDdpJr0cC&O3rby?566Rb5GaRVUzFpu8&1o$K&}OH zmAa7Nu}&!aJ(C>I-snQYXW8h+MLAy7MW@H{=g`%dqe_nY(fRT$2FkI#=OA|uatpa# z*|;1AeGF8~$@4I75b`VxgDrKV|0$E);a}S9hi??3nuRwmo$qgenI7AiJ2`kxMrvR{ zn3j9aB*%ZGF8LI>Qzkk7!*nU+bQ)l#{Cp3kI?Pv|3j(>5Mi_{cqaH8AY5jPvKyN?k zG5uFfavZNOKyEd{^hFuE1e{K<3R`TdDwUleSYBG!w}F^H_2V|O)s1#(N)|NB?r3^1p+JL?)=3|Wp2F`bqYB=gg+oH{z)9YF) z#5<<;)#*X3&&BbGf$HQKb?%D7Drb%_3acDAjwq~ZhvS99>}6_PP*^Fz{;x1cEY;5y zmcg<=E6h@;=cvN+&06+Pg*ifD-30wmVfJWs){VmQOmkO)hLbN}HIZMFWBa4u@`i`Nj^J&KJ$uA`QHot(Z6YZMu_`?&H4Wrcss@~5ZLiB@gzOQ#qxB( z&#jI+|1-ec@Tl>5U~Y=kn0@2`u-1PFJO@pDZiqc(!dC)wv!ssCowM9Bsc{AHQ4_8L z=0B0OfmrZOd=+pTFgqIYI$|7lP;2mOfh+M3V{aMQPyBcqHxmC0b1-xz#=jeQJ5EE; z_+DV1N5Fa|{{i4*TBJg1Y-wB+L?^ax2W_sIzullLY ze!aop3w-eVHapjT$=?S&|5-3gAA%w5kye|Xi~RM#y1zTHV!4U&jfNyFE)j z09=In*Zc_Z4#ek3Px&3dJne;9jIdrR?gw7;kj>8d1o;mG>x=n6nT6Ydb^8oQ`|#Tm zH%L>A?eX96T=x^3o$KIC?+xJlP5HkK>;eCP!T$(YUk-RKLBFUrmA6F_#O;->Qe)(FQ&IW3x6N@YpB0P;8Feo;A!Y@cNzE~ zSCozW~^5|0{rbHW1@7y*0o)@%-ZVF=7{R73z!MS%`zc z`jYi!!VWO@nK1bWfp0Ul$CJSSj{N3;$Mk-cCEp4BOOt)P0Q`^%zXHtn4Ma!$OT=ry zb723E8R?0dP`ELSPx0kE%4_b5rORAZ3zx6J>0>U}ybQExu8CC}bZztpH@N*S`6BCb zN45yOq&E0HVNY%O)QV|S1sN`1?G~bGI1P;N!nKk5`X-%^bIClJ&HQDv7du@VF&phq z=OW*lWiEan(vjb?!@*7Xqz=9DSzmq4H%>(3W{d2wdiR#>Fk)}eUyBpe+#!O1^fl63 z!xUXI8TpEjAo&HHyjovvD!*^~!ZltO&TR7p>&SE0)OZ@g^kH)ce(OD03jp2VZuF4W zdZbtY>jgkKx{V|h@q1kS&R_3lYM!8$*MQ1nh@=pPF(Vo4K~7}By@*DZqz*X#JJ|I zSu%U^!nv6o)r78_tCr50UFBLjfBtgk3fGF+bE=%!^oY$1tTWZ3;h@gfINz?OG2)U7 zJg_>*g*--DF5lE?Q_E%fYg}P(B(SM`11*gqJXep4I8-_m#$F$uoL5!fvn?~(Y++@Zs