* [PATCH] scripts: minikconf: support config titles
@ 2020-11-27 18:39 Enrico Weigelt, metux IT consult
0 siblings, 0 replies; only message in thread
From: Enrico Weigelt, metux IT consult @ 2020-11-27 18:39 UTC (permalink / raw)
To: qemu-devel
Add support for config option titles, like the real kconfig does.
Even though they're not presented anywhere yet (since minikconf
only acts in the background), it's good to have them supported,
so we can start adding descriptions in the Kconfig files.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
scripts/minikconf.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/scripts/minikconf.py b/scripts/minikconf.py
index bcd91015d3..28c67906cb 100644
--- a/scripts/minikconf.py
+++ b/scripts/minikconf.py
@@ -206,6 +206,7 @@ class KconfigData:
self.defined_vars = set()
self.referenced_vars = dict()
self.clauses = list()
+ self.title = None
# semantic analysis -------------
@@ -290,6 +291,9 @@ class KconfigData:
cond = (cond & var) if cond is not None else var
self.clauses.append(KconfigData.SelectClause(symbol, cond))
+ def do_title(self, title):
+ self.title = title
+
def do_imply(self, var, symbol, cond=None):
# "config X imply Y [if COND]" is the same as
# "config Y default y if X [&& COND]"
@@ -323,6 +327,7 @@ TOK_BOOL = 15; TOKENS[TOK_BOOL] = '"bool"';
TOK_IF = 16; TOKENS[TOK_IF] = '"if"';
TOK_ID = 17; TOKENS[TOK_ID] = 'identifier';
TOK_EOF = 18; TOKENS[TOK_EOF] = 'end of file';
+TOK_QUOTED = 19; TOKENS[TOK_QUOTED] = 'quoted string';
class KconfigParserError(Exception):
def __init__(self, parser, msg, tok=None):
@@ -501,6 +506,7 @@ class KconfigParser:
# property: DEFAULT y_or_n condition
# | DEPENDS ON expr
# | SELECT var condition
+ # | BOOL "comment"
# | BOOL
def parse_property(self, var):
if self.tok == TOK_DEFAULT:
@@ -526,6 +532,9 @@ class KconfigParser:
self.data.do_imply(var, symbol, cond)
elif self.tok == TOK_BOOL:
self.get_token()
+ if self.tok == TOK_QUOTED:
+ self.data.do_title(self.val)
+ self.get_token()
else:
raise KconfigParserError(self, 'Error in recursive descent?')
@@ -645,6 +654,11 @@ class KconfigParser:
self.cursor = self.src.find('\n', self.cursor)
self.val = self.src[start:self.cursor]
return TOK_SOURCE
+ elif self.tok == '"':
+ start = self.cursor
+ self.cursor = self.src.find('"', self.cursor)+1
+ self.val = self.src[start:self.cursor]
+ return TOK_QUOTED;
elif self.tok.isalnum():
# identifier
while self.src[self.cursor].isalnum() or self.src[self.cursor] == '_':
--
2.11.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2020-11-27 19:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-27 18:39 [PATCH] scripts: minikconf: support config titles Enrico Weigelt, metux IT consult
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).