summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <kiagiadakis.george@gmail.com>2010-04-13 11:45:09 +0300
committerGeorge Kiagiadakis <kiagiadakis.george@gmail.com>2010-04-13 11:45:09 +0300
commit8df87ded5f0635e9534a5b30db4417760d2b2bbb (patch)
treeb601724a4848d657871cde9d7ab4b59b6d1457d3 /codegen
parent1681c371355f0f8b5eb1b199359f80d0f032cd11 (diff)
Support mixed type registrations and enum definitions in codegen, needed for enums.h.
Diffstat (limited to 'codegen')
-rw-r--r--codegen/parser.y7
1 files changed, 2 insertions, 5 deletions
diff --git a/codegen/parser.y b/codegen/parser.y
index f810b54..29348cb 100644
--- a/codegen/parser.y
+++ b/codegen/parser.y
@@ -61,10 +61,9 @@ void yyerror(CodeGen *codegen, const char *msg);
%%
-header: enum_def_list type_registrations_list;
+header: header expression | expression | /*empty*/;
-
-enum_def_list: enum_def_list enum_def | enum_def | /*empty*/;
+expression : enum_def | type_registration;
enum_def:
ENUM_KEYWORD IDENTIFIER LEFT_BRACE optional_instructions enum_list RIGHT_BRACE SEMICOLON
@@ -90,8 +89,6 @@ enum_list:
};
-type_registrations_list: type_registrations_list type_registration | type_registration | /*empty*/;
-
type_registration:
REGISTER_TYPE_BEGIN IDENTIFIER SCOPE_RESOLUTION_OPERATOR IDENTIFIER optional_enum_id REGISTER_TYPE_END optional_instructions
{