diff options
author | George Kiagiadakis <kiagiadakis.george@gmail.com> | 2010-04-13 11:45:09 +0300 |
---|---|---|
committer | George Kiagiadakis <kiagiadakis.george@gmail.com> | 2010-04-13 11:45:09 +0300 |
commit | 8df87ded5f0635e9534a5b30db4417760d2b2bbb (patch) | |
tree | b601724a4848d657871cde9d7ab4b59b6d1457d3 /codegen | |
parent | 1681c371355f0f8b5eb1b199359f80d0f032cd11 (diff) |
Support mixed type registrations and enum definitions in codegen, needed for enums.h.
Diffstat (limited to 'codegen')
-rw-r--r-- | codegen/parser.y | 7 |
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 { |