mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-11 07:18:11 -05:00
Use escaped strings with simple lexer whenever appropriate
This commit is contained in:
@ -32,6 +32,7 @@ std::vector<LocalizeFileEntry> LocalizeFileReader::ReadLocalizeFile()
|
||||
SimpleLexer::Config lexerConfig;
|
||||
lexerConfig.m_emit_new_line_tokens = true;
|
||||
lexerConfig.m_read_strings = true;
|
||||
lexerConfig.m_string_escape_sequences = false; // Escape sequences are handled inside the Parser itself in the Sequence
|
||||
lexerConfig.m_read_integer_numbers = false;
|
||||
lexerConfig.m_read_floating_point_numbers = false;
|
||||
const auto lexer = std::make_unique<SimpleLexer>(m_stream, std::move(lexerConfig));
|
||||
|
@ -18,37 +18,7 @@ SequenceLocalizeFileLanguageValue::SequenceLocalizeFileLanguageValue()
|
||||
std::string SequenceLocalizeFileLanguageValue::UnescapeValue(const std::string& value)
|
||||
{
|
||||
std::ostringstream str;
|
||||
|
||||
auto isEscaped = false;
|
||||
for(const auto c : value)
|
||||
{
|
||||
if(isEscaped)
|
||||
{
|
||||
switch(c)
|
||||
{
|
||||
case 'n':
|
||||
str << '\n';
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
str << '\r';
|
||||
break;
|
||||
|
||||
default:
|
||||
str << c;
|
||||
break;
|
||||
}
|
||||
isEscaped = false;
|
||||
}
|
||||
else if(c == '\\')
|
||||
{
|
||||
isEscaped = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
str << c;
|
||||
}
|
||||
}
|
||||
utils::UnescapeStringFromQuotationMarks(str, value);
|
||||
|
||||
return str.str();
|
||||
}
|
||||
|
@ -47,6 +47,7 @@ std::vector<std::unique_ptr<CommonStructuredDataDef>> StructuredDataDefReader::R
|
||||
SimpleLexer::Config lexerConfig;
|
||||
lexerConfig.m_emit_new_line_tokens = false;
|
||||
lexerConfig.m_read_strings = true;
|
||||
lexerConfig.m_string_escape_sequences = true;
|
||||
lexerConfig.m_read_integer_numbers = true;
|
||||
lexerConfig.m_read_floating_point_numbers = true;
|
||||
const auto lexer = std::make_unique<SimpleLexer>(m_stream, std::move(lexerConfig));
|
||||
|
@ -22,6 +22,7 @@ bool TechniqueFileReader::ReadTechniqueDefinition() const
|
||||
SimpleLexer::Config lexerConfig;
|
||||
lexerConfig.m_emit_new_line_tokens = false;
|
||||
lexerConfig.m_read_strings = true;
|
||||
lexerConfig.m_string_escape_sequences = false;
|
||||
lexerConfig.m_read_integer_numbers = true;
|
||||
lexerConfig.m_read_floating_point_numbers = true;
|
||||
const auto lexer = std::make_unique<SimpleLexer>(m_comment_proxy.get(), std::move(lexerConfig));
|
||||
|
@ -22,6 +22,7 @@ std::unique_ptr<techset::TechsetDefinition> TechsetFileReader::ReadTechsetDefini
|
||||
SimpleLexer::Config lexerConfig;
|
||||
lexerConfig.m_emit_new_line_tokens = false;
|
||||
lexerConfig.m_read_strings = true;
|
||||
lexerConfig.m_string_escape_sequences = false;
|
||||
lexerConfig.m_read_integer_numbers = false;
|
||||
lexerConfig.m_read_floating_point_numbers = false;
|
||||
const auto lexer = std::make_unique<SimpleLexer>(m_comment_proxy.get(), std::move(lexerConfig));
|
||||
|
Reference in New Issue
Block a user