X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fgrub2%2Fparser.y;h=e13cd72a8f72e6358e7dfa7ab7387000b384efc4;hp=2b229b80598ae63488bd17b0810f0d7f89e26198;hb=e651a16f85e9df51ed65d96ea32932f69cbf302d;hpb=4bf4d14afbc46d6bbf11839b1f8fdc9bf66dd16d diff --git a/discover/grub2/parser.y b/discover/grub2/parser.y index 2b229b8..e13cd72 100644 --- a/discover/grub2/parser.y +++ b/discover/grub2/parser.y @@ -29,6 +29,7 @@ static void yyerror(struct grub2_parser *, char const *s); %token TOKEN_DO "do" %token TOKEN_DONE "done" %token TOKEN_ELIF "elif" +%token TOKEN_ELSE "else" %token TOKEN_ESAC "esac" %token TOKEN_FI "fi" %token TOKEN_FOR "for" @@ -85,6 +86,14 @@ statement: TOKEN_EOL { "fi" TOKEN_EOL { $$ = create_statement_if(parser, $3, $6, NULL); } + | "if" TOKEN_DELIM statement + "then" TOKEN_EOL + statements + "else" TOKEN_EOL + statements + "fi" TOKEN_EOL { + $$ = create_statement_if(parser, $3, $6, $9); + } | "menuentry" TOKEN_DELIM words TOKEN_DELIM '{' statements '}' TOKEN_EOL {