Commit d87bc052 authored by Dan Hipschman's avatar Dan Hipschman Committed by Alexandre Julliard

widl: Factor a small part of the grammar.

parent 6725c5d7
...@@ -311,7 +311,7 @@ static func_list_t *append_func_from_statement(func_list_t *list, statement_t *s ...@@ -311,7 +311,7 @@ static func_list_t *append_func_from_statement(func_list_t *list, statement_t *s
%type <type> dispinterface dispinterfacehdr dispinterfacedef %type <type> dispinterface dispinterfacehdr dispinterfacedef
%type <type> module modulehdr moduledef %type <type> module modulehdr moduledef
%type <type> base_type int_std %type <type> base_type int_std
%type <type> enumdef structdef uniondef %type <type> enumdef structdef uniondef typedecl
%type <type> type %type <type> type
%type <ifref> coclass_int %type <ifref> coclass_int
%type <ifref_list> coclass_ints %type <ifref_list> coclass_ints
...@@ -401,7 +401,7 @@ semicolon_opt: ...@@ -401,7 +401,7 @@ semicolon_opt:
statement: statement:
cppquote { $$ = make_statement_cppquote($1); } cppquote { $$ = make_statement_cppquote($1); }
| enumdef ';' { $$ = make_statement_type_decl($1); | typedecl ';' { $$ = make_statement_type_decl($1);
if (!parse_only && do_header) { if (!parse_only && do_header) {
write_type_def_or_decl(header, $1, FALSE, NULL); write_type_def_or_decl(header, $1, FALSE, NULL);
fprintf(header, ";\n\n"); fprintf(header, ";\n\n");
...@@ -411,19 +411,13 @@ statement: ...@@ -411,19 +411,13 @@ statement:
if (!parse_only && do_header) write_declaration($1, is_in_interface); if (!parse_only && do_header) write_declaration($1, is_in_interface);
} }
| import { $$ = make_statement_import($1); } | import { $$ = make_statement_import($1); }
| structdef ';' { $$ = make_statement_type_decl($1);
if (!parse_only && do_header) {
write_type_def_or_decl(header, $1, FALSE, NULL);
fprintf(header, ";\n\n");
}
}
| typedef ';' { $$ = $1; } | typedef ';' { $$ = $1; }
| uniondef ';' { $$ = make_statement_type_decl($1); ;
if (!parse_only && do_header) {
write_type_def_or_decl(header, $1, FALSE, NULL); typedecl:
fprintf(header, ";\n\n"); enumdef
} | structdef
} | uniondef
; ;
cppquote: tCPPQUOTE '(' aSTRING ')' { $$ = $3; if (!parse_only && do_header) fprintf(header, "%s\n", $3); } cppquote: tCPPQUOTE '(' aSTRING ')' { $$ = $3; if (!parse_only && do_header) fprintf(header, "%s\n", $3); }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment