From 31472908ecda1d32260e01ca04c39fcd3a490b42 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 28 Aug 2020 23:53:38 -0500 Subject: [PATCH] weird bugfix with operator precedence --- core/builtin.onyx | 15 +++++++++++++++ core/string.onyx | 4 ++-- onyx | Bin 582568 -> 582568 bytes progs/poly_test.onyx | 45 ++++++++++++++++++++++++++++++++++++++++--- src/onyxparser.c | 4 +++- 5 files changed, 62 insertions(+), 6 deletions(-) diff --git a/core/builtin.onyx b/core/builtin.onyx index 3224e303..022be1df 100644 --- a/core/builtin.onyx +++ b/core/builtin.onyx @@ -103,6 +103,21 @@ array_contains :: proc (arr: ^[..] $T, x: T) -> bool { return false; } +array_pop :: proc (arr: ^[..] $T) -> T { + arr.count -= 1; + return arr.data[arr.count]; +} + +array_average :: proc (arr: ^[..] $T) -> T { + sum := cast(T) 0; + for i: 0, arr.count { + sum += arr.data[i]; + } + + return sum / cast(T) arr.count; +} + + context : struct { allocator : Allocator; temp_allocator : Allocator; diff --git a/core/string.onyx b/core/string.onyx index 0cd56794..c56d6f6e 100644 --- a/core/string.onyx +++ b/core/string.onyx @@ -197,7 +197,7 @@ i64_to_string :: proc (n_: i64, base: u64, buf: Buffer) -> string { return string.{ data = c + 1, count = len }; } -string_builder_add_u64 :: proc (use sb: ^StringBuilder, n: u64, base := 10l) -> ^StringBuilder { +string_builder_add_i64 :: proc (use sb: ^StringBuilder, n: i64, base := 10l) -> ^StringBuilder { buf : [256] u8; s := i64_to_string(n, base, Buffer.{ cast(rawptr) buf, 256 }); return string_builder_add_string(sb, s); @@ -216,7 +216,7 @@ string_builder_add_bool :: proc (use sb: ^StringBuilder, b: bool) -> ^StringBuil string_builder_append :: proc #overloaded { string_builder_add_string, string_builder_add_cstring, - string_builder_add_u64, + string_builder_add_i64, string_builder_add_bool, } diff --git a/onyx b/onyx index 40d74102c540f67517a5b4d90784215375394f1d..c9f25d80b16920f3d678788c514c1988f927cad7 100755 GIT binary patch delta 2234 zcmYLK3s6*L6ux)=y>~%FVZl`wOxV?3xhSZhu3Cd45~K}C4_8g2$pDX)VX81^x#C#(vKCzUhX4D$(oc{;inLBs>Z_j@o-}%nDr49Dd z276hPAtGqagt@Q$+I%ne!M#U^&mXXzK6iOh#SKGpcF>~XOiKS$DX2(zx%XK4yN@!8 z3p0vkd<-=i#jMRLFMwg?%!V&_Idg?AHbpR1k__G~txKdV$xC2kIqNSkgNAYzBd>;= z*>*o;i?gb0x=-6OtsmA#EqKrMXQ5#~UPxd5?RXiSH0@O38>LpvB{S z<~I&Z9mj!#9G|OELq+22&))aiMSjGWtFU-91kZeS&VgS1eGo9+p zP|cw{2cNFFt|BlEPF1n~VcDW^YV^@-2)_s+)mXr5kXX%P!rxMRnw^|h^goYyw85Ne zW(%_k9*OS|YMdRus>bAo!XCV4cXc{-3#TJH&zNj{EQRp{t6{bzzcN~+iOdvVLA*{e zH)25MEzz}?P9v~iu^!<7GTeFxfi5tm1`|98dJT(~8(~8Yw&M~s5cm)Lfv50C%9CdD zq9hd@J{BF(L$yS45;o|V$PbkGc9`lzeQj5U2o1Xj&zzf&urj`l>nAH=!MpP$xm*bq z^N_2V@8h)!C3qp%-%M%9o^!!i^|PZtS9&s__*^eR&>6Olv@OzTI_O>ae#2{^9T-#jA?>{ zGLN>S2@Tg8yLq?=Tm%nE#$P}a29(#qgIeY=Z!$(c7*3Sn)UF_zY=)t`nIqM2>}d3A zUF-8V;`PS9f1)8J$i;HZXc2x}JX+;-G-xu0rE+ph^n|x(Etcey@bzxi-}bZ7Dhx|? zDelXB!QF%o3KQl^IPh06V%SZijku!#^GTk!!Rkl-J%q7-Tn-H0@Z(&ELZP1xMoIYm zD6QE>O-L(U8(_iJHOJV!4Qs`9sZEc?^ZUl`lAX?O?G`cbF?Lh=IY)}$M6=QgQFS=d zt!$8B5ho$H74fT#Ymj-@>RKM@;2OMMhh6Gzw0!O&hgq6_0pUIXb(nf=C!8+eL2wLV z^GE@scyxh33u-;Cn+XtG&-%!R;5j_G4zb~)2)7n;5q%zJp?7$U9BpV27IBnyr$tEL z05vE%0tJvpeFE5sx5oh+)gb_VaQ>`?h_i`QGvBUU!s}Sae5GsoIC%0mj0=Kzt~a3n zEuijU(TP7YOFIwa7GbMcxCoo09iZXb%glniT+ASo=5G>A*@NUwVtl^&qSlGjY!anL9)GhOv;_7#J6~Hkr&^tb2f$M9d{x@OCq)AOhCo?P(F6 zd1H4{Xj}AnLezN@frW+59nG5^clA}FSL_e}X-llgT;Io(QF<$TV1Us?)mexPFk9+b zL%e7WF5F*8L>CO)A>S@Rlwflwfcs|z>FKVaqt|1!<&;7@d=S9he+{+Y~hUi3O;JhjQghNZ~YG}Sz7J@ delta 2234 zcmYLKdr%c+6yLqy?q0Crbs zBd;X~vlKIp8O%VQB7*n`XMCiBfniF3`M^Z0KhiO$bG{Gs&g|@bzk9y(_?_Q5ThVT- zXtz~$ntUd&O1QhHY3ytFz9}5I-na2#a_nSh%}rCvY?m1cOiJINrq#r}F=nc~cTGlV zNk*xRkEtP}lnwgJ%i;NIX2n--HB0hZVfJB~B$=Gq`ltX|l0Ssq)htY24eiw|MBWUy zs#%m=2)+l|SWBVVmK8;|1ycCw4oQ;dK-xiOO`BtmnqiV8<~;AP$1f$^JS`)VfL@3F z#fu!6H=P5g9Qxon1ai!tSsb|Mkiz#}KqM0mps#6}=5X?b`PeflpG@(Y-U?MUEL`q^F1%*x*8^ zie5!@t_IIKbhaAe>(F{F7FzL|En&oIu5g+-a>it%BPdK0um)zG*rX2cqPnhM157N6NH9yWAhgmA*{|A#5N!;G4Fk}M3R40 zJ;gi}=#~d~ty*<0=K9N*CiGoJARk&9*;pfAjS&Tv8TL~*30G4^L0b&FlNyn)=Jmu6 zOU9LME>+#HjiXRg^x5a}yj*onLf6dsoe{I_eMv4FVE~ob*@FhfA~x6ReUj!1ksNb2 z#u<@0D=}~Um57(5AE&l$P`!lH{aCr?LX<`?`5pfVg-wTWE<)AVCwfVtAYssU2pNro z8}xbs+?r4j@HJ>VjEOfvogIx(QU9UeBZaLaBb;9&w$f>XPmWb!S<9cJOFP0Dbi zw-|cRKZrLg0kifI)YvDQ+z*9B8S}%L$)L61y2*fu78WG8!%RFSwX+0KM6T|34Sk+so@pa9aSPupNO-k!dVO&S(}5nHsV7;!d>YUbOOOL#jQp09Mh2nSEz!MGrZ=N1$C z-ve4J3y%MR`QGPYaz)r0<}JeJ=_hHpT9`#}SAZF0(fnn>+*Twni}Cs9i`pPkvzh1C zNt8jkp?A@@r~r1hqT=Sm39>I1j(LK-YYyg3UE?%8A|rU=4G<%<(eRKGt63 zhmrU9p+Ov^9!2KjSmX$Em+4+SbGw6qadGQ8WR}1@+IUICT)Z#dzDg>vz)rk9-!hUn zc4r!G3-6~yT_F+pFt5eQyxEc0-xPYq{_vmvu|F~w^n@}>Z{xEVAepG@hJZF^P3<;C zi`L-6JwqbuF>!}{ySPw-S4IHbKZ&HLyQbk@Ptn&=3PbQ|8}9xA*w==m@Bq%X;V8Jm kP#dd|J4(uqF?^JUvSaGW1leA)@PUet*0At_`K8