diff --git a/src/oberon-internals.h b/src/oberon-internals.h
index fa9b5d5280903bf0ea16496170cb3e81fcb69045..c1454d433ff77e38c97ad35569bec8e8a4dd2a15 100644 (file)
--- a/src/oberon-internals.h
+++ b/src/oberon-internals.h
enum oberon_type_kind
{
- OBERON_TYPE_VOID,
+ OBERON_TYPE_NOTYPE,
OBERON_TYPE_INTEGER,
OBERON_TYPE_BOOLEAN,
OBERON_TYPE_PROCEDURE,
OBERON_TYPE_REAL,
OBERON_TYPE_CHAR,
OBERON_TYPE_STRING,
- OBERON_TYPE_SET
+ OBERON_TYPE_SET,
+ OBERON_TYPE_NIL,
+ OBERON_TYPE_SYSTEM_BYTE
};
typedef oberon_expr_t * (*GenerateFuncCallback)(oberon_context_t *, int, oberon_expr_t *);
{
enum oberon_type_kind class;
int size;
+ oberon_type_t * shorter;
+ oberon_type_t * longer;
int num_decl;
oberon_type_t * base;
struct oberon_module_t
{
char * name;
- int ready;
+ bool ready;
+ bool intrinsic;
oberon_scope_t * decl;
oberon_module_t * mod;
/*** END PARSER DATA ***/
- oberon_type_t * void_type;
- oberon_type_t * void_ptr_type;
+ oberon_scope_t * world_scope;
+ oberon_type_t * notype_type;
+ oberon_type_t * nil_type;
oberon_type_t * bool_type;
oberon_type_t * byte_type;
oberon_type_t * shortint_type;
oberon_type_t * string_type;
oberon_type_t * set_type;
- oberon_scope_t * world_scope;
+ oberon_module_t * system_module;
+ oberon_type_t * system_byte_type;
+
oberon_module_t * module_list;
ModuleImportCallback import_module;
gen_context_t * gen_context;
MODE_CHAR,
MODE_STRING,
MODE_TYPE,
- MODE_SET
+ MODE_SET,
+ MODE_LEN
};
enum oberon_operator_kind
OP_UNARY_MINUS,
OP_LOGIC_NOT,
OP_ABS,
+ OP_CAP,
+ OP_ENTIER,
OP_ADD,
OP_SUB,
OP_DIFFERENCE,
OP_SYM_DIFFERENCE,
OP_COMPLEMENTATION,
- OP_IN
+ OP_IN,
+
+ OP_ASH
};
struct oberon_item_t