123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #ifndef VIRTUALMATH_INTER_H
- #define VIRTUALMATH_INTER_H
- struct Result;
- struct Inter{
- struct Value *base;
- struct LinkValue *link_base;
- struct HashTable *hash_base;
- struct Var *base_var;
- struct LinkValue *base_belong;
- struct Package *package;
- struct VarList *var_list;
- struct InterData{
- FILE *inter_stdout;
- FILE *inter_stderr;
- FILE *inter_stdin;
- bool is_stdout;
- bool is_stderr;
- bool is_stdin;
- struct LinkValue *object;
- struct LinkValue *vobject;
- struct LinkValue *int_;
- struct LinkValue *dou;
- struct LinkValue *str;
- struct LinkValue *bool_;
- struct LinkValue *pass_;
- struct LinkValue *lib_;
- struct LinkValue *file;
- struct LinkValue *tuple;
- struct LinkValue *list;
- struct LinkValue *dict;
- struct LinkValue *function;
- struct LinkValue *none;
- struct LinkValue *list_iter;
- struct LinkValue *dict_iter;
- struct LinkValue *base_exc;
- struct LinkValue *sys_exc;
- struct LinkValue *keyInterrupt_exc;
- struct LinkValue *quit_exc;
- struct LinkValue *exc;
- struct LinkValue *type_exc;
- struct LinkValue *arg_exc;
- struct LinkValue *per_exc;
- struct LinkValue *name_exc;
- struct LinkValue *goto_exc;
- struct LinkValue *result_exc;
- struct LinkValue *assert_exc;
- struct LinkValue *key_exc;
- struct LinkValue *index_exc;
- struct LinkValue *stride_exc;
- struct LinkValue *super_exc;
- struct LinkValue *iterstop_exc;
- struct LinkValue *import_exc;
- struct LinkValue *include_exp;
- wchar_t *var_str_prefix;
- wchar_t *var_int_prefix;
- wchar_t *var_dou_prefix;
- wchar_t *var_bool_prefix;
- wchar_t *var_file_prefix;
- wchar_t *var_none;
- wchar_t *var_pass;
- wchar_t *var_class_prefix;
- wchar_t *var_object_prefix;
- wchar_t *object_init;
- wchar_t *object_new;
- wchar_t *object_call;
- wchar_t *object_enter;
- wchar_t *object_exit;
- wchar_t *object_add;
- wchar_t *object_sub;
- wchar_t *object_mul;
- wchar_t *object_div;
- wchar_t *object_del;
- wchar_t *object_down;
- wchar_t *object_slice;
- wchar_t *object_iter;
- wchar_t *object_next;
- wchar_t *object_repo;
- wchar_t *object_bool;
- wchar_t *object_name;
- wchar_t *object_self;
- wchar_t *object_father;
- wchar_t *object_message;
- wchar_t *object_str;
- wchar_t *object_down_assignment;
- wchar_t *object_slice_assignment;
- wchar_t *object_down_del;
- wchar_t *object_slice_del;
- int default_pt_type;
- } data;
- };
- typedef struct Inter Inter;
- typedef struct Statement Statement;
- typedef enum ResultType ResultType;
- Inter *makeInter(char *out, char *error_, char *in, LinkValue *belong);
- void freeInter(Inter *inter, bool show_gc);
- void setBaseInterData(struct Inter *inter);
- void runCodeStdin(Inter *inter, char *hello_string);
- void runCodeFile(Inter *inter, char *file[]);
- bool runParser(char *code_file, Inter *inter, bool is_one, Statement **st);
- void mergeInter(Inter *new, Inter *base);
- Inter *deriveInter(LinkValue *belong, Inter *inter);
- #endif //VIRTUALMATH_INTER_H
|