X-Git-Url: http://deadsoftware.ru/gitweb?p=dsw-obn.git;a=blobdiff_plain;f=src%2Foberon-internals.h;h=c28cfa5b80761a1d42992a32ffa5d49fa31dce76;hp=1e92de1763923d410e342e0d21cb29ab68c2961e;hb=c055d16f1d6ca38c5c2171dbafd1a25305fb909c;hpb=56540110475558bb4cb3d1dad559f9050b35e80f diff --git a/src/oberon-internals.h b/src/oberon-internals.h index 1e92de1..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; @@ -54,6 +57,10 @@ struct oberon_type_t oberon_object_t * decl; oberon_scope_t * scope; + bool sysproc; + GenerateFuncCallback genfunc; + GenerateProcCallback genproc; + oberon_module_t * module; int recursive; @@ -73,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; @@ -92,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; @@ -167,7 +168,6 @@ enum MODE_NIL, MODE_NEW, MODE_REAL, - MODE_CAST }; enum @@ -193,7 +193,9 @@ enum OP_LSS, OP_LEQ, OP_GRT, - OP_GEQ + OP_GEQ, + + OP_CAST }; struct oberon_item_t @@ -209,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;