From e02295795b03dffd7814296c39a68c5a93fbab91 Mon Sep 17 00:00:00 2001 From: EBoost-Chair Date: Sun, 4 Mar 2018 13:24:28 +0800 Subject: [PATCH 1/2] 1.12 --- 1.10patch1.tar.gz | Bin 1538 -> 0 bytes Example.bas | 15 ++++----- Hi.bas | 5 +++ ReB.rb | 5 ++- ReB.tar.gz | Bin 0 -> 1738 bytes core/protrol.rb | 2 +- modules/kernel.rb | 82 +++++++++++++++++++++++++++++++++++++++++++--- 7 files changed, 95 insertions(+), 14 deletions(-) delete mode 100644 1.10patch1.tar.gz mode change 100644 => 100755 Example.bas create mode 100755 Hi.bas mode change 100644 => 100755 ReB.rb create mode 100755 ReB.tar.gz diff --git a/1.10patch1.tar.gz b/1.10patch1.tar.gz deleted file mode 100644 index 97ed2e5b0faa45cbca9c363ffe5e82fc290018c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1538 zcmV+d2L1UTiwFSBH-cIK1MOK^Z`(K!&a-|6qxwMx99gn#rzloE5_ES9Y`aC=?Ms>( zl*~3tWyvL}9NRX(eR=Azoj56Cy9@9uijcz@a)#s_l#kGXi=&;j!ebcr`{FOd{9kY2 zdpmy6>wEnm7zV+P=X-;Sm62o zFz6fq-vr*`B%|Q(i{0zYwGQ$;1+c??(6!`93+mRN31=A<5oky_X<9FKbwv9K~SqS=TSYw6%54>Jb`Tuah{6Fvllm9n@CHWs+&P4LB z4aGS|-5Jg)&eNr12;&@!kqP>=m^VogpSD>-Wy!z$QAC3-2(JMrGb#WuteP%KlNjwf zUT4^r6fgXY==dC_1#+OKxilXWNA}pXj1Z@gklk=Z+5Ddcoz*HL@<2~?QA&`aw?qh8KwhiQ@DJy_NsLPX%UE0(A z_@O1{;T*^QiCQ>frHZZFZk%T^q>f_IYN~D+S#_mb?;$=GL*B_rZ9{9q+JqxCt(#C< zmLfE}-?>44N{Kop!sQ+4)t6%F5CRYR|QvukLnZZ#~uK z38*!y4bn^T%z2MpzVQa>YY^Hz3F}MKR6qnQs_9iVzdEZq6%Z0(q%Cz9O%}ug6Ehgxh4r#(+#65&sGkLb2w&X(w?7EY?6OOPT z%s5K(_zQo}H0`M0gEu)-rh0+FrWw-S@Y@foCdFh9r;|!X$9*ou|65DbgHq-mNrDIb z;~~G>Eq!i_URbkb(QULD_2i=TfWKZ+xnub0-x_}81%0>xv?_(&5P;^?SQ>)ncy0

