Commit 824fa3b3 authored by Masahiro Yamada's avatar Masahiro Yamada

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: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent b3d1d9d3
...@@ -25,6 +25,7 @@ static struct { ...@@ -25,6 +25,7 @@ static struct {
int lineno; int lineno;
} current_pos; } current_pos;
static int prev_prev_token = T_EOL;
static int prev_token = T_EOL; static int prev_token = T_EOL;
static char *text; static char *text;
static int text_size, text_asize; static int text_size, text_asize;
...@@ -117,9 +118,9 @@ n [A-Za-z0-9_-] ...@@ -117,9 +118,9 @@ n [A-Za-z0-9_-]
return T_WORD; return T_WORD;
free(yylval.string); free(yylval.string);
} }
"=" { BEGIN(ASSIGN_VAL); return T_EQUAL; } "=" return T_EQUAL;
":=" { BEGIN(ASSIGN_VAL); return T_COLON_EQUAL; } ":=" return T_COLON_EQUAL;
"+=" { BEGIN(ASSIGN_VAL); return T_PLUS_EQUAL; } "+=" return T_PLUS_EQUAL;
[[:blank:]]+ [[:blank:]]+
. warn_ignored_character(*yytext); . warn_ignored_character(*yytext);
\n { \n {
...@@ -288,6 +289,11 @@ repeat: ...@@ -288,6 +289,11 @@ repeat:
if ((prev_token == T_EOL || prev_token == T_HELPTEXT) && token == T_EOL) if ((prev_token == T_EOL || prev_token == T_HELPTEXT) && token == T_EOL)
goto repeat; goto repeat;
if (prev_prev_token == T_EOL && prev_token == T_WORD &&
(token == T_EQUAL || token == T_COLON_EQUAL || token == T_PLUS_EQUAL))
BEGIN(ASSIGN_VAL);
prev_prev_token = prev_token;
prev_token = token; prev_token = token;
return token; return token;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment