X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=oberon.h;h=02547cd70be76f7ffdaeb60097fa5fe89cc5dd87;hb=338eeae16495bbdcbd8c4f3dad4996346e26139b;hp=69ee927fede72bb5a643c55608c23db621e78c44;hpb=42da6ba15843521d2b18994d863f2ec3d2672a97;p=dsw-obn.git diff --git a/oberon.h b/oberon.h index 69ee927..02547cd 100644 --- a/oberon.h +++ b/oberon.h @@ -72,6 +72,7 @@ enum OBERON_TYPE_PROCEDURE, OBERON_TYPE_ARRAY, OBERON_TYPE_RECORD, + OBERON_TYPE_POINTER }; /* @@ -97,12 +98,12 @@ struct oberon_type_s int class; int size; - int dim; - int num_decl; oberon_type_t * base; oberon_object_t * decl; + int recursive; + int initialized; gen_type_t * gen_type; }; @@ -141,6 +142,7 @@ struct oberon_object_s char * name; int class; + int linked; oberon_type_t * type; oberon_item_t * value; oberon_object_t * next; @@ -202,6 +204,7 @@ struct oberon_context_s oberon_type_t * int_type; oberon_type_t * bool_type; oberon_type_t * void_type; + oberon_type_t * void_ptr_type; oberon_scope_t * world_scope; gen_context_t * gen_context; @@ -214,7 +217,9 @@ enum MODE_BOOLEAN, MODE_CALL, MODE_INDEX, - MODE_FIELD + MODE_FIELD, + MODE_DEREF, + MODE_NIL }; enum