feat: add foreign method binding infrastructure with IO library integration

Implement the `WrenBindForeignMethodFn` callback type and `bindForeignMethodFn` configuration field to allow host applications to resolve foreign method declarations at class definition time. Refactor the IO library to use this new binding mechanism instead of the previous `wrenDefineStaticMethod` approach, adding `foreign` keyword support to the lexer and compiler. Introduce `freeCompiler` helper for cleanup, store module names in `ObjModule`, and update the VM to call the binder when processing `CODE_METHOD_INSTANCE` and `CODE_METHOD_STATIC` opcodes for foreign methods.
This commit is contained in:
Bob Nystrom
2015-03-24 14:58:15 +00:00
parent 80b24b50e8
commit a350d7c26a
11 changed files with 165 additions and 131 deletions
+5
View File
@@ -93,4 +93,9 @@ class IO {
IO.writeString_("[invalid toString]")
}
}
foreign static writeString_(string)
foreign static clock
foreign static time
foreign static read
}