From d8b678356ea9653e58b55c102f9901b677ff22bd Mon Sep 17 00:00:00 2001 From: Bob Nystrom Date: Sun, 18 Jan 2015 10:20:13 -0800 Subject: [PATCH] Raise precedence of "is". Fix #119. --- src/wren_compiler.c | 2 +- test/is/is.wren | 3 --- test/{grammar.wren => precedence.wren} | 4 ++++ 3 files changed, 5 insertions(+), 4 deletions(-) rename test/{grammar.wren => precedence.wren} (87%) diff --git a/src/wren_compiler.c b/src/wren_compiler.c index 2b615da6..28209472 100644 --- a/src/wren_compiler.c +++ b/src/wren_compiler.c @@ -1311,8 +1311,8 @@ typedef enum PREC_LOWEST, PREC_ASSIGNMENT, // = PREC_LOGIC, // && || - PREC_IS, // is PREC_EQUALITY, // == != + PREC_IS, // is PREC_COMPARISON, // < > <= >= PREC_RANGE, // .. ... PREC_BITWISE, // | & diff --git a/test/is/is.wren b/test/is/is.wren index 2a4765c9..717bf1b6 100644 --- a/test/is/is.wren +++ b/test/is/is.wren @@ -28,9 +28,6 @@ IO.print(new Fn { 1 } is Class) // expect: false IO.print("s" is Class) // expect: false IO.print(123 is Class) // expect: false -// TODO: Non-class on RHS. -// TODO: Precedence and associativity. - // Ignore newline after "is". IO.print(123 is Num) // expect: true \ No newline at end of file diff --git a/test/grammar.wren b/test/precedence.wren similarity index 87% rename from test/grammar.wren rename to test/precedence.wren index cca6ec4e..e14b110c 100644 --- a/test/grammar.wren +++ b/test/precedence.wren @@ -22,6 +22,10 @@ IO.print(false == 2 <= 1) // expect: true // >= has higher precedence than ==. IO.print(false == 1 >= 2) // expect: true +// is has higher precedence than ==. +IO.print(true == 10 is Num) // expect: true +IO.print(10 is Num == false) // expect: false + // Unary - has lower precedence than .. IO.print(-"abc".count) // expect: -3