diff --git a/src/oberon-internals.h b/src/oberon-internals.h
index ac6b6959ff7799fb2d3a0ed35576fce40dd99ac8..1e92de1763923d410e342e0d21cb29ab68c2961e 100644 (file)
--- a/src/oberon-internals.h
+++ b/src/oberon-internals.h
#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;
int num_decl;
oberon_type_t * base;
oberon_object_t * decl;
+ oberon_scope_t * scope;
oberon_module_t * module;
char c;
int token;
char * string;
- long integer;
+ int64_t integer;
double real;
+ bool longmode;
/*** END SCANER DATA ***/
/*** PARSER DATA ***/
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;
MODE_DEREF,
MODE_NIL,
MODE_NEW,
- MODE_REAL
+ MODE_REAL,
+ MODE_CAST
};
enum
int boolean;
oberon_object_t * var;
- oberon_item_t * parent;
+ oberon_expr_t * parent;
int num_args;
oberon_expr_t * args;