X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fgrub2%2Flexer.l;h=0558ed9d791c38c12b852e1eba95389aa65b0915;hp=3e1f9fa148c62174acb30258328c578c231f954e;hb=cbe74bd95f301d60d6f2a9ed4f1d687a455e7d40;hpb=e651a16f85e9df51ed65d96ea32932f69cbf302d diff --git a/discover/grub2/lexer.l b/discover/grub2/lexer.l index 3e1f9fa..0558ed9 100644 --- a/discover/grub2/lexer.l +++ b/discover/grub2/lexer.l @@ -12,6 +12,7 @@ %option stack noyy_top_state %option reentrant %option bison-bridge +%option yylineno %option noyyalloc noyyfree noyyrealloc %option extra-type="struct grub2_parser *" %option header-file="lexer.h" @@ -20,7 +21,7 @@ %x sqstring %x dqstring -WORD [^{}|&$;<> \t\n'"]+ +WORD [^{}|&$;<> \t\n'"#]+ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) %% @@ -28,7 +29,7 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) /* discard leading & trailing whitespace, but keep inter-word delimeters */ ^[ \t]+ ; [ \t]+$ ; -[ \t]* return TOKEN_DELIM; +[ \t]+ return TOKEN_DELIM; /* reserved words */ "[[" return TOKEN_LDSQBRACKET; @@ -46,6 +47,7 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) "in" return TOKEN_IN; "menuentry" return TOKEN_MENUENTRY; "select" return TOKEN_SELECT; +"submenu" return TOKEN_SUBMENU; "then" return TOKEN_THEN; "time" return TOKEN_TIME; "until" return TOKEN_UTIL; @@ -114,8 +116,7 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) [ \t]*(;|\n)[ \t]* return TOKEN_EOL; /* strip comments */ -#.*$ ; - +#.* ; . printf("unknown token '%s'\n", yytext); exit(1);