diff options
author | chai <chaifix@163.com> | 2018-06-01 08:31:47 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-06-01 08:31:47 +0800 |
commit | 6a4f1a224273118a5429094ddd83420b7d69b28d (patch) | |
tree | f96c714cda12af6300178cbe31880d17804802de | |
parent | a558be5f3d72775bd06c3814e002d355402a7acd (diff) |
更新示例
-rw-r--r-- | lls/lls.c | 16 | ||||
-rw-r--r-- | lls/lls.h | 13 | ||||
-rw-r--r-- | llsVM.c | 17 | ||||
-rw-r--r-- | test/hello.lls | 2 |
4 files changed, 44 insertions, 4 deletions
@@ -24,7 +24,21 @@ typedef struct } value; } lls_Value; +/* ָ,֧255 */ enum { - + MOVE = 1, + ADD, }; + +typedef struct +{ + int ins; + void* operant; +} lls_Ins; + + +int lls_bindfunction(lls_Context* C, const char* fname, lls_Func func) +{ + +} @@ -1,16 +1,23 @@ #ifndef __LLS_H #define __LLS_H +typedef int(*lls_Func)(); + +typedef struct +{ + const char* name; + lls_Func func; +} lls_FuncMap; + typedef struct { int top; + lls_FuncMap* funcMap; } lls_Context; lls_Context* lls_newcontext(); -typedef int (*lls_Function)(); - -int lls_bindfunction(lls_Context* C, const char* fname, lls_Function func); +int lls_bindfunction(lls_Context* C, const char* fname, lls_Func func); int lls_bindvariable(lls_Context* C, const char* vname, void* variable); int lls_bindset(); @@ -0,0 +1,17 @@ +#include "lls/lls.h" + +int l_print() +{ + + return 0; +} + +const char* source = "print(\"hello, world\")"; + +int main(int args, char* argv[]) +{ + lls_Context* C = lls_newcontext(); + lls_bindfunction(C, "print", l_print); + lls_executesource(C, source, strlen(source)); + return 0; +}
\ No newline at end of file diff --git a/test/hello.lls b/test/hello.lls index 86e6a6b..05c8183 100644 --- a/test/hello.lls +++ b/test/hello.lls @@ -100,6 +100,8 @@ func test() arr = {1, 2, 2, 3, 5, 2}; /* 字符串拼接 */ str = "hello " + "world"; + f = {}; + } func main() |