diff --git a/oberon.h b/oberon.h
index 86f95def78e74ccd07b87b82e8bdeefde13601eb..189369b9c0cb324564b82aca21b21000a416e944 100644 (file)
--- a/oberon.h
+++ b/oberon.h
gcc_jit_result * gcc_result;
gen_block_t * block;
unsigned record_count;
+ gcc_jit_lvalue * gcc_alloc;
};
typedef struct oberon_type_s oberon_type_t;
OBERON_TYPE_PROCEDURE,
OBERON_TYPE_ARRAY,
OBERON_TYPE_RECORD,
- OBERON_TYPE_POINTER
+ OBERON_TYPE_POINTER,
+ OBERON_TYPE_REAL
};
/*
oberon_type_t * base;
oberon_object_t * decl;
+ oberon_module_t * module;
+
int recursive;
int initialized;
gen_type_t * gen_type;
char c;
int token;
char * string;
- int integer;
+ long integer;
+ double real;
/*** END SCANER DATA ***/
/*** PARSER DATA ***/
oberon_type_t * int_type;
oberon_type_t * bool_type;
+ oberon_type_t * real_type;
oberon_type_t * void_type;
oberon_type_t * void_ptr_type;
oberon_scope_t * world_scope;
MODE_INDEX,
MODE_FIELD,
MODE_DEREF,
- MODE_NIL
+ MODE_NIL,
+ MODE_NEW,
+ MODE_REAL
};
enum
int is_item; // == 1
oberon_type_t * result;
oberon_expr_t * next;
+ int read_only;
int mode;
- int integer;
+ long integer;
+ double real;
int boolean;
oberon_object_t * var;
int is_item; // == 0
oberon_type_t * result;
oberon_expr_t * next;
+ int read_only;
int op;
oberon_expr_t * left;
int is_item;
oberon_type_t * result;
oberon_expr_t * next;
+ int read_only;
};
oberon_item_t item;