]> git.ozlabs.org Git - petitboot/blobdiff - discover/grub2/lexer.l
discover/grub2/lexer: Require 1+ spaces for a TOKEN_DELIM
[petitboot] / discover / grub2 / lexer.l
index 6c0a456e6503137f2be5c466e2b57d396fc3d33e..0558ed9d791c38c12b852e1eba95389aa65b0915 100644 (file)
@@ -21,7 +21,7 @@
 %x sqstring
 %x dqstring
 
-WORD   [^{}|&$;<> \t\n'"]+
+WORD   [^{}|&$;<> \t\n'"#]+
 VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#])
 
 %%
@@ -29,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;
@@ -47,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;
@@ -115,8 +116,7 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#])
 [ \t]*(;|\n)[ \t]*     return TOKEN_EOL;
 
  /* strip comments */
-#.*$   ;
-
+#.*    ;
 
 .      printf("unknown token '%s'\n", yytext); exit(1);