Use CommonLocalizeEntry in parser

This commit is contained in:
Jan 2023-12-31 13:40:51 +01:00
parent 7c50dd84a7
commit eb065658e6
No known key found for this signature in database
GPG Key ID: 44B581F78FF5C57C
8 changed files with 14 additions and 13 deletions

View File

@ -30,9 +30,8 @@ bool LocalizeCommonAssetLoader::LoadLocalizeAsset(const std::string& assetName,
LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language, zoneState); LocalizeFileReader reader(*file.m_stream, assetName, zone->m_language, zoneState);
const auto localizeEntries = reader.ReadLocalizeFile(); const auto localizeEntries = reader.ReadLocalizeFile();
for (const auto& [key, value] : localizeEntries) for (const auto& entry : localizeEntries)
{ {
CommonLocalizeEntry entry(key, value);
m_entry_callback(entry); m_entry_callback(entry);
} }

View File

@ -32,7 +32,7 @@ const std::vector<AbstractParser<SimpleParserValue, LocalizeFileParserState>::se
return !m_state->m_end ? tests : noTests; return !m_state->m_end ? tests : noTests;
} }
std::map<std::string, std::string> LocalizeFileParser::GetParsedValues() std::vector<CommonLocalizeEntry> LocalizeFileParser::GetParsedValues()
{ {
return std::move(m_state->m_entries); return std::move(m_state->m_entries);
} }

View File

@ -13,5 +13,5 @@ protected:
public: public:
LocalizeFileParser(SimpleLexer* lexer, GameLanguage language, LocalizeReadingZoneState* zoneState); LocalizeFileParser(SimpleLexer* lexer, GameLanguage language, LocalizeReadingZoneState* zoneState);
std::map<std::string, std::string> GetParsedValues(); std::vector<CommonLocalizeEntry> GetParsedValues();
}; };

View File

@ -1,6 +1,7 @@
#include "LocalizeFileParserState.h" #include "LocalizeFileParserState.h"
#include "Localize/LocalizeCommon.h" #include "Localize/LocalizeCommon.h"
#include "Utils/StringUtils.h"
LocalizeFileParserState::LocalizeFileParserState(const GameLanguage language, LocalizeReadingZoneState* zoneState) LocalizeFileParserState::LocalizeFileParserState(const GameLanguage language, LocalizeReadingZoneState* zoneState)
: m_end(false), : m_end(false),
@ -8,6 +9,5 @@ LocalizeFileParserState::LocalizeFileParserState(const GameLanguage language, Lo
m_zone_state(zoneState) m_zone_state(zoneState)
{ {
m_language_name_caps = LocalizeCommon::GetNameOfLanguage(m_language); m_language_name_caps = LocalizeCommon::GetNameOfLanguage(m_language);
for (auto& c : m_language_name_caps) utils::MakeStringUpperCase(m_language_name_caps);
c = static_cast<char>(toupper(c));
} }

View File

@ -1,17 +1,18 @@
#pragma once #pragma once
#include "Game/GameLanguage.h" #include "Game/GameLanguage.h"
#include "Localize/CommonLocalizeEntry.h"
#include "Localize/LocalizeReadingZoneState.h" #include "Localize/LocalizeReadingZoneState.h"
#include <map>
#include <unordered_set> #include <unordered_set>
#include <vector>
class LocalizeFileParserState class LocalizeFileParserState
{ {
public: public:
bool m_end; bool m_end;
std::map<std::string, std::string> m_entries; std::vector<CommonLocalizeEntry> m_entries;
GameLanguage m_language; GameLanguage m_language;
LocalizeReadingZoneState* m_zone_state; LocalizeReadingZoneState* m_zone_state;

View File

@ -28,7 +28,7 @@ void LocalizeFileReader::SetupStreamProxies()
m_stream = m_open_streams.back().get(); m_stream = m_open_streams.back().get();
} }
std::map<std::string, std::string> LocalizeFileReader::ReadLocalizeFile() std::vector<CommonLocalizeEntry> LocalizeFileReader::ReadLocalizeFile()
{ {
SimpleLexer::Config lexerConfig; SimpleLexer::Config lexerConfig;
lexerConfig.m_emit_new_line_tokens = true; lexerConfig.m_emit_new_line_tokens = true;
@ -43,6 +43,6 @@ std::map<std::string, std::string> LocalizeFileReader::ReadLocalizeFile()
if (parser->Parse()) if (parser->Parse())
return parser->GetParsedValues(); return parser->GetParsedValues();
std::cout << "Parsing localization file failed!" << std::endl; std::cerr << "Parsing localization file failed!" << std::endl;
return std::map<std::string, std::string>(); return std::vector<CommonLocalizeEntry>();
} }

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "Game/GameLanguage.h" #include "Game/GameLanguage.h"
#include "Localize/CommonLocalizeEntry.h"
#include "Localize/LocalizeReadingZoneState.h" #include "Localize/LocalizeReadingZoneState.h"
#include "Parsing/IParserLineStream.h" #include "Parsing/IParserLineStream.h"
@ -23,5 +24,5 @@ class LocalizeFileReader
public: public:
LocalizeFileReader(std::istream& stream, std::string fileName, GameLanguage language, LocalizeReadingZoneState* zoneState); LocalizeFileReader(std::istream& stream, std::string fileName, GameLanguage language, LocalizeReadingZoneState* zoneState);
std::map<std::string, std::string> ReadLocalizeFile(); std::vector<CommonLocalizeEntry> ReadLocalizeFile();
}; };

View File

@ -38,6 +38,6 @@ void SequenceLocalizeFileLanguageValue::ProcessMatch(LocalizeFileParserState* st
std::cout << "Localize: a value for reference \"" << currentReference << "\" was already defined\n"; std::cout << "Localize: a value for reference \"" << currentReference << "\" was already defined\n";
} }
state->m_entries[currentReference] = valueToken.StringValue(); state->m_entries.emplace_back(currentReference, valueToken.StringValue());
} }
} }