From a558be5f3d72775bd06c3814e002d355402a7acd Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 31 May 2018 23:23:28 +0800 Subject: *init --- lls/lls.c | 30 ++++++++++++++++++++++++++++++ lls/lls.h | 22 ++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 lls/lls.c create mode 100644 lls/lls.h (limited to 'lls') diff --git a/lls/lls.c b/lls/lls.c new file mode 100644 index 0000000..e8f26ea --- /dev/null +++ b/lls/lls.c @@ -0,0 +1,30 @@ +#include "lls.h" + +/* value type */ +enum +{ + VT_UNKNOWN = 0, + VT_NULL, // null | | + VT_NUMBER, // number | float | + VT_STRING, // string | char* | + VT_BOOLEAN, // boolean | char | + VT_SET, // set | struct | + VT_FUNCTION, // function | void* | 内存中同样的函数不会存两份 +}; + +typedef struct +{ + int type; + union + { + float _number; + char* _string; + char _bool; + void* _struct; + } value; +} lls_Value; + +enum +{ + +}; diff --git a/lls/lls.h b/lls/lls.h new file mode 100644 index 0000000..5f190a2 --- /dev/null +++ b/lls/lls.h @@ -0,0 +1,22 @@ +#ifndef __LLS_H +#define __LLS_H + +typedef struct +{ + int top; +} lls_Context; + +lls_Context* lls_newcontext(); + +typedef int (*lls_Function)(); + +int lls_bindfunction(lls_Context* C, const char* fname, lls_Function func); +int lls_bindvariable(lls_Context* C, const char* vname, void* variable); +int lls_bindset(); + +int lls_executefile(lls_Context* C, const char* file); +int lls_executesource(lls_Context* C, const void* buffer, int size); + + + +#endif \ No newline at end of file -- cgit v1.1-26-g67d0