13 struct grub2_word *next;
14 struct list_item argv_list;
21 struct grub2_statements {
25 struct grub2_statement {
26 struct list_item list;
35 struct grub2_statement_simple {
36 struct grub2_statement st;
37 struct grub2_argv *argv;
40 struct grub2_statement_menuentry {
41 struct grub2_statement st;
42 struct grub2_argv *argv;
43 struct grub2_statements *statements;
46 struct grub2_statement_if {
47 struct grub2_statement st;
48 struct grub2_statement *condition;
49 struct grub2_statements *true_case;
50 struct grub2_statements *false_case;
53 struct grub2_statement_block {
54 struct grub2_statement st;
55 struct grub2_statements *statements;
60 struct grub2_statements *statements;
63 struct grub2_statements *create_statements(struct grub2_parser *parser);
65 struct grub2_statement *create_statement_simple(struct grub2_parser *parser,
66 struct grub2_argv *argv);
68 struct grub2_statement *create_statement_menuentry(struct grub2_parser *parser,
69 struct grub2_argv *argv, struct grub2_statements *stmts);
71 struct grub2_statement *create_statement_if(struct grub2_parser *parser,
72 struct grub2_statement *condition,
73 struct grub2_statements *true_case,
74 struct grub2_statements *false_case);
76 struct grub2_statement *create_statement_block(struct grub2_parser *parser,
77 struct grub2_statements *stmts);
79 struct grub2_word *create_word(struct grub2_parser *parser, const char *text,
80 bool expand, bool split);
82 struct grub2_argv *create_argv(struct grub2_parser *parser);
84 void statement_append(struct grub2_statements *stmts,
85 struct grub2_statement *stmt);
87 void argv_append(struct grub2_argv *argv, struct grub2_word *word);
89 void word_append(struct grub2_word *w1, struct grub2_word *w2);