diff --git a/src/oberon.c b/src/oberon.c
index 04eaf8c8fd29e32e6b5318db2981e64d2a02b2cd..1d9e670e82fcc1c2e197b7bcbeea9b91cc935782 100644 (file)
--- a/src/oberon.c
+++ b/src/oberon.c
static void
oberon_decl_seq(oberon_context_t * ctx)
{
- if(ctx -> token == CONST)
+ while(ctx -> token >= CONST && ctx -> token <= VAR)
{
- oberon_assert_token(ctx, CONST);
- while(ctx -> token == IDENT)
+ if(ctx -> token == CONST)
{
- oberon_const_decl(ctx);
- oberon_assert_token(ctx, SEMICOLON);
+ oberon_assert_token(ctx, CONST);
+ while(ctx -> token == IDENT)
+ {
+ oberon_const_decl(ctx);
+ oberon_assert_token(ctx, SEMICOLON);
+ }
}
- }
-
- if(ctx -> token == TYPE)
- {
- oberon_assert_token(ctx, TYPE);
- while(ctx -> token == IDENT)
+ else if(ctx -> token == TYPE)
{
- oberon_type_decl(ctx);
- oberon_assert_token(ctx, SEMICOLON);
+ oberon_assert_token(ctx, TYPE);
+ while(ctx -> token == IDENT)
+ {
+ oberon_type_decl(ctx);
+ oberon_assert_token(ctx, SEMICOLON);
+ }
}
- }
-
- if(ctx -> token == VAR)
- {
- oberon_assert_token(ctx, VAR);
- while(ctx -> token == IDENT)
+ else if(ctx -> token == VAR)
{
- oberon_var_decl(ctx);
- oberon_assert_token(ctx, SEMICOLON);
+ oberon_assert_token(ctx, VAR);
+ while(ctx -> token == IDENT)
+ {
+ oberon_var_decl(ctx);
+ oberon_assert_token(ctx, SEMICOLON);
+ }
}
}
/* Types */
oberon_new_intrinsic_type(ctx, "BYTE", ctx -> system_byte_type);
oberon_new_intrinsic_type(ctx, "PTR", ctx -> system_ptr_type);
+ oberon_new_intrinsic_type(ctx, "INT8", ctx -> byte_type);
+ oberon_new_intrinsic_type(ctx, "INT16", ctx -> shortint_type);
oberon_new_intrinsic_type(ctx, "INT32", ctx -> int_type);
+ oberon_new_intrinsic_type(ctx, "INT64", ctx -> longint_type);
oberon_new_intrinsic_type(ctx, "SET32", ctx -> set_type);
/* Functions */