Files
wren/test/is/is.wren
T
Bob Nystrom 4a8cf3a7bf Move newline handling down into parser.
This lets us make it a grammar feature and not a lexer trick.
Newlines are explicitly ignored in some parts of the grammar. This
lets, for example, things like "|" ignore the newline when used as
an operator, but not when used as a parameter delimiter in a block
argument.
2014-04-04 07:51:18 -07:00

36 lines
1.2 KiB
Plaintext

IO.print(Num is Class) // expect: true
IO.print(true is Bool) // expect: true
IO.print(new Fn { 1 } is Fn) // expect: true
IO.print(123 is Num) // expect: true
IO.print(null is Null) // expect: true
IO.print("s" is String) // expect: true
IO.print(Num is Bool) // expect: false
IO.print(null is Class) // expect: false
IO.print(true is Fn) // expect: false
IO.print(new Fn { 1 } is Num) // expect: false
IO.print("s" is Null) // expect: false
IO.print(123 is String) // expect: false
// Everything extends Object.
IO.print(Num is Object) // expect: true
IO.print(null is Object) // expect: true
IO.print(true is Object) // expect: true
IO.print(new Fn { 1 } is Object) // expect: true
IO.print("s" is Object) // expect: true
IO.print(123 is Object) // expect: true
// Classes extend Class.
IO.print(Num is Class) // expect: true
IO.print(null is Class) // expect: false
IO.print(true is Class) // expect: false
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