[PATCH 00/17] genksyms: fix conflicts and syntax errors in parser

From: Masahiro Yamada
Date: Mon Jan 13 2025 - 10:09:40 EST



This series fixes several long-standing issues in genksyms.

- The parser contains grammatical ambiguities, including both
reduce/reduce and shift/reduce conflicts.

- There are several hidden syntax errors
When a syntax error occurs, the type becomes UNKNOWN, and
precise CRC calculation becomes impossible.



Masahiro Yamada (17):
genksyms: rename m_abstract_declarator to abstract_declarator
genksyms: rename cvar_qualifier to type_qualifier
genksyms: reduce type_qualifier directly to decl_specifier
genksyms: fix 6 shift/reduce conflicts and 5 reduce/reduce conflicts
genksyms: fix last 3 shift/reduce conflicts
genksyms: remove Makefile hack
genksyms: restrict direct-abstract-declarator to take one
parameter-type-list
genksyms: restrict direct-declarator to take one parameter-type-list
genksyms: record attributes consistently for init-declarator
genksyms: decouple ATTRIBUTE_PHRASE from type-qualifier
genksyms: fix syntax error for attribute before abstract_declarator
genksyms: fix syntax error for attribute before nested_declarator
genksyms: fix syntax error for attribute after abstact_declarator
genksyms: fix syntax error for attribute after 'struct'
genksyms: fix syntax error for attribute after 'union'
genksyms: fix syntax error for builtin (u)int*x*_t types
genksyms: fix syntax error for attribute before init-declarator

scripts/genksyms/Makefile | 18 -----
scripts/genksyms/genksyms.h | 3 +
scripts/genksyms/lex.l | 17 +++-
scripts/genksyms/parse.y | 150 ++++++++++++++++++++----------------
4 files changed, 101 insertions(+), 87 deletions(-)

--
2.43.0