for loop support to grub script
This commit is contained in:
parent
f7867a01d3
commit
4e6a305be4
8 changed files with 135 additions and 1 deletions
|
@ -106,6 +106,21 @@ struct grub_script_cmdif
|
|||
struct grub_script_cmd *exec_on_false;
|
||||
};
|
||||
|
||||
/* A for statement. */
|
||||
struct grub_script_cmdfor
|
||||
{
|
||||
struct grub_script_cmd cmd;
|
||||
|
||||
/* The name used as looping variable. */
|
||||
struct grub_script_arg *name;
|
||||
|
||||
/* The words loop iterates over. */
|
||||
struct grub_script_arglist *words;
|
||||
|
||||
/* The command list executed in each loop. */
|
||||
struct grub_script_cmd *list;
|
||||
};
|
||||
|
||||
/* A menu entry generate statement. */
|
||||
struct grub_script_cmd_menuentry
|
||||
{
|
||||
|
@ -213,6 +228,12 @@ grub_script_create_cmdif (struct grub_parser_param *state,
|
|||
struct grub_script_cmd *exec_on_true,
|
||||
struct grub_script_cmd *exec_on_false);
|
||||
|
||||
struct grub_script_cmd *
|
||||
grub_script_create_cmdfor (struct grub_parser_param *state,
|
||||
struct grub_script_arg *name,
|
||||
struct grub_script_arglist *words,
|
||||
struct grub_script_cmd *list);
|
||||
|
||||
struct grub_script_cmd *
|
||||
grub_script_create_cmdmenu (struct grub_parser_param *state,
|
||||
struct grub_script_arglist *arglist,
|
||||
|
@ -261,6 +282,7 @@ void grub_script_yyerror (struct grub_parser_param *, char const *);
|
|||
grub_err_t grub_script_execute_cmdline (struct grub_script_cmd *cmd);
|
||||
grub_err_t grub_script_execute_cmdblock (struct grub_script_cmd *cmd);
|
||||
grub_err_t grub_script_execute_cmdif (struct grub_script_cmd *cmd);
|
||||
grub_err_t grub_script_execute_cmdfor (struct grub_script_cmd *cmd);
|
||||
grub_err_t grub_script_execute_menuentry (struct grub_script_cmd *cmd);
|
||||
|
||||
/* Execute any GRUB pre-parsed command or script. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue