From 7645cdc5e3635623f89042d80d4dfd5dd4a95dda Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Fri, 24 Jan 2020 09:09:30 -0500 Subject: fixed operator precedence for as --- parse.c | 2 +- test.toc | 25 +------------------------ 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/parse.c b/parse.c index 54a6bc5..1ac882e 100644 --- a/parse.c +++ b/parse.c @@ -912,7 +912,7 @@ static void fprint_expr(FILE *out, Expression *e); #define NOT_AN_OP -1 /* cast/new aren't really operators since they operate on types, not exprs. */ -#define CAST_PRECEDENCE 45 +#define CAST_PRECEDENCE -10 #define NEW_PRECEDENCE 22 static int op_precedence(Keyword op) { switch (op) { diff --git a/test.toc b/test.toc index 0d1e239..33cd6ad 100644 --- a/test.toc +++ b/test.toc @@ -1,34 +1,11 @@ -// io ::= pkg "std/io"; -// main ::= fn() { - // io.puts("Hello, world!"); -// }; -<<<<<<< HEAD -foo ::= fn(bar :: int = #foreign "X") { - -}; - -stdout :: &u8 = #foreign "stdout"; -fwrite :: fn(&u8, u64, u64, &u8) = #foreign "fwrite"; - -puts ::= fn(x : []char) { -// NOTE: removing brackets here causes error! this shouldn't happen! - fwrite((&x[0]) as (&u8), 1, x.len as u64, stdout); -}; - -main ::= fn() { - puts("Hello, world!\n"); -}; -======= stdout :: &u8 = #foreign "stdout"; fwrite :: fn(&u8, u64, u64, &u8) = #foreign "fwrite"; puts ::= fn(x : []char) { -// NOTE: removing brackets here causes error! this shouldn't happen! - fwrite((&x[0]) as (&u8), 1, x.len as u64, stdout); + fwrite(&x[0] as &u8 as &u16 as &u8, 1, x.len as u64, stdout); }; main ::= fn() { puts("Hello, world!\n"); }; ->>>>>>> 3fa3c17a12cb52edbcc9890cad59d610e0360f90 -- cgit v1.2.3