Module Name: src Committed By: rillig Date: Sat Jul 10 16:54:40 UTC 2021
Modified Files: src/usr.bin/xlint/lint1: cgram.y Log Message: lint: split grammar rule clrtyp_declmods By extracting clrtyp from that rule, clrtyp and deftyp pair up nicely in most of the grammar rules. These two actions delimit the common part of a declaration that declares multiple identifiers. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.292 -r1.293 src/usr.bin/xlint/lint1/cgram.y Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/xlint/lint1/cgram.y diff -u src/usr.bin/xlint/lint1/cgram.y:1.292 src/usr.bin/xlint/lint1/cgram.y:1.293 --- src/usr.bin/xlint/lint1/cgram.y:1.292 Sat Jul 10 16:41:51 2021 +++ src/usr.bin/xlint/lint1/cgram.y Sat Jul 10 16:54:40 2021 @@ -1,5 +1,5 @@ %{ -/* $NetBSD: cgram.y,v 1.292 2021/07/10 16:41:51 rillig Exp $ */ +/* $NetBSD: cgram.y,v 1.293 2021/07/10 16:54:40 rillig Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: cgram.y,v 1.292 2021/07/10 16:41:51 rillig Exp $"); +__RCSID("$NetBSD: cgram.y,v 1.293 2021/07/10 16:54:40 rillig Exp $"); #endif #include <limits.h> @@ -444,8 +444,8 @@ func_decl: clrtyp deftyp notype_decl { $$ = $3; } - | clrtyp_declmods deftyp notype_decl { - $$ = $3; + | clrtyp declmods deftyp notype_decl { + $$ = $4; } | declaration_specifiers deftyp type_decl { $$ = $3; @@ -469,11 +469,11 @@ arg_declaration_list: /* C99 6.9.1p13 e * needs other error handling. */ arg_declaration: - clrtyp_declmods deftyp T_SEMI { + clrtyp declmods deftyp T_SEMI { /* empty declaration */ warning(2); } - | clrtyp_declmods deftyp notype_init_decls T_SEMI + | clrtyp declmods deftyp notype_init_decls T_SEMI | declaration_specifiers deftyp T_SEMI { if (!dcs->d_nonempty_decl) { /* empty declaration */ @@ -489,7 +489,7 @@ arg_declaration: warning(3, type_name(dcs->d_type)); } } - | clrtyp_declmods error + | clrtyp declmods error | declaration_specifiers error ; @@ -499,7 +499,7 @@ declaration: /* C99 6.7 */ ; declaration_noerror: /* see C99 6.7 'declaration' */ - clrtyp_declmods deftyp T_SEMI { + clrtyp declmods deftyp T_SEMI { if (dcs->d_scl == TYPEDEF) { /* typedef declares no type name */ warning(72); @@ -508,7 +508,7 @@ declaration_noerror: /* see C99 6.7 'de warning(2); } } - | clrtyp_declmods deftyp notype_init_decls T_SEMI + | clrtyp declmods deftyp notype_init_decls T_SEMI | declaration_specifiers deftyp T_SEMI { if (dcs->d_scl == TYPEDEF) { /* typedef declares no type name */ @@ -537,8 +537,8 @@ declaration_specifiers: /* C99 6.7 */ clrtyp typespec { add_type($2); } - | clrtyp_declmods typespec { - add_type($2); + | clrtyp declmods typespec { + add_type($3); } | type_attribute declaration_specifiers | declaration_specifiers declmod @@ -547,9 +547,9 @@ declaration_specifiers: /* C99 6.7 */ } ; -clrtyp_declmods: - clrtyp qualifier_or_storage_class - | clrtyp_declmods declmod +declmods: + qualifier_or_storage_class + | declmods declmod ; declmod: @@ -1150,20 +1150,20 @@ parameter_type_list: /* XXX: C99 6.7.5 defines the same name, but it looks completely different. */ parameter_declaration: - clrtyp_declmods deftyp { + clrtyp declmods deftyp { $$ = declare_argument(abstract_name(), false); } | declaration_specifiers deftyp { $$ = declare_argument(abstract_name(), false); } - | clrtyp_declmods deftyp notype_param_decl { - $$ = declare_argument($3, false); + | clrtyp declmods deftyp notype_param_decl { + $$ = declare_argument($4, false); } | declaration_specifiers deftyp type_param_decl { $$ = declare_argument($3, false); } - | clrtyp_declmods deftyp abstract_declarator { - $$ = declare_argument($3, false); + | clrtyp declmods deftyp abstract_declarator { + $$ = declare_argument($4, false); } | declaration_specifiers deftyp abstract_declarator { $$ = declare_argument($3, false);