X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=oberon.h;h=53693a79629e8b772c38497cfc0c00046891cbed;hb=12ae486a18746b042fcc4ebbefc5449d4d3464af;hp=9956fdc09d0a9bc77edff1d295ce48b7d4f35ee5;hpb=c15b86365824545bdee7d813ce0c796f1bdff592;p=dsw-obn.git diff --git a/oberon.h b/oberon.h index 9956fdc..53693a7 100644 --- a/oberon.h +++ b/oberon.h @@ -39,6 +39,7 @@ struct gen_context_s gcc_jit_result * gcc_result; gen_block_t * block; unsigned record_count; + gcc_jit_lvalue * gcc_alloc; }; typedef struct oberon_type_s oberon_type_t; @@ -114,6 +115,8 @@ struct oberon_type_s oberon_type_t * base; oberon_object_t * decl; + oberon_module_t * module; + int recursive; int initialized; gen_type_t * gen_type; @@ -157,6 +160,8 @@ struct oberon_object_s { char * name; int class; + int export; + int read_only; int local; int linked; @@ -253,7 +258,8 @@ enum MODE_INDEX, MODE_FIELD, MODE_DEREF, - MODE_NIL + MODE_NIL, + MODE_NEW }; enum @@ -287,6 +293,7 @@ struct oberon_item_s int is_item; // == 1 oberon_type_t * result; oberon_expr_t * next; + int read_only; int mode; int integer; @@ -304,6 +311,7 @@ struct oberon_oper_s int is_item; // == 0 oberon_type_t * result; oberon_expr_t * next; + int read_only; int op; oberon_expr_t * left; @@ -316,6 +324,7 @@ union oberon_expr_u int is_item; oberon_type_t * result; oberon_expr_t * next; + int read_only; }; oberon_item_t item;