X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Foberon-internals.h;h=c28cfa5b80761a1d42992a32ffa5d49fa31dce76;hb=c055d16f1d6ca38c5c2171dbafd1a25305fb909c;hp=5cfaa1313777e98eb45f8fac7a14406ac67cd6c5;hpb=d11b76dfc015306841ed4befae800ba1ed7c765b;p=dsw-obn.git diff --git a/src/oberon-internals.h b/src/oberon-internals.h index 5cfaa13..c28cfa5 100644 --- a/src/oberon-internals.h +++ b/src/oberon-internals.h @@ -44,6 +44,9 @@ enum OBERON_TYPE_REAL }; +typedef oberon_expr_t * (*GenerateFuncCallback)(oberon_context_t *, int, oberon_expr_t *); +typedef void (*GenerateProcCallback)(oberon_context_t *, int, oberon_expr_t *); + struct oberon_type_t { int class; @@ -52,6 +55,11 @@ struct oberon_type_t int num_decl; oberon_type_t * base; oberon_object_t * decl; + oberon_scope_t * scope; + + bool sysproc; + GenerateFuncCallback genfunc; + GenerateProcCallback genproc; oberon_module_t * module; @@ -72,9 +80,6 @@ enum OBERON_CLASS_MODULE }; -typedef oberon_expr_t * (*GenerateFuncCallback)(oberon_context_t *, int, oberon_expr_t *); -typedef void (*GenerateProcCallback)(oberon_context_t *, int, oberon_expr_t *); - struct oberon_object_t { char * name; @@ -91,9 +96,6 @@ struct oberon_object_t oberon_scope_t * scope; // for proc int has_return; // for proc - int sysproc; - GenerateFuncCallback genfunc; - GenerateProcCallback genproc; oberon_type_t * type; oberon_item_t * value; @@ -166,7 +168,6 @@ enum MODE_NIL, MODE_NEW, MODE_REAL, - MODE_CAST }; enum @@ -192,7 +193,9 @@ enum OP_LSS, OP_LEQ, OP_GRT, - OP_GEQ + OP_GEQ, + + OP_CAST }; struct oberon_item_t @@ -208,7 +211,7 @@ struct oberon_item_t int boolean; oberon_object_t * var; - oberon_expr_t * parent; + oberon_item_t * parent; int num_args; oberon_expr_t * args;