diff --git a/src/oberon-internals.h b/src/oberon-internals.h
index 3c6fb853f1a824330eb773fa55a95b7ac0ffd16d..ad2ecc654b1dfc66fd744ddab31a7ef26f05a515 100644 (file)
--- a/src/oberon-internals.h
+++ b/src/oberon-internals.h
OBERON_TYPE_CHAR,
OBERON_TYPE_STRING,
OBERON_TYPE_SET,
OBERON_TYPE_CHAR,
OBERON_TYPE_STRING,
OBERON_TYPE_SET,
- OBERON_TYPE_NIL
+ OBERON_TYPE_NIL,
+ OBERON_TYPE_SYSTEM_BYTE,
+ OBERON_TYPE_SYSTEM_PTR
};
typedef oberon_expr_t * (*GenerateFuncCallback)(oberon_context_t *, int, oberon_expr_t *);
};
typedef oberon_expr_t * (*GenerateFuncCallback)(oberon_context_t *, int, oberon_expr_t *);
{
enum oberon_type_kind class;
int size;
{
enum oberon_type_kind class;
int size;
+ oberon_type_t * shorter;
+ oberon_type_t * longer;
int num_decl;
oberon_type_t * base;
int num_decl;
oberon_type_t * base;
struct oberon_module_t
{
char * name;
struct oberon_module_t
{
char * name;
- int ready;
+ bool ready;
+ bool intrinsic;
oberon_scope_t * decl;
oberon_scope_t * decl;
oberon_module_t * mod;
/*** END PARSER DATA ***/
oberon_module_t * mod;
/*** END PARSER DATA ***/
+ oberon_scope_t * world_scope;
oberon_type_t * notype_type;
oberon_type_t * nil_type;
oberon_type_t * bool_type;
oberon_type_t * notype_type;
oberon_type_t * nil_type;
oberon_type_t * bool_type;
oberon_type_t * string_type;
oberon_type_t * set_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_type_t * system_ptr_type;
+
oberon_module_t * module_list;
ModuleImportCallback import_module;
gen_context_t * gen_context;
oberon_module_t * module_list;
ModuleImportCallback import_module;
gen_context_t * gen_context;
MODE_CHAR,
MODE_STRING,
MODE_TYPE,
MODE_CHAR,
MODE_STRING,
MODE_TYPE,
- MODE_SET
+ MODE_SET,
+ MODE_LEN,
+ MODE_SYSBYTE
};
enum oberon_operator_kind
};
enum oberon_operator_kind
OP_UNARY_MINUS,
OP_LOGIC_NOT,
OP_ABS,
OP_UNARY_MINUS,
OP_LOGIC_NOT,
OP_ABS,
+ OP_CAP,
+ OP_ENTIER,
OP_ADD,
OP_SUB,
OP_ADD,
OP_SUB,
OP_GEQ,
OP_CAST,
OP_GEQ,
OP_CAST,
+ OP_HARDCAST,
OP_IS,
OP_RANGE,
OP_IS,
OP_RANGE,
OP_DIFFERENCE,
OP_SYM_DIFFERENCE,
OP_COMPLEMENTATION,
OP_DIFFERENCE,
OP_SYM_DIFFERENCE,
OP_COMPLEMENTATION,
- OP_IN
+ OP_IN,
+
+ OP_ASH,
+ OP_LSH,
+ OP_ROT
};
struct oberon_item_t
};
struct oberon_item_t