From 5f061d6991b9bac828c1dbd06a5af30668c3ac7e Mon Sep 17 00:00:00 2001 From: mappu Date: Sun, 30 Oct 2011 07:15:39 +0000 Subject: [PATCH] commit all archived files --- README.md | 18 ++++++++++++++++++ dist-archive/pexl-0.1.7z | Bin 0 -> 21737 bytes doc/pexl-factorial.png | Bin 0 -> 8181 bytes 3 files changed, 18 insertions(+) create mode 100644 README.md create mode 100644 dist-archive/pexl-0.1.7z create mode 100644 doc/pexl-factorial.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..1817395 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# pexl-C + +![](https://img.shields.io/badge/written%20in-C%2B%2B-blue) + +An embeddable programming language. + +A single .cpp/.h pair defines this programming language, that can be embedded into a C++ program and call back to C++ functions. It uses an LL(0) parser and walks the generated AST. + +The language has been totally rewritten a number of times since, this project entry represents the "-C" snapshot. + +Source code, binary, and factorial sample included in archive. + +Tags: PL + + +## Download + +- [⬇️ pexl-0.1.7z](dist-archive/pexl-0.1.7z) *(21.23 KiB)* diff --git a/dist-archive/pexl-0.1.7z b/dist-archive/pexl-0.1.7z new file mode 100644 index 0000000000000000000000000000000000000000..b49dee8585c2c66c866c569a462a361f41c96349 GIT binary patch literal 21737 zcmV(!K;^$Tdc3bE8~_809OM7vOy0WjpTaie{IO z>nH2~unvp>I;ImITLcb!)jIsqwOC?-&O5 z&z}BJBeEs%Oj@*QQogjP78ncdMh*R6cQ?vM(j1j?GO@%*z+VH6)yzgbuax5Y_)%VgiHSe2uiPL_wrrH&DK`0$0~RRPGA& z5=(chX~{3<;_MZsH#?r3l~PKZ+9h)B0;YgGScI+d(4o2nyP9=G@mT=Q?{>6A-C~Mo z^MluZieVDpzOf+Ct@+R15JR`zI&~q9P6dS()?oohdq+U=O%DA|531Y2pVpr9l__O> zF;0WD3_pJr_PXn-T)O~u5VEX85+cg4HLuA1m&%`urSF38&U{R(=%1f zi_IkWiyW*Y+ka-@LsAjIhfOEy{Y-hgw!B3ZSE{bD-wm>(JwO(bYB=z98gBNMbij22 zw29T?Zkj99hFYK;I<_uV7?=K;Nu(g&qr(;%>x|^V>;)FNm)+)%zqS8|S;zd)Bwsfi zbf~X{eonz#s+ah&@2uY=94S)S<1~!0YP zs+$LI2zuDX9ka~UL#ZbTO`AuD=*C(N%(}uy(WjkmH0827DB29-|5q$}Y`_t5`1a49 zuTEHb8wzyBPyO%m_(CHB-A=mn3=$kC{lW5Z!olBx1m@G3_f$t+u06}XTG zZ-I$hnXv4@g$h1kGVVK0PZ^vJKPqB~^jJCva~cdg$V?H6E4Y1z)M2h4-(+MYAg?6g zXX3)CO)8&{!xOEvIqeW1QHt |@;*sd2OMDUi|@-joKbV}DcPi1H9ER#W7i^PkqB(+zK2=a_{2KO5{ z$)=s72c}C_&?$gBF+UVOLBfNmQ_h6hRyb4k{Pm7+>%Qqj(Bmy|)^hkGW#|Ud9gP(R zX}OrzDjdMw!lG$!M(4%v5Q_~n>Qs#s+&sn@AXAph8DzTCmr@cXRREOq+%tkl;*Gf1 z{-73oXfo~3*<+9XM}6f z;M#6#4qe(N&1rVjkoy$bi;my#Fgz-1i2T$p=m83m9rnHsm+$6=t}L_>pCsql52myV z47bji5^9X?E1rxX3Q%PBRp$f)jzjFJ(wi3pDZM4$VZQO%8SoGbM3#9g*bf{1M;%$U zJzBNvg@)jA4}&%>2#Gw_UOgw_bJ4=HKUBWG{sdJ)?N~w%3%uTQSbc9q>ci-q;%?bW ze-rD+V}(`~rxx-Ju6jD_`OS88;b`XQ_LlHzfc<6hIN1&F(wOYcLZt_d#ew+JN?ke8 z>^0JFKV&tdtenw@G_zIid_fB%s^nlcP7B-#_vY@$=Z#_` zXemVDG3Dhd#F#>`KY(zOjvu~t-Lo@>``_44&lMwwFLYAF(?_CRV9DMH>60;R{7a}K zBh#)B#MuAxcF(YusBApn*(DIM?F<^J8d!RSr^3t=DP9RoVASY;CER3D%*Kmi_gw_i z525K>^(z?f3g~lpVM0y+jS84-GD+gPd6|!j0O<7x($X_vQe=)SqrKFI0Z zcJ&>~TA-@=)ztBhy|*CR=U2NO|YmbRbqkhPRWgw;>VECGSQHg)PlRj7jFW(MJg8?{)O2w4}lcuZjXQuNd z`^V_a02E_PI=m?MrTuJjr_;%f#rrN%cddB25uQIA`ZGbLEib_wot=YeZ`x>p*jcdO zNx7B1HRKwlz={38M&NzMDN{fnRTX?H2P3zaD_4B?0{)Z0}aBUn4P!sj+hu>Gx8z##H1P}|0v|0WQ z)+b;c_N$?;t-EoAl`P-fPcgze)jDVA^*)UC@>mcwGO3=4&Qw0(u^#mZ+cyw+9jl#S zv-d9k>6fQ$VYqwoczq{_Ts8JvJ<0u}@&OP}P>+%<>Lro;DZ063szcL{S&5Y;BWcz% zZnpJq++v9S=t#^E48p(}VX8{pzB8YD;}6khpTGvMpt$Rv@9GsDcn6qSNLgqLoZEN` zp5=u{lqD+?-aEuZNiWXa@i|LdzjAH>(wfZ$=Yzy3H8UY)w-elr8N(fN2yf50Hmh?_ zqYfd|5?XG}dE}2EP1MH;sf8`!{w*HiG=(=D?l~6jdIn)waV0h}d52An|CB!fR_Acs zMi#LVq_6gMgYD|F8T5j|@9-^vbc%%{WFTJ-Kc+rDuo}GcqAYccPCi`G zlpF=A3Nh!zny8cQpEj*Tm9~}m@RHvCH$G7z9?l=>`c1CTZEG2JMG>YRkBLjjQl4e# z&tU*d$fs!#Wc6ZhcvlJ4>eQP9p2kQp!!k*<72-RTh)U=T7tU$cY#lsPIwC15Q~5z! zwUi3_GX^g>{VKZJwIOioA0QnC@Atlcrvu}^gz+t*-A7Rrj0g<-Zsk!alWfX)%^OtV zsviA-OMh^er)g@m&Sf^p+WUSjvw6S`{K*mnJGVP>-fxj% zjZr>Cx3AlL$hM=SBD1%eB#xUmRaof>jnQg|#1(d{eM#JQ;`wx;*Q(38W_Dx41%&l? zaNaiyh<(9Way$GggG`jv`%TKu4zRNv0pN{8!fg{y?mWcs%njVQYXIc`Wa&LNdtx}C zWr`N4P;ys^(zElWVQ-x7Rjh(*QjrkMXFT%23Y{-sVmv52ZVpBWDKAJFPD|Tt{iH9T zra*19#~Z9!8sTTRH`{El_ENW?$6#*v2&MuaWce{^%KIW0i7*dt{FRk2qE{`EGyRG! z-r7WY%GZi!JI{{#{F|6ftz4vm=hPG8L+6RUrQp9fO`SL?tMPA(wxDE&$+4~i2D*8F zYF{)#(f0nY?+2y(L7Fq6Mbyqmj+Cb%*PaH-AxH!V!(8~cr>EEND{~$RP!LX9y7LDs& zJ|u}CVvjv0;Q3K>UvDM+2<*$@ls)ZDbTjaofifC!aSqloijez@H1&qH^fABN*Dw1wkj3uW>h=Md{0LYdjj>Kw&Q3`Lfzri%?c8g zabc_;*U>FzwW#$QPwPfxR#naQU^6WkoFa2!#cgIWl9e%0@j%?{MV-#{>Pgzv3?@CI z+8OW~V>Y-$^4uXlV#rkK;o6(~$pznICRR6?#J=XJkC`|rY&7+K=1g0R=bD`zA(ue& zv&8I8dQZ37DRG%HvL5l@3dW}FG092rMOMl|wc`U?*bCeEf3uPW06>_MVn__`7&rhY zYvKQn{=#^JpJ+1FVo_Mn^$*pA7%kCrLhsMywVlIKpw)R%sQIH>3R6>$ATFDF`nDycyH>&^i6oYl!( zN@xcMX=iZf8x2M%=}9XJ@eM~fPuoYA){gNXk$+#L@74Nnqk(+YbbknYts$zp?L?6h zUn_#zQ*^BmA*%$22Y*~dK>E6+eZvoyjge|fff?;B`hbD&9xQ-SzFkijTM~MqEZ<@X zKg@)5D-cl2O=U#vtp)KncS-L#dx1QGSF~^=sMkzI2}8U(~1H*I<`x(#_5 znn2s~0w!sCY#%=H$d}mh!3cmpP`l&@8|}u-wBd!sAs?z5AtIB!UIOgz$o55n?Ls-Q za3+K5g#re?^BSpJvyaQZmlpd{zFJw!gj*Ce|(N|}sT0D0S2p}&JqpO3*FjHoA zQ;)9jK3iQP+V%T#ykk||8ts)dYjn>CM7#a&V0Ias3zziDFg=NXvfH;r5NldxKyS%v zbGUAN(ftnnw2(KMbEK1%S0ik44YHit4q{8LMIeymQ%L|a7{PodcvD&TcaYElPD^nk zZSFiYQE(AS1i!+X0Ivk%F@z(F3r@lK!Z)ET*sIb||2!_edci@$8bLrOw_gsJ5UfK_ZuOW0r-5&7S@@|W zZ9q&4sx1MVi;2*>Mph${7C{oN&6Lzm;DjgQDJ_gqX?L!K|Fdksd)9?K*JUW~fOjqcQ9ieM+kkliL{{ho=q<7&c?HkQ zWkt!DNClSFtq)R%2E#a%S}bT?OliA|Y8V;`C_7;4D=gstO|fjwI|#L`0e2K_F!ZX$ z^3F1nN_6NF$1&gq)xYRu8`jVsBL%i4Ma8KI&+{-gbw4_NgGQ>he-58aj2KWZf(TB% z(2hGY6lzlD^*y-tj4dsecS*oqgw85(@ zxIgy@G6Q}TYyMfIwQ9G(t)fnzk!XsU}3Y0Fiq+JE9#tzQZo#*n~d?W+)MIR$H^O zJ`4EIcy!Zc}u$EHAx}k-ozT)?jY#e_`6vd(~~}F=5F1W zZ`Go&R9ccH5Mh(8*JXzPrUnG(nOB1bM)}dhNr6pk$*|)LkxZoyz2uV<>P+0ZnH4Yl{Nw=&ZE)McPx}O{Ozez8F%`3-0>VX* z120^KOp`@&85FDZ8-&$ZOw1i|0lDR&0Uqb+QUXaPz+0|977^MTUi=~zWqn1AgRR?o zU`ZYtFO^X3hF~HdM9-1p=B)yt;yILjhRj$sQsOTY_IM z#1MS-1Hvuv#*ZHy+{`PGkl}MWxxU-dc_w@I#Gofr8=rFbY3Q;sRVH;#WMoh^Ji-qS zYbJGmhu4rdyQmn#+_@K?$0UKevqe1-t*vL0M=1?JWH@_)HYk6s(;?Wk->XlQ5m)vY zpJ<^=`=m7PZs|!HOt1&n(vV*T^#A}SmX2@$7x(N1yXy4+lmRb9?oPc4UahH+P|!g? zAhF<=_i=R70LxsE%)JpEI2w&;ZfscAP!ai0S#+B;H2_&@@JgfUm80jJp&p*#Z~;F# z*o2tYRt!5L8WAB3!t@HM4ciWz6zQp3@EGxWh?8#w5#U9;0sZxOSvJz3(}d(;UOcyR zFNlc6B;D7B;C#C_I#1w=uv9P~lBdCW9gU*%Dxb+4Ck zS3lU9tg;6E-KOx{lP9A-k4AEo8aCek=O)3k(5@dy1N-(Rr}r=DNhq2) zfJUZIdTZQBba|R4UGQOx3*&3#6s*foyI^`X!#9m{^w1$Nj&=~q|OIMsdA-{b~u0ZxUV_dV#ALXu*tf+*x zoX(YrEd7zSst$U>%UW_(xo(y?k(tWLT%<>Q<;9i+-zRtT5S|Q$IMV)F7v6MMDej6!_%+s5<#1g(M|KtYhZCIIOxSxN=Qq}Y&FvVb*xmm&}k2R8+l z=1-yd+4Sug#B{VD0kU2mIYP0usEVXyUxG5@fR!XCFOPM^^B=~92nnt%U=8j1Vnoc4 zgl;6Q+8bBT54SjbJ*MoRo0}ui-Tf*=V znv(#iA{)FG;aInkI|!H(Xy_wPh!~~Cg+cRX5Iv1^BY>)m?j6@Ybh7$qRbfxluiOoc zd5#Tbm8iT{nbd|W<%Yv-SoU_gKwxHOa-Lv^hI^L6%L&w?-5i=Sl`cj&;2! zh@Dwrwch7@7&NQj+xh-??Q?{~u zbrgwP&#CH~%A^C{e*Jf!%^%MPcyyeWjD+c5cz^gH*A>Ov8jc8s2x1medo<+4_a=0b z`>Gd1>H{}5c}oG6jks*Sz%R)!VA9r8C{ z_l{#5&Z4N3M2CV?zD~iJtE^ceIc}JhUvH#QM zfsW>2`srH1?JWiuq;OY07@(F%!z+R6rPKw-1g}auXOxh+|9}aIvXqn)J1R$+w+n)= zyuLo~C`)ZzWE?Z{HU*U<(i0og^h+B7N6H{nZ(9?(Q6%6viQ ziZaAPEcy3zALI1NzR5d_R#A=c7LS>=-Lh`#Wk{H=+x$#$gUcCKukc|E5+Tg_$BQ3< zZ~+VJ=qOb4?5GK;#1%Bzh`>RteIy4O?ztM)d*lLK&yzk1U}S9n#m)L;MtwzF-RxEe zQ%Be?idv+(G-2-U76)sDz3R>;USDQUYy4Wf7PEVc-1O-m_f>nRS?sMN^JY58_H{%h zoW$bNQ@PNe?yMV6j7g_T#fjPiPWa|`gk?F{B#yYli(s0e4^YnyA=cH-)Oj^w97kYP z5c-&Q(Zq#5YE_c9g5~$N@GTynu(S2q?K`3ht(n%+FUkJ*L>PxMNaL+0lc@pd@CdeJ z(C=Jzv?YuwRQeAKwX5NW5X-w#?!jMEXnwW_gDPlXcaTfY4s3mt*+;%4yW<-M@OlmD zN2zEGi9=GM9}Tw`UXyxpU|WG&I+r4Qb`XYBGen_DQBI`0JV;}PcdS58(NhDr#Lb97 zmR8AHfLSf~Oa)n>%7BV60Ig=48p(lF%-t1B{_zaUI1Hb%XzSB))^izK>%ZO!Bgr{zbQbGI_ym8BaLo56$0QxjbQf% zKBypc$8)KC_Ul;xf!WK`cC|Wp-F4{LkUrKn^7onHh_@Q*j2Yyr4)27Y$?l~j50f_} z^z3iYF=3yM2yikEPvxAZ!6F8XLt^-S-MexhmwDGDNdqz6DF@}FnN?d63i&i8*%wh4 z_=&XBaZ=Er5&!ta1B3u>ZZHQ64IGYn*5_Vp>eLkkaWxAxcpX_{eO;rED?-@{^5fw| zQa4kLP$*K#|20ozaKi@bSopl#$`h4Q%yog3nv&CL(Np(|RC~3UXuEVE!%Pj#W z4#gcJfiFJ3iQ+DG5m%M;N!ol20bsD(lp74#JGo*1yK<85-so02G8RyDKf7QbK*&0U zZ;0pjtVo~ErY;>Ee6&Rua<&t32St*&W$28~$z&(03iNTu z3Cv7M#t)SZkU1v4cK|^nT?iPf1;tf01nEucPG8@tW5^S%ChnefKIPLUvex0C^QL1I zkdxV(N~Bsr43%%e@6a?c9=#arATY)St3VW01SR(Z452|J_^ga!5mOpo2?o^6l1;6H zAtrZx=e#e4Nh>fG5A{E!*Ks^+)WRJ{U=c;Q_L%eRuYEF(36|~;yBr#uH!I47-6n{@ z$!YWzzapEvG{K7SA9QFUEEpbT}wFZBQRp|Hgq&didw$Sq{K{w$>W8s_&aC|Vu+ zlS-VnQ4;?zxn~Ht_V_J9zR4*=uolWn2^BBi$eFwXE0^~4)?v7bJE&^fGVDsh&}aQ# z07WcCdR?aCi$%3xHW~acAjDNx(K{Wbo%#igJ4@73aFzp`sQDel3lA$nkwIb>hsJ%c zc{+#gS6ih}Y3+zs^O%_7afW&1se8$J`%kmcs~NO3F5McvUB?N&@f-kw-=o4STWgEf zsLdpK@)hz9Y+NZV*iDyC@n0#q{nD7|ir?AdXJvHT>gF2DRE+PBw^}+3BFN!&XDyOH zR)t+B;eOe>=xOp#D%_QPZYvyM>2F2QDk1(K6)k-Kt*o9Cevg)GZh1C4-;NMglW0F=4+Bg6{d*iP~}*%mGDrk z6-u4a`ltKYl?5bU+>Z}^*N6NGIY})Qu+q3d^c6HJ8ZSHXu%i8ejDsxYLT2?TuZB5Y zFszh~Wk|Ylj6FZchTAqD#(~v-v3!#Ao2GmoEt(L4J2Fk*lta-W-^VGRius&lxS=Pn z!cy4-y8#mMP<1&q>UlXrCo%6IX-obGjvBStCtcxvx79No?SY=bn11-=FGL%z8aSPQ zUyw6U$`x@XxM{_H?kFoT2%+1NTUQk%Y@@}&Z(p8R@{EH-$~{6DHGls}juaPJrsSz$ z^->l@3mNatq@|nWv7~T>0Ja8J8tw+e7_^FS#T@;_Ds+XPBnOa#@CbJK>Kn?3{nfEY zX-99GqD=*&=B`gJv~k9n*dScM!VQkn+wyiQ1MkfP(edl2J|*{vJA*Aq?xxg4cbQ(S z(xBh}A)f>DSc)?*9f0LI0AyBza1u0Vp(N#Gp66@$9qhL#C&E|O=`)0+k$Zq=3zQQu z%uTuL1J?uNPg*!(p))j|hg7Yfg^5dra+mZjJe>DlJF9cq1d?hpIY>js5xB7qZh21K5cC2B4e;q~N;arQ-3t?d8}ILAB{}G}|!dc;ent?We-v(Slh2RH!UGsa)F-gyrX;S2O zp5&f3?`?JeB(j38`qkd5pvtR|a+&B!{{z4h;z?*jqmTk4Gl6LY1z+k9xxlbKZ>WB; zO&>sKe3T(%&X$D2UDb^XA3Xy5B` z&#L-IG*r3T!cNnlaGGXIAuG23*TCi&(=cK-;g(X%UIx8<&zFN}h(XG=(2XJ$?&llt zfb-v@JE;sww=^`*$$0kcfndnFe-An~pZvM$m1+uySl#nofsG=pTOk2zUk`Vrydx0f zPx5%n+8uXdI!1Rh404gm%^FGHny1-~M#NGMVuP%CR z>L=R_md0QNx z_|3opFs8kV)L>60HcCQ8;?6@i*sMtuJt59MgR{N8mFgNz(SAktw+Acxn(^MXdNz6( zwudyiQUq4`&t{%JjA+h|h2+B^>J5Eba~vTdV;1QUK;h&aFn?*!EhfhNis-Cu`3iQ5 zf@wXMS7}>qEJGiMM)Z;gR_~v#4buL+EWB-eOB{C-50fTHimiS>7wmt&+Yvt1+JOH+ zU1{f8s(q14$DPimAG!;b%-OC<#2_GmU!9im0c`7f^c;D`e)rgnpWRCEDp7YqeY7b# zGzcq`llP{$p>41qRk-uEM_m7cTB6>G?5&lZ?T%>m_-ACdLd!hRF?VWYe9wi>x6uEg z^$FPVl7tq@y{fyQ(RVJs2g9bzcyfaac0h2Woh3>IZqo~=#bkycmY#FQ@9kbLOk&I2 zVku?qA5%1x@4~n79n%S2zvD5g+e_Ye7`<@@0SG?5BmakXF>181eURf_Oz_jARco~d zX~bUxEp^(`UL=w3j(Wt=veM8OSLS>~;iS6%^=4A5q2u@2Gvr~E@A$T;8oyl%SS*uQ zSV=>MTv5qV5ExOv_H<%pZs1?K{a`2BJ+DCrOA0Lmayu-4?)lgMuG9x}mlf<1V+OD7 z0vzJta9hjveHzxh6>T#JofA>i8KgxAB#J&eao1xI^{)H37_mCNd*)`N z<$m3}rZ25k4rrgC)U~&9sFvYTVm9jY#bC^O?Aq~8M)BTEf;%EqwIc^3iIdD7k6)!r zKo4Apj?)LViFN?hE8_eRkY z=dN#aWou)rp={Ed=J|6UaoaHC4hY&=a;fzy1vfyfs$?QZcj@N_8ywpO>3=>J^Cm^l zZrq?Ojqc7tQtl>^u!RuzcX*Y(wYyE94v2qO$qKKjRvZBSY%A!PerYTS^r;PW3~bF- z(xY5SO2q{&(G8;$s68&mra z**-NT>#{S-&S0%9|AzgZo1AOiLXt{`^XEuXQf*ay?CnqesbbvlDdPP|SkXzbtgyY5 zgMh$XhQrl-`Gg=-7H&DLmIVAFI%a>>|L*)#2R|=n>>uT_rXV+oA(uF1wqyU~K66ru@ zCRx9hZR3zp?f@j$a~N&|YJ5hPI({MSJV=hN%#nitGpfzsD?>L9DfUpGn^9G|&-oU> zgHaP(!4ZN%ZOt{OTjtM-mc`~&<_Oh~!2YL(sr`HddtY$dT~(}2;7VgpB0?}1!hQlU zDgK`KZVwlFxLFw{`sPFsA(KSzA91$0yMS7OQrF~Uu?BF60T(P8=Z70OreZplNY2c= zK|GH|{Ba~~)_uH&f_HcFnRzR(B?rTbLK}Wk;>U?gy28ka zwy9ji2P&v4Zk&}G^NEO~VzUfr#W|HXY8!bms~VNd>oGL185Ro?r*pm)!AK0J-7**c zH;ef14sKBr3xz2qsdpk}XV4y5P>vdG+XG~MZ&WOKuOWNPws6JevpZR1Z5L5TIO)%( zEJktEE6^?u7BnvH>BiK!DS9~*tdL@%$6_3#Fz-|G=qhz(#2eZ*2wI~|khl56(kM7; z{U9k#4EcjTyK;scUafGK{TUfT9$X68J57wtlm`~(b;V(GyidL83-K_(-zT~)L!(V+ z#s|Q`+d*Q7G^xw?TP6DTI3W=X>IvVoBSzJA@Xe`Cj||hD#v$z|f=FRVKWkTz3ycd= z*7AjK#O=E8aKyoz2R~r%`@kAyA)@vm8zi8gqnBtpM}V0>S^js%Khy;^pkY+-%mSVFjkGWbq=ba^36wxZgiHb2 zS9e}A^?cUhgqBg9u13v~u*$p0&w$zG%9#xfXT`=b^X=@)fib$10)$1 z%LwO1V9dL|aaAZ?Zc7ht-=|}A+)hx{T&x>G`}z-G{Srma{lym6xcJ%<^n#$H^vj5& zjn{ZV`or%RYmGw4LE*UiUM$(U!v$TQTcu!whn*I3J`7`z!=ipsm)dS`yb5pgjL92Yoa zDYI8#vbUfCCm(9cam6oUf^%#vRBx`Gl)Zq3%83$dOm5TkYLOipA>dA5xMYcPMKwK! z8<+I-naUn}IhWGYja7tXd55qAQ`#H4QVVQva zSxwiL*IcGcdMDdx{vA{USr%zS&h)VZg&#V7qeckTNqmRVRevw_ne0r%w z(;J-54z?IrYS}BC^QF?lnj9Wt7fcf<=bLhG5T0F6ovh%p8M0Dpz?F2r?7wwoe3F4} z510%(v{ro;9J;fV;$@`0jfk8HB#?82Fx4g&q`QPyD8R~4c!q8Kk|{p+`xAKnZirg|;^ z1aflq!Uvas@+yz*&&xl2`?nJFy!5WzdcTPDKjXT^Ewedb-;N{9(`r}MFSPAKfC#zK zq4m0Ye9Vio_OYR#=Z@Hs@{=bdQt;O3pJX1o@Ml>zHJhaep9)4FkohE;?WIFU&OA_7 z<`i7`P>U*yg51}^b4M=2JIhkt2yHG;3o`4coBB21_ifeU!-iL$K5@>v`>4>Cvvtm` zRj@p(+ZC>i%|l9IVsRP?e(m1U=~@JynG3m@hn4}oZ$?d9nfLkHq8iyv_4wnYH-e7T zpnyZ5)^be4{jGYDc6viL=J#d-1 zg!&b^^2Svk5a<-R&M8_;gYAnbZd!=pFJF5E9YlA&~(0|yVc1*MKs)M)r4g~Z<13XIIhu_|Z@r#bnI6Sjkje?ZodZ`0l! zBinYi_w`w*yz~-%wONIkCXEvN-p}G{a}%Vb?4sd8TL|S^17e1R(#3lukLbP- ziZ4VV?6cp94)y{%A$(!RMvt_bEicmK+~|qd#JsoJw?HM(ct%> zWWv?VYzG;z2-IZ*bl$yBkokn6Z3uK^VFPiZQO(zVgJTN_!T5D#+lfjW*nm}g#@;sk zv4?5UALlatO6YhGg;K0gCH3>F)qe2QI0B_18@1Py!SX}})ogoz*xSh(8Kyb)cjEu5 z^Z0ZE1{@&2-bY;#t6>?t2oEm%+i#rjFIlAI^&y0!h6FCwIgMv>#TrXwAMqF%dX^(~ zmO?@{OLm{fN;crI95l--I$|&Z1&8_*^^C5Q+_uss3n!yI;4tz!J^^DCs$m4a7!#TC z%>yqVR`(;gbxtmXcaV;)`kVRd{6VTa_`f45k_y93a<8PsCKvwoZGuYG3R#DpC@G0 z(=E@$CRUY--n~M5YLaDHxoYv<3rYYrcem;#nYCu9Agig}F4W1P2U5omDRL2Y+UXoY z9kh?zewcaZxO66Y(TLT$ps{c#P>;ZST4V%^{B(5c5EjS1Vf7;vp+{(<_aX5h2Mg6o zc6WUze&}P1OQO$nBGKt_I+#`E-y5X8m`y4$*no`$&nD2#L@eyijgu6M7Vr|sl{Yn6 zij?VBc8Hn5!}Pmt0_%{x6QPsGqyqDrEM}JGT`c@R!N#5uVy|RCvaD$pqge1ffkfAl z6F-vQGZR-N%M6EL5keO+x_Ov|P)eIxFaQLWD93t2Dk8TZ)OqPiis8a8C1NPHcpN6P zT(9nn^@9P99jit2;2P$Pb)t4Ck+}<5bzT_$M-~*qyQL7wJ)^_Q4UYJIc9uP$b6DS6D z#r2lNTmy2>%C+UNUR!vxJ|#$q)?>e~{K`2g4g|)Y=8b1Up7)-o!$&t_Qo2&*8&|cV zkiqP+A_E#(u&R&yt^~62s9sz9)$B|9;I4SZKK$&}IJHESSt=8%M#@V7fXkDkDr^gG ze2TJ+#TIV8d$qp-tei%~08V%G;=(m>ecA~L6uiRe)w?*Z2!7uOb=<3*oq#UC?5mb? z`TPxP-yHg`NDK;DywJM8urRXWZ%vP*>pD)7H+b|1{?vgdLm4IYZ^QoFgic1kv^B^e zVl&o0${~cp&cH;6zdzddxgDyBr9F*~%G5$|3o+8+e8St**m#TR{m>-<%99qk3wWnk zv_!!cziGU%{xXqdg)hr_IyHbnlvHR152K?hji*>e*VlY65{T-H>0banHuRb+wB>Ob zewWBkyYdw9OO}-ovGtHFbbPI0xbjTGL1_ z(-+jjMeA1^yP0JC=9abH zIMfoRFjq7rw8x#<&b`bfqV)FPLls|sM7BKw|2CKGc)I~=63AAD42BEU%UvO`lOwU# z*7PLbWiM`86Kb%$2HDkM6U{CYcbc_f(Qo`Sz_Io*)h_2*3>lLB2U`l6`&}K(?4gnf@e-CShUomD0ipna!8m`Q;a;$qUN=3Cyb7 zlvxn7Z8?gZPb4IVKiEQkk6D@quC7Erb!#3l-BpL5wf_KsA~ImsooN(_($J#|=Yhzd zlxf%A3=L~l;SzE>NhwqOfZd$phuNoe50g#lRJLsFHw7M>*ZQg^B=k_Hu&&D>_6ID2 zmkvyfL}-C#^d{0G+oK+{PM7l>)t<~6A?n0p{=$`D3~zwU_F4M}=z0v&EQyUVDK4=U4M@VaQ0@U%qVzW%4hJpd4*Y* zrwqN_hDE)iBdq2Sr2JS9lqT_rFUpIPh?YFk{}Gy#wW9O2&HRl80#>xjsmO~qx$ONB zRkFY&G%16HTzHh1nv^==y%d@6Eaq>2AT|JP5pxy_stI^1IT+bTqQ}~7BGJvI4$*8@ zdWI*A$p8l*!L>az9F~vrYYz_J$8^VC;91Xqn!a+pg<#J`BC%GP`3L`3tG;nzxjSl; zHrSmkepZ`p@bI8B%YlRFMNKs#!Va##JpY8o?p}j%!4`D8R7++m*l4QI>PyqoW0sO9 zvCid9e9iDXM(mH$I~51`{dPWg*Va;gC7P#m;6>KoKYIzOmB<^&!e~WXCAS?g_J}*> z!#)cF#NQKDtm*o710%gA$Hg6dkWg~Z7>}X1da)R=$094FIr_WKSQn5nk&!{S4z0Ok zo*XhJr-XYMQiTu8e0s8tAE&U$mULUfUdX}Je?2CVHtOV`hqn2tXQqa!N!zvem@q=g z2K#6OAq)Bmr_D9|-sC%TMe1XacH*qug3M4*gn$9YE-@T`q@S@}_1B1z@>kIu=ZMVa z3C-^_$dwmoj|Sh6*b8XKH~5y6x(NcQ`P>^Z*?!&kRAaLA6kV&X+tZs9NliG8upMv1 z(rnBoP~S`6MJhff`4x-qUUUYKRNUO34Z*%6h0%r+M=5hfqi(h=i=rpB{_5ssIse^A&6BJ()=7>a7iBY}v#=={ z?QWEf+3(3zua8VzOUMO{Fj&S}Kni6ctvQuH${frOffcBfg8q$5H9zy@_oNa^s+jR! zjQqLNm5aEoP#JrJ!?zw1@GSfM4)|y++9*RRk<-v{;TfxO(O7hFGn^7WW0p8==c5@H zzqh`)_Q z2JC4W%ix0Ss#0Ger4VAK1!s9Xw{*K(mQVMJ_Xf-U3oAq-3?H!EoKgy=W*4VN)CYUO zFkU%y2KMv(ohymu2Ugo;xfyDuBC$~TUZ>ak6=4t1P_kK5=*<`|-~2|(Iy08T!+9*M z7)GTq8hsTVGWvjt;ocd`U;E=4k;bM=2fyhdgQ)lqOq%eT=5If$OZE=RGY;27yo-A^ z5Dx+~V_r$39vPyJ?bHMLq4v<6dN5MjzH4w<4T*bLNi4xmDXtr{c_n>6}xntKRK{-8!kg8-E^Ti9NbjS@ljm4-l+#=Da79*PN~`$ zkp&l5Of*+P?fvUeJ-+@ewSo$sI3zfN6BM=)Gsg0VE`oUiNpec5ncC!4alL~~jx?C+F>9pjJ<6kdrO-v=zgsRfrFZ3}Q7 z=e!*OpR*JI?jso&(_G5Xd^mqL{?ssWQ;LUGT9D<*0dk6~oTDnL z2E)rD<5c)v#CucUCXr~b_Evcu7UOSdt(MTP$N&`d1(J5nt*chHVJy1Cq@Af^4WmQn z%L#wJ^YNTeo`)IGz}R*t77W>u)RZ_69-SmQMr{ujXEznd6Qx^W)2#T2(=PH|gNXg^_hlbun)dEsIdZfLQc zCsm)4hzZE!v#o9*2;Xw;=h}0aa@qd*Kd}s-&~S(q@9o=ZDu)UDW{}VcjrBnZ!f%h5 zvsrk3zi21-*);0Yf)?yW1hujN>PC@UA6t%t@a5_?IPwk5dh*!C=>IAiUXpEa27{eO zZ4@yQy9M8@NIsV|-MKvN8V$iOK776s5_nzq0Chpy_j7T7uIE8M3Z{Zs$o=H-&iII| zvc)`49UKF!-RYf-PGtFS07L^R;rA`?+{bTK{tu2Cr435M0Rn`z;~tY__yz4tNDE6Y*r{ZVwzc&M^b8Vv8=Mw#E>}Y%aVBW3Ymj_%5n!IOF{Ryhz6@JyM>=jGaK#*})C?-g4dLiRyIJ_$eY-4}444O7xZ=U9 zh~#uvD&0&1o=uAk7H@k-Xb@*=IJ(rxK^}6?VS=2SUvd!4hQrps*p5IWcA%rf1f`gVVH#$G(5ku>#-J~_9~M3axC>#D;< zpuXla94mHjtb8w8h_47LXaJ`H2jx=ZtNaV9s+VP;k1Qk%D|ECY*Xji_Dd=aO0n4dv z67-_dg>hTGeSpaRab23ZsJCouFm@dYyifLt(bpM@Wlo_Hz+cr{9M{ZLk$1_I#xT7` zjg`=>7?Vwa;$K6EP6+b6Msdu9BagMdN_en&N`6vO{>}|4d-yXR zLp8>K3sRX(#bR}7F4B^mJz{7pw9;s+$Qg8%BBh?!hRR9G4%M!dfM4U0AzR^t%kZy~ z?8p=qYpPx>JZK+aI1s78U)bRQbQRzD&KD0hMxBa)-yG(vHTE zXiiUdiW<(S$)dlU__^6P#dpaR9O$eZYzctsG-giyg8tPrg`pBgr8bJJ0dWCS;jqxi?v~@>Q{$pKrF^@=FRrrs$qglN5 zd0)VJjQU-1bQT&($>FKBd#<0rAL=PR5^LNOI8l!9!_Z7B0?^HR z@uo!r6Sdp2;wSE{kq`%*n8sp46-Ce|tSUaAs=x7uK5 zqRnww7D%vcxAXf&4u<7e6=HP+{~thGup%`1WTqP_uZk*)`I(wOZ0hn8co`$Gt0>%e z110YgtLy=G=(xnC-PhTEVQ#g~ZoR|2;oq`wh{RxR7Gasr4TYul1c?01G^>5Isf^JJ z^|$F%otHS5)KTrv*2ulj0KFsnXipdQ)#Om`dfUUMl=OeT=ii#UyHJZ*WcQ}b743NI zprdSvFMw8M)$KgQ2_dz02D^`CtFV_|oH%l_*A4PAwp44GQ8AnALBf*vmuSLQDT{#& zC?|N6#;?BheQnI%sXmIHz3`JQY)`NNy}K~w`~he>HBL?1*x)NJ%^gQ>j^(eIFK zZ0aI;LUi{LV6!YnsxFd>iwE-wusrK%L$Gw7D@VJ=2e<$i$>E*EG+OrE9l;=E5l$;> zcq!yw1EA7YUj#Abk*f<_j6396DgdaWY_OZT+6=qf*wgSIP3#50`C?5eA3T?8cZy&CGD0AlKXZ?G8 z^Q31USfWr6%=+4W&a`)Pe+WZ+#>3H^;(YpQN3#k*LygmEM!)YmX}_if3=MzIVm<=i zJ7_oSG=OW;`lZFOgNtq2pr-=^hqtR6il^wJFCoRl!I+P|Hbc6P=wts6aH)7bYi5H# z+xR-zP`mE~2$44=CU}9`sMN3z6tKjj;(*`?o8E7VnN-5gCZ9byFWLGy94cU0waSN8 zV{h-yhV$|;;&Jxc`sxW%y=)YQuv!F_?fZv_v0qgi&siE}Y8o6L|7!CI zDUJz7Lwal_W0!;XCw@-k{nF&mIK^#qHYurp7Yx<;Wl4_Ad#? zlnMMLG%%79kDerM!^sh<)O}k1$!PpZYg(vwoWFAu%5yC*&`!_a1FJS9>0KXhhH#tV zcjL~zmSmhVyZ*?&GOZ+PFKm?r7c%IWulB##oGi%SfIi1X`eI*_{V%A^^UCV?6uGYlaa z3eVg-cL)E@dkD4{)JN+zSJ$b>m=YHZRjJCD`sr)m0`On0LDJJjo*)CXgcAh5HMxWV z%7^7T@d9n3VdE1`NsU}i9qi8Zac1}FiYXcS%d{kTZS`ht1FTD2s}(j}%i z8s5Ktbv{b*`#Htn>X|+sbZNMA2^l4zQ@TZV@j)aHBY#ppuulxvW}KWX70xu zVw`W!kUn(+usUJ{&8kF$Pt(^62#uvm3T$jG^|M*!)6f4%!i-R!6WX!dY2F~bT`c=d zzzbOnhpT1LMOprVCGMwrYxcBQ2c9>13pP|qxf1%$sw`RIrbnaig-gN;cUCeE8H(~$ zCKDErZ9KSg|K+^F;F-bk=U5{9P<>bNj)aH;#L2m90qZoM!Qig&5?5DP#=@6PeY>9; zZE%e2euKo^Xw<{fsFwE)b@441RdxovVM?>??>{+8&gLFQ%P56#rMoT*4 zPXs-A{Gzgt+MRZOgj&!ul6X6ixD2M{-u9V*+z){m$qwB>*vqEXiao2kd4a!VSwyYZ zljzbJ^_9}jhuid8aG<+PvaYHX7N;02LJxPEjSekb^xH_}p5(f|EJ}-Kk=QD^W_kNF z=(Q@)<6xmrw=D2;`E4y~sXQT&3azliV*OoRjglwX&moZHM;+vdo&9UDfe+Jhe{_FkBb`QiocYnHrocpS_x;H);E^Y^bIRT!jEHAo z>jJQSKsIsfR_FJ2w+8@tpCRczAjbGl!~lIE3!IZ=H*5B;8Vn#HWClJ8JUp)d1~=AR zyM|iyswK!ea`A(ra1WKhHO)D@a2@$3(bX*de}o)MI!D@dngfvy;i;%>EyWssT?I3Z zUP9|!6|a-7R2OpLY6@(wz1J^0_7Xd5=XX1LW|MJKboQDpk#uT`V9u%K~K{$3;hpI+W1QI?>q~*?6|5LmE0rT7EL4#?#R^ zKE&a%zK4f(fO92U*n)>DiAq|Lu_LWJ9^2UHf&I{uMIPf^yI1u@%24nNzTMnM_K$^T z;Ew!+Ni3^CA<{Cll%NMH!tNNV-k1>>e@*}hcmHz%U!>Ik$=_Lib$@#_WE76jAo;xC zrLb8bDrWm+c*c+qAEr>a{Pm?qWTqYD=js|yt5fB`pv6~M-2{t#ILPE9nJAU7AniPp zrwt=Gg-Rdr*qEoyeAo*W8D--cyY)R75qUgBYl?1r(YW6(;DWPGA+ZiwR(+=~VIO#U zAga1@*9Fc5cyc!U!uP1;_u@vwb5^q26Wgq&#ufhAV~%=au#6UUXHy4B@v( zO(HiZJ=`sSE?~^dSDCqeJCc9^004nA2d*)n!yY&^?P#mw(fDARj1_Dh=+M6~A4eJJ zP8;pSXvb5B2X9_LkFofhA@tGv2U`|B0r-;tFF?7{NLiqFH1(B=zkhu+_P;F6wb?}pJ~2! zhKlLw#oSW8`)-wu7ZG|3l<-uPkE_p>FN*;{vp9Ywr%B2h^P|BtFrG8(fCu_E@fR27 zg#pnT)pCvHY~U3bYyDldfwCD{FACk}rp`^C0~ZFs%u@jgfY|^C3jqKDBLe{e1zi9T Q000buP6`3Nl__5U0HrcU-T(jq literal 0 HcmV?d00001 diff --git a/doc/pexl-factorial.png b/doc/pexl-factorial.png new file mode 100644 index 0000000000000000000000000000000000000000..be0b0a56053f39e17e99b4bdc6426bc385ad4209 GIT binary patch literal 8181 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 uQ!KGlJA~bbCGtb^kzc< literal 0 HcmV?d00001