#ifndef EMBEDED_OBERON_SCRIPT_H #define EMBEDED_OBERON_SCRIPT_H enum { OBERON_TYPE_INTEGER, OBERON_TYPE_BOOLEAN, }; typedef struct oberon_var_s oberon_var_t; typedef struct oberon_type_s oberon_type_t; typedef struct oberon_module_s oberon_module_t; typedef struct oberon_context_s oberon_context_t; struct oberon_type_s { char * name; int class; int size; oberon_type_t * next; }; struct oberon_var_s { char * name; oberon_type_t * type; oberon_var_t * next; }; struct oberon_module_s { char * name; oberon_var_t * vars; }; struct oberon_context_s { const char * code; int code_index; char c; int token; char * string; int integer; oberon_module_t * mod; oberon_type_t * types; }; oberon_context_t * oberon_create_context(); void oberon_register_global_type(oberon_context_t * ctx, oberon_type_t * type); oberon_module_t * oberon_compile_module(oberon_context_t * ctx, const char * code); #endif // EMBEDED_OBERON_SCRIPT_H