Messages in this thread | | | Subject | Re: Kconfig: '+config' valid syntax? | From | Paul Bolle <> | Date | Thu, 02 Jul 2015 11:01:02 +0200 |
| |
[Dropped Yann. You already know Yann disappeared.]
On Thu, 2015-07-02 at 10:08 +0200, Valentin Rothberg wrote: > commit ed013214afa7 ("ACPI / init: Make it possible to override _REV") > is in today's linux-next tree (i.e., next-20150702) adding the > following hunk to drivers/acpi/Kconfig: > > --- a/drivers/acpi/Kconfig > +++ b/drivers/acpi/Kconfig > @@ -428,6 +428,26 @@ config XPOWER_PMIC_OPREGION > help > This config adds ACPI operation region support for XPower > AXP288 PMIC. > > ++config ACPI_REV_OVERRIDE_POSSIBLE
(Odd. Botched conflict resolution?)
> + bool "Allow supported ACPI revision to be overriden" > + depends on X86 > + default y > [...] > > By having a close look at the first added line, we can see that > '+config ACPI_...' is added. To my great surprise, it's valid Kconfig > syntax.
I played a bit with this. It seems you can basically add a '+' anywhere you like and kconfig will just ignore it.
> How is that possible? IMHO it's an invalid token, such that > Kconfig should complain about it. Or do I miss something?
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.
At the end of which we're back where we started before encountering the'+'. But there are more references to '.' in the lex rules so it's probably more complicated.
Hope this helps,
Paul Bolle
| |