refactor: convert IO from singleton instance to static class with metaclass native methods

Replace the global `io` singleton object with a static `IO` class, moving the `write` native from the instance to the metaclass. Update all benchmark, example, and test files to use `IO.write()` instead of `io.write()`.
This commit is contained in:
Bob Nystrom
2013-12-22 03:25:09 +00:00
parent 1a77a43fa0
commit 8bb1a94a25
119 changed files with 532 additions and 536 deletions
+10 -10
View File
@@ -1,31 +1,31 @@
// * has higher precedence than +.
io.write(2 + 3 * 4) // expect: 14
IO.write(2 + 3 * 4) // expect: 14
// * has higher precedence than -.
io.write(20 - 3 * 4) // expect: 8
IO.write(20 - 3 * 4) // expect: 8
// / has higher precedence than +.
io.write(2 + 6 / 3) // expect: 4
IO.write(2 + 6 / 3) // expect: 4
// / has higher precedence than -.
io.write(2 - 6 / 3) // expect: 0
IO.write(2 - 6 / 3) // expect: 0
// < has higher precedence than ==.
io.write(false == 2 < 1) // expect: true
IO.write(false == 2 < 1) // expect: true
// > has higher precedence than ==.
io.write(false == 1 > 2) // expect: true
IO.write(false == 1 > 2) // expect: true
// <= has higher precedence than ==.
io.write(false == 2 <= 1) // expect: true
IO.write(false == 2 <= 1) // expect: true
// >= has higher precedence than ==.
io.write(false == 1 >= 2) // expect: true
IO.write(false == 1 >= 2) // expect: true
// Unary - has lower precedence than ..
io.write(-"abc".count) // expect: -3
IO.write(-"abc".count) // expect: -3
// TODO: %, associativity.
// Using () for grouping.
io.write((2 * (6 - (2 + 2)))) // expect: 4
IO.write((2 * (6 - (2 + 2)))) // expect: 4