Files
wren/test/language/precedence.wren
Bob Nystrom 58e4d26648 "IO" -> "System".
Get rid of the separate opt-in IO class and replace it with a core
System class.

- Remove wren_io.c, wren_io.h, and io.wren.
- Remove the flags that disable it.
- Remove the overloads for print() with different arity. (It was an
  experiment, but I don't think it's that useful.)
- Remove IO.read(). That will reappear using libuv in the CLI at some
  point.
- Remove IO.time. Doesn't seem to have been used.
- Update all of the tests, docs, etc.

I'm sorry for all the breakage this causes, but I think "System" is a
better name for this class (it makes it natural to add things like
"System.gc()") and frees up "IO" for referring to the CLI's IO module.
2015-09-15 07:46:09 -07:00

42 lines
1.1 KiB
Plaintext

// * has higher precedence than +.
System.print(2 + 3 * 4) // expect: 14
// * has higher precedence than -.
System.print(20 - 3 * 4) // expect: 8
// / has higher precedence than +.
System.print(2 + 6 / 3) // expect: 4
// / has higher precedence than -.
System.print(2 - 6 / 3) // expect: 0
// < has higher precedence than ==.
System.print(false == 2 < 1) // expect: true
// > has higher precedence than ==.
System.print(false == 1 > 2) // expect: true
// <= has higher precedence than ==.
System.print(false == 2 <= 1) // expect: true
// >= has higher precedence than ==.
System.print(false == 1 >= 2) // expect: true
// is has higher precedence than ==.
System.print(true == 10 is Num) // expect: true
System.print(10 is Num == false) // expect: false
// Unary - has lower precedence than ..
System.print(-"abc".count) // expect: -3
// 1 - 1 is not space-sensitive.
System.print(1 - 1) // expect: 0
System.print(1 -1) // expect: 0
System.print(1- 1) // expect: 0
System.print(1-1) // expect: 0
// TODO: %, associativity.
// Using () for grouping.
System.print((2 * (6 - (2 + 2)))) // expect: 4