3 %lex-param { yyscan_t scanner }
4 %parse-param { struct grub2_parser *parser }
11 #define YYLEX_PARAM parser->scanner
13 static void yyerror(struct grub2_parser *, char const *s);
25 %token TOKEN_LDSQBRACKET "[["
26 %token TOKEN_RDSQBRACKET "]]"
27 %token TOKEN_CASE "case"
29 %token TOKEN_DONE "done"
30 %token TOKEN_ELIF "elif"
31 %token TOKEN_ESAC "esac"
33 %token TOKEN_FOR "for"
34 %token TOKEN_FUNCTION "function"
37 %token TOKEN_MENUENTRY "menuentry"
38 %token TOKEN_SELECT "select"
39 %token TOKEN_THEN "then"
40 %token TOKEN_TIME "time"
41 %token TOKEN_UTIL "until"
42 %token TOKEN_WHILE "while"
58 | statements statement
64 | "if" TOKEN_DELIM statement
68 | "menuentry" TOKEN_DELIM words TOKEN_DELIM
74 | words TOKEN_DELIM word
82 void yyerror(struct grub2_parser *parser, char const *s)
84 fprintf(stderr, "%d: error: %s '%s'\n",
85 yyget_lineno(parser->scanner),
86 s, yyget_text(parser->scanner));