diff --git a/src/oberon-internals.h b/src/oberon-internals.h
index 1e92de1763923d410e342e0d21cb29ab68c2961e..c28cfa5b80761a1d42992a32ffa5d49fa31dce76 100644 (file)
--- a/src/oberon-internals.h
+++ b/src/oberon-internals.h
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;
oberon_object_t * decl;
oberon_scope_t * scope;
+ bool sysproc;
+ GenerateFuncCallback genfunc;
+ GenerateProcCallback genproc;
+
oberon_module_t * module;
int recursive;
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;
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;
MODE_NIL,
MODE_NEW,
MODE_REAL,
- MODE_CAST
};
enum
OP_LSS,
OP_LEQ,
OP_GRT,
- OP_GEQ
+ OP_GEQ,
+
+ OP_CAST
};
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;