From 88e505b52407f88f67ab06a026473e33528ddeb9 Mon Sep 17 00:00:00 2001 From: Luna Date: Sun, 29 Sep 2019 12:46:31 -0300 Subject: [PATCH] parser: rename main function to __rayoko_main --- examples/hello.ry | 2 +- hello | Bin 18840 -> 0 bytes src/entry.c | 3 +++ src/parsers.zig | 8 +++++++- 4 files changed, 11 insertions(+), 2 deletions(-) delete mode 100755 hello create mode 100644 src/entry.c diff --git a/examples/hello.ry b/examples/hello.ry index fbec8fa..961e4aa 100644 --- a/examples/hello.ry +++ b/examples/hello.ry @@ -30,5 +30,5 @@ fn add(a: i32, b: i32) i32 { } fn main() i32 { - return 0; + return 1; } diff --git a/hello b/hello deleted file mode 100755 index a4b50943101958a68325085ee3a0bce188a9117c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18840 zcmeHPdu$xV8K1p%5(hh%%L_sRWJw(A0C#@mK>|3rbK>OOI*FS&v?vM7*|%pO+{3-w z3r?V_kyFHpnC1_pQVCSlRw}Jf%cFlpZB-H_N>w4XL4C-yMWiSc^C&g6AX7rFzi)TG z^WOU0LRInCj@1Pw8D}~w z>%o-qa(S98(M69-JEl%Mip^Niwi|1!qz9zkoszO0v1B(c?Z%}Y(+L>}rW{X-2_0vo zKR4Y586~EqOR4)cGfw%%8gbL9X~Tjk+kFvsRL@VEIP805c{9bOQP!WSJYCV0O7=FT z;=xohQy2;kZQKytur8F(hFVbptNx(Wr*`bxCvIx{&I@;~xcAIk+R^LZ`Qy*J#`eE- z4e3xF$RFuYB7F`&$DQQ%dEHMcGB3o7#;?;BFvHIl;93<~9k7K}@M~wl_XF3e=-)L1 zPQF)G(HDqU9|dTG7|bOzWxc1XiJzC(2jdgcabvjB5A$QxP)O9qR1Z$)9XRz1PU8-o z`##Ag9JsvYSSFJW+>0TUga^+O_? zCe09zv0WShx z1iT3RUn8L4Yg8;AZ*09$Yh9zYX{+Ox31zu@%OFabhogR?RQfsSji47mZv{ODdhNTV z(nZh%pzAP4O@a1+9s@N&9|L^^^eNDvfW8g-XV8nF7eVXaE0wOoTsQ?92VD$bl$0ZT zgfbLRmem308e)i_W3wk#t4zyrRm^Jb?}A+YXpud?cC+mWpXJ4()P zf8>T_x8ev$dHI_#{CE3n%jL4Xn*Dv`NZM1|I1`=sV>l*oK9u--YPtRyyZ%&OiDk_Z=s||F}n}#HxBth0^0q7Z}>X>OCMG{{Mu+uhrjXItZn}02WCh8 z8%O5s@Q3g6Z;bexBmTyAzt-+w3jKDRFMXyx13z>=M7-ohz>9zv0WShx1iT1%5%415 zMZk-|{~iHeAIa+>d5q1pJnon4C3!w^R8CB;ltuHp%jJ^ixe~9-=Jl5}Z=l5T_b-*Q z7B43dyhd_N@;tw3mi%RwwGc-orFFBEmfA!tk(5b!UJ|wu`m9Qc^?9B~>n$l=VG}VR zE5i8k8e72i9+P@llxijRce&)5d{nZ}54>fHPrcUp4oZKRf>}Jr8`B(%KOp5FN?x+; z_A{rvuH0Sl2H7td=k>Ex-yK`G-mEoZ74;fzQ>Z1>TnV%Sm`XPyYqyOZVcu8ZoXbyX z+w)|fpzreBB2KA2hxUoglw8)6=hNJOXNv2su=I)JW&4HFp8My6(h>8Or3-PrWlw0W z)wFy*_ewt`p=*QY-^wtRR%5+0s8wiTaJ?T!BtC${w*-uGMcvKF&sBv6f~3~W!g6g< zV@=?%0pJsz_^nk&NQ%@TUDzeq8nkM>RvE`{7)M)$hO$5eW-m|{Dyo0Ef3<%Rotd&g zL9ULF0Im$*I-&Y+uDhjfQ(fnxEm!)`>D2~NSGT!NMJv=?Cps5dMsT!mc7+=^@@43$ zqM5XnkNorSYwaze6Agu$@`v+rV=&)@<@@@EbwXH+&qI6dh1hd_97}bxq6R|kt2Xa! zXeb;~1LlAai^i2zmhY>p`4-7c(hT)MBt#5{Dw^>7NvhD7Gm}#_;AQFRDWP-~+M0Ym zI1zJw+^f{z3dL6gj9z_wszNeTg>aWsKc{@bIx!T$-A=thV$-74#KCInEhJO%crw@2 zPb>I?t)aEeO?~+SZEMgXdo}Q_R(@+si+z1+!L(V(7;XJV#>gf6z{YZY18w#u3N6^L z1$Vb(3Nm6ik3_+!Rb^u-n1_o5=>dJ3Ej`8@YZX7)zysec22ulri%_bJ;>B zp3L;auQ>o7g1)PhllC4=)KrMi^M=~L6Cwbj+qi{=egRmM?w>{fkA^ou3 zDBqCS@DorK7Xt5ta;mGi2k?HLN?aA={NQs4RNQlF%MZvYfr=ea{Jfn)sUy!8{9LZY z=LmjYRpPaRpL3P?T*1%NO8m0&bGH)5Q{HjkWSJ`Jg;o`xC&E>6e|f(e`yi@{`GVWC z5{DDbiP(8nEGX}Ta!OU~;CZmB{vyHSqe}h7g2zRb_!3d=d8>-c1@B9#)W^L!>_qIm zicyYM6~9uftBUhztE=5p*Xe@8CR<2|EHGDqG|Pi0l0$Ew7VbvPU^e+Gp#ff zRj!MF0aa*J9VYoydIiyUW-ak-z1Z=0)tYg2B^xo=tc^!~p^ z`r*xXJipm0@u#JKp6AfFssOGd_w}-j^nKIs8~ddnUaZOUmxC5wu3kCw6{#PPC&aho zp&9hQ37qQVzOKIqTq}E>%FuG!1sJIDxSS;?38&yoBOV9;1~|oEll8H_-N5K9jsW`q z#xOFD^tjaTme&i9*Ixln`tG>BCH2?KIJZh)v`=*b&Z{|W16-dErT$5&Por5Y`Rwy@ z*QXx1CRLo|I^ZjvfXuf8r}KS6`seoIp#(+>d9#p6V9+?V%~3bgdLM0c%wv;dJgfJo zvc0jC9>*Xiug3~QqA!~sOc|yT58bqOV{>&S+G3g1W4T=Hux@0`++mT(#nOfzFQn6l zVdCI)8st={4j8Fa7Ili12neG= zy(20;M7Qk``i`#M?U62h_xA03J9_kA4gnq2r&z+YH=mbotWB+^kvH{2v7AU3QszArQ|x8sh|(t4sykOJ_sUjQ)$&L& zFq2u#Lqqw)X*1RfYUXS@z&Xt0jNG6IWiSv9VMraaM()8RMy?hVY3~f0v3_C624eXE z5sDwqz@JUcoGm$Ir6D+q<2JY&*N{V z4Nhg``M$>R24tM}JWgk-v7)4I`)$BKz&j!?pU3k|xqN<4LE{Ez+64wr;d1?X+|Tq$ zsZ94pI(N3`_g%LEqh}VE&+`MOMvklul@J$2y0 z7*l?~%KGl}|ADkG7o$l{Nf%3&iQE1e2q=DR@BV)a8pk`6+x~e7o%THcV_M6Or4x=D z`}`F$)W><;$Kz`L-wU@s^Gtsa+xZTAo`;+d0z_gxo15Yp{|f}v_qco>@ALnP@c)N! z|71IE$46mH=g;;$KOLhNYeEb;+KaGMZMLZ>&qOW$4A${FlmmGqnu1nOi7+h}~4%5RKiQ17M?mv8Ap9_rp4zlGmL9g_Yx?Rq>-nNwH RJk{;PTWpPeE&~@U{td>B&JF+o diff --git a/src/entry.c b/src/entry.c new file mode 100644 index 0000000..b2119d0 --- /dev/null +++ b/src/entry.c @@ -0,0 +1,3 @@ +int main(void) { + __rayoko_main(); +} diff --git a/src/parsers.zig b/src/parsers.zig index 81c83cb..7fa359b 100644 --- a/src/parsers.zig +++ b/src/parsers.zig @@ -464,7 +464,13 @@ pub const Parser = struct { method = try self.parsePreMethod(); } - const name = try self.consumeSingle(.Identifier); + const orig_name = try self.consumeSingle(.Identifier); + + const name = if (std.mem.eql(u8, orig_name.lexeme, "main")) blk: { + break :blk try self.mkToken(.Identifier, "__rayoko_main", orig_name.line); + } else blk: { + break :blk orig_name; + }; self.setErrContext("function {}", name.lexeme);