Module Name:    src
Committed By:   rillig
Date:           Sat Jul 10 21:44:51 UTC 2021

Modified Files:
        src/usr.bin/xlint/lint1: cgram.y

Log Message:
lint: inline grammar rules declmod and qualifier_or_storage_class

The rule declmod had a confusing name since declmods was not exactly a
list of declmod.

Inlining the rules reduces the abstraction level.  There are still some
shift/reduce conflicts in that area, so make the rules as simple as
possible, in order to resolve these conflicts.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.303 -r1.304 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.303 src/usr.bin/xlint/lint1/cgram.y:1.304
--- src/usr.bin/xlint/lint1/cgram.y:1.303	Sat Jul 10 21:08:16 2021
+++ src/usr.bin/xlint/lint1/cgram.y	Sat Jul 10 21:44:51 2021
@@ -1,5 +1,5 @@
 %{
-/* $NetBSD: cgram.y,v 1.303 2021/07/10 21:08:16 rillig Exp $ */
+/* $NetBSD: cgram.y,v 1.304 2021/07/10 21:44:51 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.303 2021/07/10 21:08:16 rillig Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.304 2021/07/10 21:44:51 rillig Exp $");
 #endif
 
 #include <limits.h>
@@ -535,23 +535,22 @@ declaration_specifiers:		/* C99 6.7 */
 	  add_type_specifier
 	| declmods add_type_specifier
 	| type_attribute declaration_specifiers
-	| declaration_specifiers declmod
+	| declaration_specifiers add_storage_class
 	| declaration_specifiers add_notype_type_specifier
+	| declaration_specifiers add_type_qualifier
+	| declaration_specifiers type_attribute
 	;
 
 declmods:
-	  qualifier_or_storage_class
-	| declmods declmod
+	  add_storage_class
+	| add_type_qualifier
+	| declmods add_storage_class
+	| declmods add_type_qualifier
+	| declmods type_attribute
 	;
 
-declmod:
-	  qualifier_or_storage_class
-	| type_attribute
-	;
-
-qualifier_or_storage_class:
-	  add_type_qualifier
-	| T_SCLASS {
+add_storage_class:
+	  T_SCLASS {
 		add_storage_class($1);
 	  }
 	;

Reply via email to