]> git.ozlabs.org Git - petitboot/blobdiff - discover/grub2/parser.y
discover/grub2: Implement submenu
[petitboot] / discover / grub2 / parser.y
index bcf5935d58015c054b7666e8a0595bbd732c786b..859eba30479b93eeac8fa4a8c00d21d7916931d4 100644 (file)
@@ -39,6 +39,7 @@ static void yyerror(struct grub2_parser *, char const *s);
 %token TOKEN_IN                "in"
 %token TOKEN_MENUENTRY         "menuentry"
 %token TOKEN_SELECT            "select"
+%token TOKEN_SUBMENU           "submenu"
 %token TOKEN_THEN              "then"
 %token TOKEN_TIME              "time"
 %token TOKEN_UTIL              "until"
@@ -103,6 +104,12 @@ statement: TOKEN_EOL {
                TOKEN_EOL {
                $$ = create_statement_menuentry(parser, $3, $6);
        }
+       | "submenu" TOKEN_DELIM words TOKEN_DELIM
+               '{' statements '}'
+               TOKEN_EOL {
+               /* we just flatten everything */
+               $$ = create_statement_block(parser, $6);
+       }
 
 words: word {
                $$ = create_argv(parser);