refactor: extract IO class into separate module with wrenLoadIOLibrary and wren_io.c

Replace monolithic corelib.wren with per-class builtin/*.wren files and generate_builtins.py script. Move IO class definition and its native writeString_ method from wren_core.c to new wren_io.c, adding wrenGetArgumentString and wrenDefineStaticMethod to the public API. Update Makefile target from corelib to builtin and remove generate_corelib.py.
This commit is contained in:
Bob Nystrom
2014-02-04 16:44:59 +00:00
parent 36aea2508c
commit 99eac12fd3
13 changed files with 182 additions and 96 deletions
+7
View File
@@ -0,0 +1,7 @@
The Wren scripts in this directory get converted to C string literals and then
inserted into their respective .c files so that the interpreter can load them
directly without having to do any file IO.
The script that does this copying is `script/generate_builtins.py`.
You can invoke using `make builtin`.
+11
View File
@@ -0,0 +1,11 @@
class List {
toString {
var result = "["
for (i in 0...this.count) {
if (i > 0) result = result + ", "
result = result + this[i].toString
}
result = result + "]"
return result
}
}
+12
View File
@@ -0,0 +1,12 @@
class IO {
static print(obj) {
IO.writeString_(obj.toString)
IO.writeString_("\n")
return obj
}
static write(obj) {
IO.writeString_(obj.toString)
return obj
}
}