diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-12-11 06:01:08 -0500 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-12-21 10:25:55 -0500 |
commit | 824fa3b3b5e3647de0530328e8734c24418eec49 (patch) | |
tree | c0f2f25cc2ab2fc444eb8862575a087d2324bbe5 /scripts/kconfig | |
parent | b3d1d9d3c36214a50c18ba377b47152c021768df (diff) |
kconfig: switch to ASSIGN_VAL state in the second lexer
To simplify the generated lexer, switch to the ASSIGN_VAL state in
the hand-made lexer.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts/kconfig')
-rw-r--r-- | scripts/kconfig/zconf.l | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index ed0d0a3b0d62..05e2d95e3b22 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l | |||
@@ -25,6 +25,7 @@ static struct { | |||
25 | int lineno; | 25 | int lineno; |
26 | } current_pos; | 26 | } current_pos; |
27 | 27 | ||
28 | static int prev_prev_token = T_EOL; | ||
28 | static int prev_token = T_EOL; | 29 | static int prev_token = T_EOL; |
29 | static char *text; | 30 | static char *text; |
30 | static int text_size, text_asize; | 31 | static int text_size, text_asize; |
@@ -117,9 +118,9 @@ n [A-Za-z0-9_-] | |||
117 | return T_WORD; | 118 | return T_WORD; |
118 | free(yylval.string); | 119 | free(yylval.string); |
119 | } | 120 | } |
120 | "=" { BEGIN(ASSIGN_VAL); return T_EQUAL; } | 121 | "=" return T_EQUAL; |
121 | ":=" { BEGIN(ASSIGN_VAL); return T_COLON_EQUAL; } | 122 | ":=" return T_COLON_EQUAL; |
122 | "+=" { BEGIN(ASSIGN_VAL); return T_PLUS_EQUAL; } | 123 | "+=" return T_PLUS_EQUAL; |
123 | [[:blank:]]+ | 124 | [[:blank:]]+ |
124 | . warn_ignored_character(*yytext); | 125 | . warn_ignored_character(*yytext); |
125 | \n { | 126 | \n { |
@@ -288,6 +289,11 @@ repeat: | |||
288 | if ((prev_token == T_EOL || prev_token == T_HELPTEXT) && token == T_EOL) | 289 | if ((prev_token == T_EOL || prev_token == T_HELPTEXT) && token == T_EOL) |
289 | goto repeat; | 290 | goto repeat; |
290 | 291 | ||
292 | if (prev_prev_token == T_EOL && prev_token == T_WORD && | ||
293 | (token == T_EQUAL || token == T_COLON_EQUAL || token == T_PLUS_EQUAL)) | ||
294 | BEGIN(ASSIGN_VAL); | ||
295 | |||
296 | prev_prev_token = prev_token; | ||
291 | prev_token = token; | 297 | prev_token = token; |
292 | 298 | ||
293 | return token; | 299 | return token; |