[PATCH 00/27] kconfig: refactor lexer and parser code

From: Masahiro Yamada
Date: Fri Feb 02 2024 - 10:58:47 EST


Random fixes, cleanups, etc.

Masahiro Yamada (27):
kconfig: fix infinite loop when expanding a macro at the end of file
kconfig: fix off-by-one in zconf_error()
kconfig: remove orphan lookup_file() declaration
kconfig: remove compat_getline()
kconfig: remove unneeded sym_find() call in conf_parse()
kconfig: write Kconfig files to autoconf.cmd in order
kconfig: call env_write_dep() right after yyparse()
kconfig: split preprocessor prototypes into preprocess.h
kconfig: replace current_pos with separate cur_{filename,lineno}
kconfig: remove zconf_curname() and zconf_lineno()
kconfig: associate struct menu with file name directly
kconfig: associate struct property with file name directly
kconfig: replace file->name with name in zconf_nextfile()
kconfig: do not delay the cur_filename update
kconfig: replace remaining current_file->name with cur_filename
kconfig: move the file and lineno in struct file to struct buffer
kconfig: make file::name a flexible array member
kconfig: change file_lookup() to return the file name
kconfig: split list_head into a separate header
kconfig: resync list.h
kconfig: import more list macros and inline functions
kconfig: add macros useful for hashtable
kconfig: move ARRAY_SIZE to a header
kconfig: move strhash() to a header
kconfig: convert linked list of files to hash table
kconfig: use generic macros to implement symbol hashtable
kconfig: do not imply the type of choice value

scripts/kconfig/array_size.h | 11 ++
scripts/kconfig/conf.c | 12 +-
scripts/kconfig/confdata.c | 91 +++----------
scripts/kconfig/expr.h | 24 +---
scripts/kconfig/hashtable.h | 48 +++++++
scripts/kconfig/internal.h | 12 ++
scripts/kconfig/lexer.l | 100 +++++++-------
scripts/kconfig/list.h | 254 ++++++++++++++++++++++++++---------
scripts/kconfig/list_types.h | 17 +++
scripts/kconfig/lkc.h | 5 +-
scripts/kconfig/lkc_proto.h | 15 ---
scripts/kconfig/mconf.c | 1 +
scripts/kconfig/menu.c | 24 ++--
scripts/kconfig/nconf.c | 1 +
scripts/kconfig/parser.y | 92 +++++++------
scripts/kconfig/preprocess.c | 23 ++--
scripts/kconfig/preprocess.h | 19 +++
scripts/kconfig/qconf.cc | 2 +-
scripts/kconfig/symbol.c | 46 +++----
scripts/kconfig/util.c | 38 ++++--
scripts/kconfig/util.h | 15 +++
21 files changed, 511 insertions(+), 339 deletions(-)
create mode 100644 scripts/kconfig/array_size.h
create mode 100644 scripts/kconfig/hashtable.h
create mode 100644 scripts/kconfig/list_types.h
create mode 100644 scripts/kconfig/preprocess.h
create mode 100644 scripts/kconfig/util.h

--
2.40.1