13 struct grub2_word *next;
14 struct list_item argv_list;
21 struct grub2_statement_simple {
22 struct grub2_argv *argv;
25 struct grub2_statement_menuentry {
26 struct grub2_argv *argv;
27 struct grub2_statements *statements;
30 struct grub2_statement_if {
31 struct grub2_statement *condition;
32 struct grub2_statements *true_case;
33 struct grub2_statements *false_case;
36 struct grub2_statement {
37 struct list_item list;
44 struct grub2_statement_simple simple;
45 struct grub2_statement_menuentry menuentry;
46 struct grub2_statement_if ifstmt;
50 struct grub2_statements {
56 struct grub2_statements *statements;
59 struct grub2_statements *create_statements(struct grub2_parser *parser);
61 struct grub2_statement *create_statement_simple(struct grub2_parser *parser,
62 struct grub2_argv *argv);
64 struct grub2_statement *create_statement_menuentry(struct grub2_parser *parser,
65 struct grub2_argv *argv, struct grub2_statements *stmts);
67 struct grub2_statement *create_statement_if(struct grub2_parser *parser,
68 struct grub2_statement *condition,
69 struct grub2_statements *true_case,
70 struct grub2_statements *false_case);
72 struct grub2_word *create_word(struct grub2_parser *parser, const char *text,
73 bool expand, bool split);
75 struct grub2_argv *create_argv(struct grub2_parser *parser);
77 void statement_append(struct grub2_statements *stmts,
78 struct grub2_statement *stmt);
80 void argv_append(struct grub2_argv *argv, struct grub2_word *word);
82 void word_append(struct grub2_word *w1, struct grub2_word *w2);