2021-03-23 17:16:36 +01:00

39 lines
1.3 KiB
C++

#include "LocalizeFileParser.h"
#include "Sequence/SequenceLocalizeFileConfig.h"
#include "Sequence/SequenceLocalizeFileConsumeEmptyLines.h"
#include "Sequence/SequenceLocalizeFileEndMarker.h"
#include "Sequence/SequenceLocalizeFileLanguageValue.h"
#include "Sequence/SequenceLocalizeFileNotes.h"
#include "Sequence/SequenceLocalizeFileReference.h"
#include "Sequence/SequenceLocalizeFileVersion.h"
LocalizeFileParser::LocalizeFileParser(SimpleLexer* lexer, GameLanguage language)
: AbstractParser(lexer, std::make_unique<LocalizeFileParserState>(language))
{
}
const std::vector<AbstractParser<SimpleParserValue, LocalizeFileParserState>::sequence_t*>& LocalizeFileParser::GetTestsForState()
{
static std::vector<sequence_t*> tests({
new SequenceLocalizeFileReference(),
new SequenceLocalizeFileConfig(),
new SequenceLocalizeFileNotes(),
new SequenceLocalizeFileVersion(),
new SequenceLocalizeFileEndMarker(),
new SequenceLocalizeFileLanguageValue(),
new SequenceLocalizeFileConsumeEmptyLines()
});
static std::vector<sequence_t*> noTests({
new SequenceLocalizeFileConsumeEmptyLines()
});
return !m_state->m_end ? tests : noTests;
}
std::vector<LocalizeFileEntry> LocalizeFileParser::GetParsedValues()
{
return std::move(m_state->m_entries);
}