From: Andreas Ruprecht <andreas.ruprecht@fau.de>
To: Paul Bolle <pebolle@tiscali.nl>,
Valentin Rothberg <valentinrothberg@gmail.com>
Cc: rafael.j.wysocki@intel.com, linux-kbuild@vger.kernel.org,
linux-kernel@vger.kernel.org,
hengelein Stefan <stefan.hengelein@fau.de>,
linux@dominikbrodowski.net
Subject: Re: Kconfig: '+config' valid syntax?
Date: Fri, 03 Jul 2015 09:33:43 +0200 [thread overview]
Message-ID: <55963AD7.3040905@fau.de> (raw)
In-Reply-To: <1435839005.2423.28.camel@tiscali.nl>
On 07/02/2015 14:10, Paul Bolle wrote:
> [Spoiler: please start at the end of my reply.]
>
> On do, 2015-07-02 at 13:57 +0200, Andreas Ruprecht wrote:
>> On 07/02/2015 11:01, Paul Bolle wrote:
>>> On Thu, 2015-07-02 at 10:08 +0200, Valentin Rothberg wrote:
>>> Welcome to the wonders of lex and yacc!
>>>
>>> I try to spend as little time as possible looking at the lex rules,
>>> so
>>> I'm just guessing here. Anyhow, you might start by looking at this
>>> snippet in zconf.l:
>>> . {
>>> unput(yytext[0]);
>>> BEGIN(COMMAND);
>>> }
>>>
>>>
>>> <COMMAND>{
>>> {n}+ {
>>> [...]
>>> }
>>> .
>>> \n {
>>> BEGIN(INITIAL);
>>> current_file->lineno++;
>>> return T_EOL;
>>> }
>>> }
>>>
>>> Which perhaps translates to:
>>> - ignore unknown stuff for now and go in COMMAND state;
>>> - do something if we encounter some text ({n} = [A-Za-z0-9_]);
>>> - go in INITIAL state if we encounter newlines or unknown stuff.
>>
>> This is _almost_ true (which I think is the problem). The rule for "."
>> is empty, and not the same rule as for \n.
>
> I see. That's nice to know.
>
>> So what happens here, is that
>> any unknown characters are simply ignored until something in {n}+
>> shows up.
>
> How can unknown characters be part of {n}+?
>
They are not considered part of {n}+, but through ignoring the '+'
character with the empty '.' rule, the parser will go back into the
top-level rule - the very first rule in your snippet above - see the 'c'
character (from 'config'), go into COMMAND again and parse the 'config'
item properly.
>
> As I said in my follow up: see commit 2e0d737fc76f ("kconfig: don't
> silently ignore unhandled characters").
I tested the behaviour on yesterday's linux-next, but the commit
mentioned above will only complain for invalid characters inside the
PARAM case and not for COMMANDs. So, as an example, if you write
something like
config ACPI_REV_OVERRIDE_POSSIBLE
depends on X86 +
[...]
Kconfig will complain about the '+'. This, however, does not apply for
top-level statements like 'config', 'menuconfig', and so on.
Regards,
Andreas
next prev parent reply other threads:[~2015-07-03 7:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-02 8:08 Kconfig: '+config' valid syntax? Valentin Rothberg
2015-07-02 9:01 ` Paul Bolle
2015-07-02 9:25 ` Paul Bolle
2015-07-02 11:57 ` Andreas Ruprecht
2015-07-02 12:10 ` Paul Bolle
2015-07-03 7:33 ` Andreas Ruprecht [this message]
2015-07-03 8:59 ` Paul Bolle
2015-07-03 9:29 ` Andreas Ruprecht
2015-07-03 10:46 ` Ulf Magnusson
2015-07-03 10:51 ` Valentin Rothberg
2015-07-03 10:56 ` Stefan Hengelein
2015-07-03 11:11 ` Stefan Hengelein
2015-07-03 11:34 ` Ulf Magnusson
2015-07-03 11:00 ` Paul Bolle
2015-07-03 11:33 ` Andreas Ruprecht
2015-07-03 11:40 ` Ulf Magnusson
2015-07-03 12:39 ` Ulf Magnusson
2015-07-03 12:48 ` Ulf Magnusson
2015-07-03 11:58 ` Paul Bolle
2015-07-03 10:52 ` Paul Bolle
2015-07-02 19:59 ` Rafael J. Wysocki
2015-07-03 10:16 ` Ulf Magnusson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55963AD7.3040905@fau.de \
--to=andreas.ruprecht@fau.de \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
--cc=pebolle@tiscali.nl \
--cc=rafael.j.wysocki@intel.com \
--cc=stefan.hengelein@fau.de \
--cc=valentinrothberg@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.