X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fgrub2%2Fgrub2-lexer.l;h=81dc5fe8ac78678d883a8c8325ace472fe953fed;hp=52575e390713a3a6b1fe576a6fb0a76ae7abf0c0;hb=03eba1d68dbf7ffc9690d73f957c33b8f492e627;hpb=00a881a1adb6f656049939adecb9bf9edd29a658 diff --git a/discover/grub2/grub2-lexer.l b/discover/grub2/grub2-lexer.l index 52575e3..81dc5fe 100644 --- a/discover/grub2/grub2-lexer.l +++ b/discover/grub2/grub2-lexer.l @@ -23,6 +23,7 @@ void yyerror(struct grub2_parser *parser, const char *fmt, ...); WORD [^{}|&$;<> \t\n'"#]+ DELIM [ \t]+ +BLANK ["]{2}|[']{2} VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) %% @@ -52,6 +53,12 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) "until" return TOKEN_UTIL; "while" return TOKEN_WHILE; + /* ignore quoted empty strings */ +{BLANK} { + yylval->word = create_word_text(yyget_extra(yyscanner), ""); + yyget_extra(yyscanner)->inter_word = true; + return TOKEN_WORD; + } /* anything that's not a metachar: return as a plain word */ {WORD} { yylval->word = create_word_text(yyget_extra(yyscanner), yytext);