Taken from Debian. Build with newer flex versions. --- modutils-2.4.27.0.orig/genksyms/lex.l +++ modutils-2.4.27.0/genksyms/lex.l @@ -130,6 +130,7 @@ static int suppress_type_lookup, dont_want_brace_phrase; static struct string_list *next_node; + static int next_token = 0; int token, count = 0; struct string_list *cur_node; @@ -144,7 +145,12 @@ } repeat: - token = yylex1(); + if (next_token != 0) { + token = next_token; + next_token = 0; + } + else + token = yylex1(); if (token == 0) return 0; @@ -425,7 +431,7 @@ { /* Put back the token we just read so's we can find it again after registering the expression. */ - unput(token); + next_token = token; lexstate = ST_NORMAL; token = EXPRESSION_PHRASE;