mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-21 08:35:43 +00:00
30 lines
969 B
C++
30 lines
969 B
C++
#pragma once
|
|
|
|
#include "Utils/ClassUtils.h"
|
|
#include "StructuredDataDefParserState.h"
|
|
#include "StructuredDataDef/CommonStructuredDataDef.h"
|
|
#include "Parsing/Simple/SimpleLexer.h"
|
|
#include "Parsing/Simple/SimpleParserValue.h"
|
|
#include "Parsing/Impl/AbstractParser.h"
|
|
|
|
namespace sdd
|
|
{
|
|
class StructuredDataDefParser final : public AbstractParser<SimpleParserValue, StructuredDataDefParserState>
|
|
{
|
|
std::vector<std::unique_ptr<sequence_t>> m_all_tests;
|
|
std::vector<sequence_t*> m_no_scope_tests;
|
|
std::vector<sequence_t*> m_def_tests;
|
|
std::vector<sequence_t*> m_enum_tests;
|
|
std::vector<sequence_t*> m_struct_tests;
|
|
|
|
void CreateSequenceCollections();
|
|
|
|
protected:
|
|
const std::vector<sequence_t*>& GetTestsForState() override;
|
|
|
|
public:
|
|
explicit StructuredDataDefParser(SimpleLexer* lexer);
|
|
_NODISCARD std::vector<std::unique_ptr<CommonStructuredDataDef>> GetDefs() const;
|
|
};
|
|
}
|