]> git.draconx.ca Git - cdecl99.git/blobdiff - src/parse.y
libcdecl: Factor out toplevel parser actions.
[cdecl99.git] / src / parse.y
index ba9bf220f95513df509afca3610ccd4f8adedf92..f8c960817a31a671ba3e5bd34b462ed452ed4234 100644 (file)
@@ -256,16 +256,14 @@ static struct cdecl_declarator *nulldecl(void)
 %type <declspec>   declspecs declspecs_noid
 %type <declarator> direct_declarator declarator pointer array parens postfix
 %type <declarator> direct_declarator_ish declarator_ish parameter_type_list
-%type <decl>       declaration declarators declarator_wrap
-%type <decl>       parameter
+%type <decl>       cdecl declaration declarators declarator_wrap parameter
 
 %type <item>       english_vla
 %type <declspec>   storage_func_specs post_specs
 %type <declspec>   type_qual_spec type_qual_specs typedef_name_qual
 %type <declarator> english_declarator english_array english_function
 %type <declarator> english_parameter_list null_decl
-%type <decl>       english english_declaration
-%type <decl>       english_parameter
+%type <decl>       english english_declaration english_parameter
 
 /* Precedence declaration to avoid conflict in english_parameter; see below. */
 %right T_TYPE
@@ -273,14 +271,10 @@ static struct cdecl_declarator *nulldecl(void)
 
 %%
 
-input: english {
-       *out = $1;
-} | declaration {
-       *out = $1;
-};
+input: cdecl { *out = $1; }
+cdecl: english | declaration
 
 semi: | T_SEMICOLON
-
 declaration: declspecs declarators semi {
        $$ = $2;
        $$->specifiers = $1;