feat: rename IO.write to IO.print and add Unicode escape support in strings
Rename the IO.write method to IO.print, which now prints without a trailing newline, and add a new IO.print method that appends a newline after output. Update all benchmark, example, and test files to use IO.print instead of IO.write. Additionally, implement Unicode escape sequence parsing in the compiler's string tokenizer, supporting \uXXXX and \u{...} syntax with proper UTF-8 encoding for code points up to U+10FFFF.
This commit is contained in:
+24
-24
@@ -1,32 +1,32 @@
|
||||
IO.write(Num is Class) // expect: true
|
||||
IO.write(true is Bool) // expect: true
|
||||
IO.write((fn 1) is Function) // expect: true
|
||||
IO.write(123 is Num) // expect: true
|
||||
IO.write(null is Null) // expect: true
|
||||
IO.write("s" is String) // expect: true
|
||||
IO.print(Num is Class) // expect: true
|
||||
IO.print(true is Bool) // expect: true
|
||||
IO.print((fn 1) is Function) // expect: true
|
||||
IO.print(123 is Num) // expect: true
|
||||
IO.print(null is Null) // expect: true
|
||||
IO.print("s" is String) // expect: true
|
||||
|
||||
IO.write(Num is Bool) // expect: false
|
||||
IO.write(null is Class) // expect: false
|
||||
IO.write(true is Function) // expect: false
|
||||
IO.write((fn 1) is Num) // expect: false
|
||||
IO.write("s" is Null) // expect: false
|
||||
IO.write(123 is String) // expect: false
|
||||
IO.print(Num is Bool) // expect: false
|
||||
IO.print(null is Class) // expect: false
|
||||
IO.print(true is Function) // expect: false
|
||||
IO.print((fn 1) is Num) // expect: false
|
||||
IO.print("s" is Null) // expect: false
|
||||
IO.print(123 is String) // expect: false
|
||||
|
||||
// Everything extends Object.
|
||||
IO.write(Num is Object) // expect: true
|
||||
IO.write(null is Object) // expect: true
|
||||
IO.write(true is Object) // expect: true
|
||||
IO.write((fn 1) is Object) // expect: true
|
||||
IO.write("s" is Object) // expect: true
|
||||
IO.write(123 is Object) // expect: true
|
||||
IO.print(Num is Object) // expect: true
|
||||
IO.print(null is Object) // expect: true
|
||||
IO.print(true is Object) // expect: true
|
||||
IO.print((fn 1) is Object) // expect: true
|
||||
IO.print("s" is Object) // expect: true
|
||||
IO.print(123 is Object) // expect: true
|
||||
|
||||
// Classes extend Class.
|
||||
IO.write(Num is Class) // expect: true
|
||||
IO.write(null is Class) // expect: false
|
||||
IO.write(true is Class) // expect: false
|
||||
IO.write((fn 1) is Class) // expect: false
|
||||
IO.write("s" is Class) // expect: false
|
||||
IO.write(123 is Class) // expect: false
|
||||
IO.print(Num is Class) // expect: true
|
||||
IO.print(null is Class) // expect: false
|
||||
IO.print(true is Class) // expect: false
|
||||
IO.print((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.
|
||||
|
||||
Reference in New Issue
Block a user