DEADSOFTWARE

JVM: Реализованы переменные-процедуры в генераторе
[dsw-obn.git] / src / oberon-internals.h
index e265a79cc1b39aff1e2a6afa7d3b51913853c756..ac6b6959ff7799fb2d3a0ed35576fce40dd99ac8 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef OBERON_INTERNALS_H
 #define OBERON_INTERNALS_H
 
+typedef struct gen_module_t gen_module_t;
 typedef struct gen_proc_t gen_proc_t;
 typedef struct gen_type_t gen_type_t;
 typedef struct gen_var_t gen_var_t;
@@ -23,8 +24,9 @@ struct oberon_scope_t
        oberon_object_t * list;
        oberon_scope_t * up;
 
-       oberon_object_t * parent;
        int local;
+       oberon_object_t * parent;
+       oberon_type_t * parent_type;
 };
 
 enum
@@ -82,6 +84,7 @@ struct oberon_object_t
        int initialized;
 
        oberon_object_t * parent;
+       oberon_type_t * parent_type;
 
        oberon_scope_t * scope; // for proc
        int has_return; // for proc
@@ -107,6 +110,8 @@ struct oberon_module_t
        oberon_scope_t * decl;
 
        oberon_module_t * next;
+
+       gen_module_t * gen_mod;
 };
 
 typedef const char * (*ModuleImportCallback)(const char * name);
@@ -168,7 +173,7 @@ enum
        OP_MOD,
        OP_BITWISE_AND,
        OP_BITWISE_XOR,
-       OP_BITWISE_OP,
+       OP_BITWISE_OR,
        OP_LOGIC_AND,
        OP_LOGIC_OR,
 
@@ -224,7 +229,4 @@ union oberon_expr_t
        oberon_oper_t oper;
 };
 
-extern void
-oberon_error(oberon_context_t * ctx, const char * fmt, ...);
-
 #endif // OBERON_INTERNALS_H