DEADSOFTWARE

Добавлены типы разных размеров
[dsw-obn.git] / src / oberon-internals.h
index ac6b6959ff7799fb2d3a0ed35576fce40dd99ac8..b01a1d71958aa8e43cd9a4b10190291b8357802f 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef OBERON_INTERNALS_H
 #define OBERON_INTERNALS_H
 
+#include <stdint.h>
+#include <stdbool.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;
@@ -125,8 +128,9 @@ struct oberon_context_t
        char c;
        int token;
        char * string;
-       long integer;
+       int64_t integer;
        double real;
+       bool longmode;
        /*** END SCANER DATA ***/
 
        /*** PARSER DATA ***/
@@ -134,11 +138,16 @@ struct oberon_context_t
        oberon_module_t * mod;
        /*** END PARSER DATA ***/
 
-       oberon_type_t * int_type;
        oberon_type_t * bool_type;
+       oberon_type_t * byte_type;
+       oberon_type_t * shortint_type;
+       oberon_type_t * int_type;
+       oberon_type_t * longint_type;
        oberon_type_t * real_type;
+       oberon_type_t * longreal_type;
        oberon_type_t * void_type;
        oberon_type_t * void_ptr_type;
+
        oberon_scope_t * world_scope;
        oberon_module_t * module_list;
        ModuleImportCallback import_module;
@@ -156,7 +165,8 @@ enum
        MODE_DEREF,
        MODE_NIL,
        MODE_NEW,
-       MODE_REAL
+       MODE_REAL,
+       MODE_CAST
 };
 
 enum