mbox series

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

Message ID 20250113150253.3097820-1-masahiroy@kernel.org (mailing list archive)
Headers show
Series genksyms: fix conflicts and syntax errors in parser | expand

Message

Masahiro Yamada Jan. 13, 2025, 3 p.m. UTC
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(-)

Comments

Nicolas Schier Jan. 14, 2025, 8:33 p.m. UTC | #1
On Tue, Jan 14, 2025 at 12:00:38AM +0900, Masahiro Yamada wrote:
> 
> 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

Thanks for the series, especially for the very detailed,
explanatory commit messages!

I looked through all the patches and they all look good to me
-- but my bison/parsing/lexing knowledge is rusty and quite
limited, therefore I cannot review properly.

Acked-by: Nicolas Schier <n.schier@avm.de>

Kind regards,
Nicolas