From 07fe1662d2a49f4e9e3c5b0451d141f69328262d Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Tue, 24 Sep 2013 13:55:57 +0800 Subject: [PATCH] discover/grub2: Allow both delimiters and EOLs after a "then" reserved word Putting an if-statement on one line should be possible: if true; then echo "true"; else echo "false"; fi To do this, we'll need to allow both EOLs and TOKEN_DELIM after then and else. Signed-off-by: Jeremy Kerr --- discover/grub2/parser.y | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/discover/grub2/parser.y b/discover/grub2/parser.y index 6d3ff21..02ca7b2 100644 --- a/discover/grub2/parser.y +++ b/discover/grub2/parser.y @@ -84,7 +84,9 @@ statements: /* empty */ { $$ = $1; } -conditional: statement TOKEN_EOL "then" TOKEN_EOL statements { +sep: TOKEN_DELIM | TOKEN_EOL; + +conditional: statement TOKEN_EOL "then" sep statements { $$ = create_statement_conditional(parser, $1, $5); } @@ -112,7 +114,7 @@ statement: } | "if" TOKEN_DELIM conditional elifs - "else" TOKEN_EOL + "else" sep statements "fi" { $$ = create_statement_if(parser, $3, $4, $7); -- 2.39.2