Now that we can parse scripts, we want some infrastructure for
execution.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
struct grub2_statements *statements;
};
struct grub2_statements *statements;
};
+struct grub2_script {
+ struct grub2_statements *statements;
+};
+
struct grub2_parser {
void *scanner;
struct grub2_parser {
void *scanner;
- struct grub2_statements *statements;
+ struct grub2_script *script;
};
struct grub2_statements *create_statements(struct grub2_parser *parser);
};
struct grub2_statements *create_statements(struct grub2_parser *parser);
void word_append(struct grub2_word *w1, struct grub2_word *w2);
void word_append(struct grub2_word *w1, struct grub2_word *w2);
+/* script interface */
+
+struct grub2_script *create_script(void *ctx);
+
- parser->statements = $1;
+ parser->script->statements = $1;
}
statements: statement {
}
statements: statement {
--- /dev/null
+
+#include <talloc/talloc.h>
+
+#include "grub2.h"
+
+struct grub2_script *create_script(void *ctx)
+{
+ struct grub2_script *script;
+ script = talloc(ctx, struct grub2_script);
+ return script;
+}
+