50>se#f_n%>3fB)(2_kw-){_C-Kpn3mo z0=GT#c&@H0nMQgBDq^mPO1(11@~W~bdGuTy7|{Y}vg}lqPqPYP12-}ij|{m0wqe16Y2{=XS4{g89Wi(U}| z%2FYeKj`r5o1qIrSvQ|fVa7>07LxM1FOyV`pe0#1ff=nN<-=o{qKCJBV*1A_T*|AS#Lm;VFf{~JP!&`DlUmt1ABe2a+} zFDQM8Wg(tNlPsYyP5wm=ls@!N_9e?NGU-Gzl|2_DV%*Y+jmye>hc2mPlkeQ;icR#GXF0%OHcD+{*0<-Zi>ioUh1vC{v8{(SvEFu(t7 z29I{T1;O1Y$-20RuB=C(x(uxIT0Rc}In9f70t$kdHzx$p91wWUI|!UZOgdzS;smCm z16UQnD%gm)Y=(m?@K>Ip^lJPXX213J2mQy7_t}|0|N7O9^XXHor9LC_PoMJdxTNUs zY2i2fI<~{7c8C4DzUHlK-Xgs9h_^D{`jGJ^6-{dY*!JEU7#J8B7#J8B7#J8B7#J8B o7#J8B7#J8B7#J8B7#J8B7#J8B7#J8B7(6uo1N8G?!~jqL0OlnG1ONa4 diff --git a/Example.bas b/Example.bas old mode 100644 new mode 100755 index 168ca13..66b3912 --- a/Example.bas +++ b/Example.bas @@ -1,12 +1,11 @@ -Print Ow!~n. +Print Ow!. Bool a,true. -Print $a. -Print Hi~n. +Print Hi. +Sub Hi2: + Print No! +End. Sub Hi: - Int a,1 - Print Hi~n - Print $a - Bool a,true Print $a End. -Call Hi(). \ No newline at end of file +Arg a:$a,b:c. +Call_If $a,Hi. \ No newline at end of file diff --git a/Hi.bas b/Hi.bas new file mode 100755 index 0000000..a37c5aa --- /dev/null +++ b/Hi.bas @@ -0,0 +1,5 @@ +Sub s: + Bool a,true + Print $a +End. +Call s(). \ No newline at end of file diff --git a/ReB.rb b/ReB.rb old mode 100644 new mode 100755 index 41d88f0..cb6ce86 --- a/ReB.rb +++ b/ReB.rb @@ -1,12 +1,15 @@ require "./modules/kernel.rb" if ARGV[0] == "-v" - puts "ReactBasic 1.10 patch1 (2018-2-11) By RBasicTeam" + puts "ReactBasic 1.12 (2018-3-4) By RBasicTeam" exit() end if FileTest.exist?(ARGV[0]) != true $NoFileErr.throw(ARGV[0]) end BasicScirpt=File.read(ARGV[0]) +if BasicScirpt[-1] == "\n" + BasicScirpt.slice!(-1) +end Basic=BasicScirpt.split(".") puts "==ReactBASIC==" Basic.each do |i| diff --git a/ReB.tar.gz b/ReB.tar.gz new file mode 100755 index 0000000000000000000000000000000000000000..d28720f64f8be734bd67cf0850e7f59167ca5631 GIT binary patch literal 1738 zcmV;*1~vH~iwFREfSXzX1MOPrZ`(E$&u9G=wBipo;K-5>DGR0^39_}o+7)rvFG*@p zGLtBkB}Ye&HO=2Xp1Q2s&K5iEz#mYAeB>h^#doqkLi<|eY^@bKhB+9}zZliO`p~kr zjDBxmTDorZ%`M%~hvr}l=<5}WA&nCl0k9Q?VX|o6vhkl35xPpf2mw{=PQyv+qqzG8 zMFH}$R;Y@123{Zi{^?jh1-1>;ooiJAV3sB^P>&FFlYJO_E-*Bs2Uuj|ff)2fFo=R$D>Agsk|R=cA7(PBcu8lb0>NLmM<~kVGlM49)i;nROUNT5=JE zH`yGr22kkYBiD;&iB0Bd5rUI^4&I|M<9Nql(w_uGmcob@`<{y$tsR5OMu+Uugqe>e zS2eY*uv6PMJNN6++XLHHxhNW@U4Tgl?!9}wMgD2VA7B)tmdDm7OJwUD1{1u%b6@|~ z8&7j!yxu*Q*}py^?*+W#gnN*xgIDPTVgeE>Vm{ys!rkbovsu##%Z z0rY(kx7yls%PR5oIJ||^8TO#-bOOul-x!+I{*AtFSw;`rzhMq^Y5$u5Gxa}j8k$mY z0h+?-I65fAL%i{Nd%`We4;#!cuz|g*yLcU)1Gv|O9cRyF&SU)c43Bp3V$XeAi7Muj zzBTNz#Qt&6H?sI|_V7IH2uxGj|0YnA|D)R(P5ui*ZWy8NEDDn-^lQgZ6onBTnV_@z z1UOFJi#E=Tac18AOx;Bn*bjh^F%m9SrD7t-)lJPb4Q`CZtwvDM;5{_|N zLi>1OOmKY|#|?Xw;2q8>9ak&VIYFIvksl*YZ;tM!G?)zrPB@BqCT#HY$z&?j+&jP`}w3v*C8{GjZ?m{gR2fzv^6&j zT$r@@6d@+>+Ky5by7>u4$8<65tIHS9XQN`v}b*ce#*U zq{lBZCj2d^m)1<3RaP9d%M?=9{YygmQug?zG_fH02h6WU$cZE0f4+D^t(21lm$p}x zrmQ5FxrUT=q@X321r-65!*)b(PQja_G0~UHin8Qul$HMNY9>8cboR1>^6#4~huDhb zDNkWw!b)tFq&(t#m4)E%5oOO&nsEljNcn^C#HTE%lMCwPg8otv)LH5Y^yQvFFM9$# zyXTTWaH~E*u;DFT@m0Y6J?W4($kmQmg60LTpH9%rs`sHro!g3Wnky!|3tgP?Bmio= zG^kCGj}p{UtMqx3AgBhKvEzsC7xLaBX5R(5lL~5P2#Sa;@;++UEwVAu~rD2Y5$u+?L+PXDFCPo$byK?e$heH zH$XQy?&RSmfKz0vxEoHVFd(EbqMS_K>o~a~2u|GfV36dTEWN7ZPKKBJYGv+V->GxP>|9!JxiT{0R{~JOxP9|ZRXz^X(vMile{~)s=9EC_6 z^#U(}zV|n3L1sgL1z&>jCSXRyLfI=iLdO*m*a$C+cjz`@(^$>_icb@LT#2(D`F#|g zTPcyU#poU_8q$lqQo`KCd_o~Dc2j#|yeq>f9;YAXf(5dB@5_5MP9;KLKfsur+%zNJ0?9YtljB8b)y^o*~zRKJ5UU z1>g+Ui8Z{!{vG%u43K{}eg}hJd)9EUyKCV)e|2?*tL^CvrOBUE$)gYZJI*NLZPEU! zKDes=0@w2$^pnj7!FCifzAt50lAt50lAt50l gAt50lAt50lAt50lAt50lA@TpjKL{mj;{Z?q0B^5fJOBUy literal 0 HcmV?d00001 diff --git a/core/protrol.rb b/core/protrol.rb index 9d2a3c1..252e7f3 100644 --- a/core/protrol.rb +++ b/core/protrol.rb @@ -5,4 +5,4 @@ $Var={} $Sub={} $S_Var={} -$Sym_Table={"~c"=>",","~~"=>"~","~s"=>"#","~n"=>"\n","~t"=>"\t"} \ No newline at end of file +$Sym_Table={"~c"=>",","~d"=>".","~s"=>"#","~n"=>"\n","~t"=>"\t","~f"=>"~"} diff --git a/modules/kernel.rb b/modules/kernel.rb index f9088e2..15ea00e 100644 --- a/modules/kernel.rb +++ b/modules/kernel.rb @@ -6,7 +6,7 @@ def ReactBasic_Parse(such) a=such a.slice!(0,6) a0=get_value(a) - a0.to_s() + # a0.to_s() if a0.class!=String print a0 else @@ -26,6 +26,8 @@ def ReactBasic_Parse(such) end $Var[list[0]]=get_value(list[1]) elsif /^Rem/ =~ such + elsif /^Exit/ =~ such + exit() elsif /^Sleep/ =~ such a=such a.slice!(0,6) @@ -33,27 +35,62 @@ def ReactBasic_Parse(such) sleep(a0) elsif /^Sub/ =~ such a=such - a.slice!(0,5) + a.slice!(0,4) a.slice!(-1) a.slice!(-1) a.slice!(-1) a.slice!(-1) list=a.split(":") $Sub[list[0]]=list[1] - elsif /^Int/ =~ such + elsif /^Arg/ =~ such a=such a.slice!(0,5) list=a.split(",") + list.each do |i| + j=i.split(":") + if /^\$/ =~ j[1] + b=" " + b.concat(j[1]) + j[1]=b + end + $S_Var[j[0]]=get_value(j[1]) + end + elsif /^Int/ =~ such + a=such + a.slice!(0,4) + list=a.split(",") $Var[list[0]]=list[1].to_i() elsif /^Bool/ =~ such a=such - a.slice!(0,6) + a.slice!(0,5) list=a.split(",") if list[1]=="true" $Var[list[0]]=true else $Var[list[0]]=false end + elsif /^Call_If/ =~ such + b=such + b.slice!(0,9) + list=b.split(",") + if /^\$/ =~ list[0] + b=" " + b.concat(list[0]) + list[0]=b + end + c=get_value(list[0]) + if c=="true" || c==true + if $Sub.include?(list[1]) + a0=$Sub[list[1]] + list=a0.split("\n ") + list.delete("") + list.each do |i| + ReactBasic_Parse_block(i) + end + else + $NoSubErr.throw(list[1]) + end + end elsif /^Call/ =~ such b=such b.slice!(0,6) @@ -104,6 +141,43 @@ def ReactBasic_Parse_block(such) end print a0 end + elsif /^Arg/ =~ such + a=such + a.slice!(0,4) + list=a.split(",") + list.each do |i| + j=i.split(":") + if /^\$/ =~ j[1] + b=" " + b.concat(j[1]) + j[1]=b + end + $S_Var[j[0]]=get_value(j[1]) + end + elsif /^Call_If/ =~ such + b=such + b.slice!(0,8) + list=b.split(",") + if /^\$/ =~ list[0] + b=" " + b.concat(list[0]) + list[0]=b + end + c=get_value(list[0]) + if c=="true" || c==true + if $Sub.include?(list[1]) + a0=$Sub[list[1]] + list=a0.split("\n ") + list.delete("") + list.each do |i| + ReactBasic_Parse_block(i) + end + else + $NoSubErr.throw(list[1]) + end + end + elsif /^Exit/ =~ such + exit() elsif /^Int/ =~ such a=such a.slice!(0,4) From 6a93a3a9bd00852ed0e1e2e4907235ce3ef770bd Mon Sep 17 00:00:00 2001 From: EBoost-Chair Date: Sun, 4 Mar 2018 13:24:58 +0800 Subject: [PATCH 2/2] 1.12 --- ReB.tar.gz => ReactBASIC_1.12.tar.gz | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename ReB.tar.gz => ReactBASIC_1.12.tar.gz (100%) diff --git a/ReB.tar.gz b/ReactBASIC_1.12.tar.gz similarity index 100% rename from ReB.tar.gz rename to ReactBASIC_1.12.tar.gz