Add basic parsing for menu lists with only loadMenus instructions

This commit is contained in:
Jan
2021-10-31 15:37:46 +01:00
parent 037e13b874
commit bba55706bf
27 changed files with 602 additions and 1 deletions

View File

@ -0,0 +1,30 @@
#pragma once
#include "MenuFileParserState.h"
#include "Parsing/Simple/SimpleLexer.h"
#include "Parsing/Simple/SimpleParserValue.h"
#include "Parsing/Impl/AbstractParser.h"
class MenuFileParser final : public AbstractParser<SimpleParserValue, MenuFileParserState>
{
std::vector<std::unique_ptr<sequence_t>> m_all_tests;
std::vector<sequence_t*> m_no_scope_tests;
std::vector<sequence_t*> m_global_scope_tests;
std::vector<sequence_t*> m_function_scope_tests;
std::vector<sequence_t*> m_menu_scope_tests;
std::vector<sequence_t*> m_item_scope_tests;
void AddTest(std::vector<sequence_t*>& collection, std::unique_ptr<sequence_t> test);
void CreateNoScopeTests();
void CreateGlobalScopeTests();
void CreateFunctionScopeTests();
void CreateMenuScopeTests();
void CreateItemScopeTests();
void CreateTestCollections();
protected:
const std::vector<sequence_t*>& GetTestsForState() override;
public:
MenuFileParser(SimpleLexer* lexer, MenuFeatureLevel featureLevel);
};