BLANK [ \t]
COMMENT ^[ \t]*#.*$
-CHAR [^|&;()<> \t\n\'\"]
+CHAR [^|&$;()<> \t\n\'\"\\]
DIGITS [[:digit:]]+
NAME [[:alpha:]_][[:alnum:][:digit:]_]*
ESC \\.
VARIABLE ${NAME}|$\{{NAME}\}|${DIGITS}|$\{{DIGITS}\}|$\?|$\{\?\}
-DQSTR \"([^\"]|\\\")*\"
+DQSTR \"([^\\\"]|{ESC})*\"
SQSTR \'[^\']*\'
WORD ({CHAR}|{DQSTR}|{SQSTR}|{ESC}|{VARIABLE})+
{WORD} {
RECORD;
/* resplit yytext */
+ grub_dprintf ("lexer", "word: [%s]\n", yytext);
yypush_buffer_state (YY_CURRENT_BUFFER, yyscanner);
if (yy_scan_string (yytext, yyscanner))
{
return GRUB_PARSER_TOKEN_BAD;
}
-
/* Split word into multiple args */
<SPLIT>{