discover/grub2: Move parser-api definitions to parser.y No need for a separate file here. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Implement multiple-arv variable splitting If we expand a variable containing word-delimiter chars, we need to create new argv items. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Add menuentry execution Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Fix word append The parser was setting word->next on the top-level word, resulting in word chains of a maximum length of 2. Instead, use a last pointer to always append to the last word. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Handle var tokens in lexer Rather than post-processing to expand variables, use the lexer to identify variable tokens as a type of grub2_word. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Add initial execution code Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Use subclass-style structs for AST Use embedded 'struct grub2_statement' data to create a subclass-style syntax tree of statements. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Implement statement blocks Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/grub2: Add structures & API for parser Signed-off-by: Jeremy Kerr <jk@ozlabs.org>