changed: names of methods in SpaceParser: PascalCase to snake_case
This commit is contained in:
parent
6e4a0f68b3
commit
c11aa78335
|
@ -72,7 +72,7 @@ int SpaceParser::get_last_parsed_line()
|
|||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSONFile(const char * file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json_file(const char * file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
reading_from_file = true;
|
||||
parsing_space = false;
|
||||
|
@ -83,7 +83,7 @@ SpaceParser::Status SpaceParser::ParseJSONFile(const char * file_name, Space & o
|
|||
|
||||
if( file )
|
||||
{
|
||||
ParseRootSpace(clear_space);
|
||||
parse_root_space(clear_space);
|
||||
file.close();
|
||||
}
|
||||
else
|
||||
|
@ -96,34 +96,34 @@ return status;
|
|||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSONFile(const std::string & file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json_file(const std::string & file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseJSONFile(file_name.c_str(), out_space, clear_space);
|
||||
return parse_json_file(file_name.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSONFile(const wchar_t * file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json_file(const wchar_t * file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
std::string file_name_utf8;
|
||||
|
||||
wide_to_utf8(file_name, file_name_utf8);
|
||||
return ParseJSONFile(file_name_utf8.c_str(), out_space, clear_space);
|
||||
return parse_json_file(file_name_utf8.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSONFile(const std::wstring & file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json_file(const std::wstring & file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseJSONFile(file_name.c_str(), out_space, clear_space);
|
||||
return parse_json_file(file_name.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpaceFile(const char * file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space_file(const char * file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
reading_from_file = true;
|
||||
parsing_space = true;
|
||||
|
@ -134,7 +134,7 @@ SpaceParser::Status SpaceParser::ParseSpaceFile(const char * file_name, Space &
|
|||
|
||||
if( file )
|
||||
{
|
||||
ParseRootSpace(clear_space);
|
||||
parse_root_space(clear_space);
|
||||
file.close();
|
||||
}
|
||||
else
|
||||
|
@ -147,32 +147,32 @@ return status;
|
|||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpaceFile(const std::string & file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space_file(const std::string & file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseSpaceFile(file_name.c_str(), out_space, clear_space);
|
||||
return parse_space_file(file_name.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpaceFile(const wchar_t * file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space_file(const wchar_t * file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
std::string file_name_utf8;
|
||||
|
||||
wide_to_utf8(file_name, file_name_utf8);
|
||||
return ParseSpaceFile(file_name_utf8.c_str(), out_space, clear_space);
|
||||
return parse_space_file(file_name_utf8.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpaceFile(const std::wstring & file_name, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space_file(const std::wstring & file_name, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseSpaceFile(file_name.c_str(), out_space, clear_space);
|
||||
return parse_space_file(file_name.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSON(const char * str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json(const char * str, Space & out_space, bool clear_space)
|
||||
{
|
||||
reading_from_file = false;
|
||||
reading_from_wchar_string = false;
|
||||
|
@ -181,19 +181,19 @@ SpaceParser::Status SpaceParser::ParseJSON(const char * str, Space & out_space,
|
|||
parsing_space = false;
|
||||
root_space = &out_space;
|
||||
|
||||
ParseRootSpace(clear_space);
|
||||
parse_root_space(clear_space);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSON(const std::string & str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json(const std::string & str, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseJSON(str.c_str(), out_space, clear_space);
|
||||
return parse_json(str.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSON(const wchar_t * str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json(const wchar_t * str, Space & out_space, bool clear_space)
|
||||
{
|
||||
reading_from_file = false;
|
||||
reading_from_wchar_string = true;
|
||||
|
@ -202,22 +202,22 @@ SpaceParser::Status SpaceParser::ParseJSON(const wchar_t * str, Space & out_spac
|
|||
parsing_space = false;
|
||||
root_space = &out_space;
|
||||
|
||||
ParseRootSpace(clear_space);
|
||||
parse_root_space(clear_space);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseJSON(const std::wstring & str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_json(const std::wstring & str, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseJSON(str.c_str(), out_space, clear_space);
|
||||
return parse_json(str.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpace(const char * str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space(const char * str, Space & out_space, bool clear_space)
|
||||
{
|
||||
reading_from_file = false;
|
||||
reading_from_wchar_string = false;
|
||||
|
@ -226,19 +226,19 @@ SpaceParser::Status SpaceParser::ParseSpace(const char * str, Space & out_space,
|
|||
parsing_space = true;
|
||||
root_space = &out_space;
|
||||
|
||||
ParseRootSpace(clear_space);
|
||||
parse_root_space(clear_space);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpace(const std::string & str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space(const std::string & str, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseSpace(str.c_str(), out_space, clear_space);
|
||||
return parse_space(str.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpace(const wchar_t * str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space(const wchar_t * str, Space & out_space, bool clear_space)
|
||||
{
|
||||
reading_from_file = false;
|
||||
reading_from_wchar_string = true;
|
||||
|
@ -247,22 +247,22 @@ SpaceParser::Status SpaceParser::ParseSpace(const wchar_t * str, Space & out_spa
|
|||
parsing_space = true;
|
||||
root_space = &out_space;
|
||||
|
||||
ParseRootSpace(clear_space);
|
||||
parse_root_space(clear_space);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
SpaceParser::Status SpaceParser::ParseSpace(const std::wstring & str, Space & out_space, bool clear_space)
|
||||
SpaceParser::Status SpaceParser::parse_space(const std::wstring & str, Space & out_space, bool clear_space)
|
||||
{
|
||||
return ParseSpace(str.c_str(), out_space, clear_space);
|
||||
return parse_space(str.c_str(), out_space, clear_space);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void SpaceParser::ParseRootSpace(bool clear_root_space)
|
||||
void SpaceParser::parse_root_space(bool clear_root_space)
|
||||
{
|
||||
line = 1;
|
||||
status = ok;
|
||||
|
@ -272,24 +272,24 @@ void SpaceParser::ParseRootSpace(bool clear_root_space)
|
|||
root_space->set_empty_object();
|
||||
}
|
||||
|
||||
ReadChar(); // put first character to lastc
|
||||
read_char(); // put first character to lastc
|
||||
|
||||
if( parsing_space )
|
||||
{
|
||||
separator = '=';
|
||||
table_start = '(';
|
||||
table_end = ')';
|
||||
ParseSpace(root_space);
|
||||
parse_space(root_space);
|
||||
}
|
||||
else
|
||||
{
|
||||
separator = ':';
|
||||
table_start = '[';
|
||||
table_end = ']';
|
||||
Parse(root_space, false, false);
|
||||
parse(root_space, false, false);
|
||||
}
|
||||
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc != -1 )
|
||||
status = syntax_error;
|
||||
|
@ -298,27 +298,27 @@ void SpaceParser::ParseRootSpace(bool clear_root_space)
|
|||
}
|
||||
|
||||
|
||||
void SpaceParser::Parse(Space * space, bool is_object_value, bool is_table_value)
|
||||
void SpaceParser::parse(Space * space, bool is_object_value, bool is_table_value)
|
||||
{
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc == space_start )
|
||||
{
|
||||
ParseSpace(space);
|
||||
parse_space(space);
|
||||
}
|
||||
else
|
||||
if( lastc == table_start )
|
||||
{
|
||||
ParseTable(space);
|
||||
parse_table(space);
|
||||
}
|
||||
else
|
||||
if( lastc == '"' ) // IMPROVEME define a variable
|
||||
{
|
||||
ParseTextValue(space);
|
||||
parse_text_value(space);
|
||||
}
|
||||
else
|
||||
{
|
||||
ReadStringValue(token, is_object_value, is_table_value);
|
||||
read_string_value(token, is_object_value, is_table_value);
|
||||
|
||||
if( token == L"null" )
|
||||
{
|
||||
|
@ -337,12 +337,12 @@ void SpaceParser::Parse(Space * space, bool is_object_value, bool is_table_value
|
|||
else
|
||||
if( is_integer_token() )
|
||||
{
|
||||
ParseIntegerValue(space);
|
||||
parse_integer_value(space);
|
||||
}
|
||||
else
|
||||
if( is_floating_point_token() )
|
||||
{
|
||||
ParseFloatingPointValue(space);
|
||||
parse_floating_point_value(space);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -362,7 +362,7 @@ void SpaceParser::Parse(Space * space, bool is_object_value, bool is_table_value
|
|||
|
||||
|
||||
|
||||
void SpaceParser::ParseSpace(Space * space)
|
||||
void SpaceParser::parse_space(Space * space)
|
||||
{
|
||||
/*
|
||||
* in Space format in global namespace the space start character is not required
|
||||
|
@ -371,19 +371,19 @@ void SpaceParser::ParseSpace(Space * space)
|
|||
|
||||
if( need_space_start_character )
|
||||
{
|
||||
ReadChar(); // inserting a next character after the space_start char to lastc
|
||||
read_char(); // inserting a next character after the space_start char to lastc
|
||||
}
|
||||
|
||||
if( !space->is_object() )
|
||||
space->set_empty_object();
|
||||
|
||||
ParseKeyValuePairs(space);
|
||||
parse_key_value_pairs(space);
|
||||
|
||||
if( need_space_start_character )
|
||||
{
|
||||
if( lastc == space_end )
|
||||
{
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -396,19 +396,19 @@ void SpaceParser::ParseSpace(Space * space)
|
|||
|
||||
|
||||
|
||||
void SpaceParser::ParseTextValue(Space * space)
|
||||
void SpaceParser::parse_text_value(Space * space)
|
||||
{
|
||||
space->set_empty_wstring();
|
||||
std::wstring * str = space->get_wstr();
|
||||
|
||||
if( parsing_space )
|
||||
ReadMultilineTokenQuoted(*str);
|
||||
read_multiline_token_quoted(*str);
|
||||
else
|
||||
ReadTokenQuoted(*str);
|
||||
read_token_quoted(*str);
|
||||
}
|
||||
|
||||
|
||||
void SpaceParser::ParseIntegerValue(Space * space)
|
||||
void SpaceParser::parse_integer_value(Space * space)
|
||||
{
|
||||
const wchar_t * after_str = nullptr;
|
||||
bool was_overflow = false;
|
||||
|
@ -440,7 +440,7 @@ void SpaceParser::ParseIntegerValue(Space * space)
|
|||
}
|
||||
|
||||
|
||||
void SpaceParser::ParseFloatingPointValue(Space * space)
|
||||
void SpaceParser::parse_floating_point_value(Space * space)
|
||||
{
|
||||
wchar_t * after_str = nullptr;
|
||||
double val = wcstod(token.c_str(), &after_str);
|
||||
|
@ -463,15 +463,15 @@ void SpaceParser::ParseFloatingPointValue(Space * space)
|
|||
|
||||
|
||||
|
||||
void SpaceParser::ParseTable(Space * space)
|
||||
void SpaceParser::parse_table(Space * space)
|
||||
{
|
||||
ReadChar(); // inserting a next character after the table_start char to lastc
|
||||
read_char(); // inserting a next character after the table_start char to lastc
|
||||
space->set_empty_table();
|
||||
ParseValuesList(space);
|
||||
parse_values_list(space);
|
||||
|
||||
if( lastc == table_end )
|
||||
{
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -482,25 +482,25 @@ void SpaceParser::ParseTable(Space * space)
|
|||
|
||||
|
||||
|
||||
void SpaceParser::ParseKeyValuePairs(Space * space)
|
||||
void SpaceParser::parse_key_value_pairs(Space * space)
|
||||
{
|
||||
bool is_first = true;
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
while( status == ok && lastc != space_end && lastc != -1 )
|
||||
{
|
||||
if( !is_first )
|
||||
{
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc == option_delimiter )
|
||||
{
|
||||
ReadChar(); // inserting a next character after the option_delimiter to lastc
|
||||
read_char(); // inserting a next character after the option_delimiter to lastc
|
||||
|
||||
if( parsing_space )
|
||||
{
|
||||
// in space format a space_end character is allowed to be after the last table item
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc == space_end )
|
||||
break;
|
||||
|
@ -516,24 +516,24 @@ void SpaceParser::ParseKeyValuePairs(Space * space)
|
|||
|
||||
if( status == ok )
|
||||
{
|
||||
ReadKey();
|
||||
read_key();
|
||||
|
||||
if( status == ok )
|
||||
{
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc == separator )
|
||||
{
|
||||
ReadChar(); // inserting a next character after the separator to lastc
|
||||
read_char(); // inserting a next character after the separator to lastc
|
||||
|
||||
Space & new_space = space->add(token.c_str(), new Space());
|
||||
Parse(&new_space, true, false);
|
||||
parse(&new_space, true, false);
|
||||
}
|
||||
else
|
||||
if( parsing_space && lastc == space_start )
|
||||
{
|
||||
Space & new_space = space->add_child_space(token.c_str());
|
||||
ParseSpace(&new_space);
|
||||
parse_space(&new_space);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -543,32 +543,32 @@ void SpaceParser::ParseKeyValuePairs(Space * space)
|
|||
}
|
||||
|
||||
is_first = false;
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SpaceParser::ParseValuesList(Space * space)
|
||||
void SpaceParser::parse_values_list(Space * space)
|
||||
{
|
||||
bool is_first = true;
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
while( status == ok && lastc != table_end && lastc != -1 )
|
||||
{
|
||||
if( !is_first )
|
||||
{
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc == option_delimiter ) // may add a new delimiter for tables? default the same as for objects...
|
||||
{
|
||||
ReadChar(); // inserting a next character after the delimiter
|
||||
read_char(); // inserting a next character after the delimiter
|
||||
|
||||
if( parsing_space )
|
||||
{
|
||||
// in space format a table_end character is allowed to be after the last table item
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( lastc == table_end )
|
||||
break;
|
||||
|
@ -585,11 +585,11 @@ void SpaceParser::ParseValuesList(Space * space)
|
|||
if( status == ok )
|
||||
{
|
||||
Space * new_space = &space->add(new Space());
|
||||
Parse(new_space, false, true);
|
||||
parse(new_space, false, true);
|
||||
}
|
||||
|
||||
is_first = false;
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -686,14 +686,14 @@ bool SpaceParser::is_floating_point_token()
|
|||
|
||||
|
||||
|
||||
bool SpaceParser::IsWhite(int c)
|
||||
bool SpaceParser::is_white(int c)
|
||||
{
|
||||
// 13 (\r) is at the end of a line in a dos file \r\n
|
||||
// 160 is an unbreakable space
|
||||
if( c==' ' || c=='\t' || c==13 || c==160 || c==10 )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -706,41 +706,41 @@ bool SpaceParser::is_alfa_numeric_char(int c)
|
|||
}
|
||||
|
||||
|
||||
void SpaceParser::SkipLine()
|
||||
void SpaceParser::skip_line()
|
||||
{
|
||||
while( lastc != -1 && (char_was_escaped || lastc != '\n') )
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void SpaceParser::SkipWhite()
|
||||
void SpaceParser::skip_white()
|
||||
{
|
||||
if( parsing_space )
|
||||
{
|
||||
while( IsWhite(lastc) || (!char_was_escaped && lastc == '#') )
|
||||
while( is_white(lastc) || (!char_was_escaped && lastc == '#') )
|
||||
{
|
||||
if( lastc == '#' )
|
||||
SkipLine();
|
||||
skip_line();
|
||||
else
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while( IsWhite(lastc) )
|
||||
while( is_white(lastc) )
|
||||
{
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SpaceParser::TrimLastWhite(std::wstring & s)
|
||||
void SpaceParser::trim_last_white(std::wstring & s)
|
||||
{
|
||||
std::wstring::size_type i;
|
||||
|
||||
for(i=s.size() ; i>0 && IsWhite(s[i-1]) ; --i)
|
||||
for(i=s.size() ; i>0 && is_white(s[i-1]) ; --i)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -752,86 +752,86 @@ void SpaceParser::TrimLastWhite(std::wstring & s)
|
|||
|
||||
|
||||
|
||||
void SpaceParser::ReadTokenUntilDelimiter(std::wstring & token, int delimiter1, int delimiter2)
|
||||
void SpaceParser::read_token_until_delimiter(std::wstring & token, int delimiter1, int delimiter2)
|
||||
{
|
||||
token.clear();
|
||||
|
||||
while( lastc != -1 && (char_was_escaped || (lastc != '\n' && lastc != '#' && lastc != delimiter1 && lastc != delimiter2)) )
|
||||
{
|
||||
token += static_cast<wchar_t>(lastc);
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
|
||||
TrimLastWhite(token);
|
||||
trim_last_white(token);
|
||||
}
|
||||
|
||||
|
||||
void SpaceParser::ReadAlfaNumericToken(std::wstring & token)
|
||||
void SpaceParser::read_alfa_numeric_token(std::wstring & token)
|
||||
{
|
||||
token.clear();
|
||||
|
||||
while( is_alfa_numeric_char(lastc) )
|
||||
{
|
||||
token += static_cast<wchar_t>(lastc);
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SpaceParser::ReadStringValue(std::wstring & token, bool is_object_value, bool is_table_value)
|
||||
void SpaceParser::read_string_value(std::wstring & token, bool is_object_value, bool is_table_value)
|
||||
{
|
||||
if( parsing_space )
|
||||
{
|
||||
if( is_object_value )
|
||||
{
|
||||
ReadTokenUntilDelimiter(token, space_end, -1);
|
||||
read_token_until_delimiter(token, space_end, -1);
|
||||
}
|
||||
else
|
||||
if( is_table_value )
|
||||
{
|
||||
ReadTokenUntilDelimiter(token, table_end, option_delimiter);
|
||||
read_token_until_delimiter(token, table_end, option_delimiter);
|
||||
}
|
||||
else
|
||||
{
|
||||
ReadTokenUntilDelimiter(token, -1, -1);
|
||||
read_token_until_delimiter(token, -1, -1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ReadAlfaNumericToken(token);
|
||||
read_alfa_numeric_token(token);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SpaceParser::ReadSpaceFieldToken(std::wstring & token)
|
||||
void SpaceParser::read_space_field_token(std::wstring & token)
|
||||
{
|
||||
token.clear();
|
||||
|
||||
while( lastc != -1 && (char_was_escaped || (lastc != separator && lastc != 10 && lastc != space_start && lastc != '#' )) )
|
||||
{
|
||||
token += static_cast<wchar_t>(lastc);
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
|
||||
TrimLastWhite(token);
|
||||
trim_last_white(token);
|
||||
}
|
||||
|
||||
|
||||
// IMPROVEME in JSON we should not allow non-escaped a new line character
|
||||
void SpaceParser::ReadTokenQuoted(std::wstring & token)
|
||||
void SpaceParser::read_token_quoted(std::wstring & token)
|
||||
{
|
||||
token.clear();
|
||||
ReadChar(); // skipping the first quotation mark
|
||||
read_char(); // skipping the first quotation mark
|
||||
|
||||
while( lastc != -1 && (char_was_escaped || (lastc != '"' && lastc != 10)) )
|
||||
{
|
||||
token += static_cast<wchar_t>(lastc);
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
|
||||
if( !char_was_escaped && lastc == '"' )
|
||||
{
|
||||
ReadChar(); // skipping the last quotation mark
|
||||
read_char(); // skipping the last quotation mark
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -840,20 +840,20 @@ void SpaceParser::ReadTokenQuoted(std::wstring & token)
|
|||
}
|
||||
|
||||
|
||||
void SpaceParser::ReadMultilineTokenQuoted(std::wstring & token)
|
||||
void SpaceParser::read_multiline_token_quoted(std::wstring & token)
|
||||
{
|
||||
token.clear();
|
||||
ReadChar(); // skipping the first quotation mark
|
||||
read_char(); // skipping the first quotation mark
|
||||
|
||||
while( lastc != -1 && (char_was_escaped || lastc != '"') )
|
||||
{
|
||||
token += static_cast<wchar_t>(lastc);
|
||||
ReadChar();
|
||||
read_char();
|
||||
}
|
||||
|
||||
if( !char_was_escaped && lastc == '"' )
|
||||
{
|
||||
ReadChar(); // skipping the last quotation mark
|
||||
read_char(); // skipping the last quotation mark
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -866,26 +866,26 @@ void SpaceParser::ReadMultilineTokenQuoted(std::wstring & token)
|
|||
* this method is used to read the field name (key) in an object
|
||||
* or to read the space child name (used in Space format)
|
||||
*/
|
||||
void SpaceParser::ReadKey()
|
||||
void SpaceParser::read_key()
|
||||
{
|
||||
SkipWhite();
|
||||
skip_white();
|
||||
|
||||
if( parsing_space )
|
||||
{
|
||||
if( lastc == '"' )
|
||||
{
|
||||
ReadMultilineTokenQuoted(token);
|
||||
read_multiline_token_quoted(token);
|
||||
}
|
||||
else
|
||||
{
|
||||
ReadSpaceFieldToken(token);
|
||||
read_space_field_token(token);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( lastc == '"' )
|
||||
{
|
||||
ReadTokenQuoted(token);
|
||||
read_token_quoted(token);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -897,7 +897,7 @@ void SpaceParser::ReadKey()
|
|||
|
||||
|
||||
|
||||
int SpaceParser::ReadUTF8Char()
|
||||
int SpaceParser::read_utf8_char()
|
||||
{
|
||||
int c;
|
||||
bool correct;
|
||||
|
@ -923,7 +923,7 @@ return lastc;
|
|||
|
||||
|
||||
|
||||
int SpaceParser::ReadASCIIChar()
|
||||
int SpaceParser::read_ascii_char()
|
||||
{
|
||||
lastc = file.get();
|
||||
|
||||
|
@ -936,7 +936,7 @@ return lastc;
|
|||
|
||||
|
||||
|
||||
int SpaceParser::ReadCharFromWcharString()
|
||||
int SpaceParser::read_char_from_wchar_string()
|
||||
{
|
||||
if( *pchar_unicode == 0 )
|
||||
lastc = -1;
|
||||
|
@ -950,7 +950,7 @@ return lastc;
|
|||
}
|
||||
|
||||
|
||||
int SpaceParser::ReadCharFromUTF8String()
|
||||
int SpaceParser::read_char_from_utf8_string()
|
||||
{
|
||||
int c;
|
||||
bool correct;
|
||||
|
@ -975,7 +975,7 @@ return lastc;
|
|||
}
|
||||
|
||||
|
||||
int SpaceParser::ReadCharFromAsciiString()
|
||||
int SpaceParser::read_char_from_ascii_string()
|
||||
{
|
||||
if( *pchar_ascii == 0 )
|
||||
lastc = -1;
|
||||
|
@ -989,32 +989,32 @@ return lastc;
|
|||
}
|
||||
|
||||
|
||||
int SpaceParser::ReadCharNoEscape()
|
||||
int SpaceParser::read_char_no_escape()
|
||||
{
|
||||
if( reading_from_file )
|
||||
{
|
||||
if( input_as_utf8 )
|
||||
return ReadUTF8Char();
|
||||
return read_utf8_char();
|
||||
else
|
||||
return ReadASCIIChar();
|
||||
return read_ascii_char();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( reading_from_wchar_string )
|
||||
{
|
||||
return ReadCharFromWcharString();
|
||||
return read_char_from_wchar_string();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( input_as_utf8 )
|
||||
return ReadCharFromUTF8String();
|
||||
return read_char_from_utf8_string();
|
||||
else
|
||||
return ReadCharFromAsciiString();
|
||||
return read_char_from_ascii_string();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool SpaceParser::IsHexDigit(wchar_t c)
|
||||
bool SpaceParser::is_hex_digit(wchar_t c)
|
||||
{
|
||||
return ((c>='0' && c<='9') ||
|
||||
(c>='a' && c<='f') ||
|
||||
|
@ -1022,7 +1022,7 @@ bool SpaceParser::IsHexDigit(wchar_t c)
|
|||
}
|
||||
|
||||
|
||||
int SpaceParser::HexToInt(wchar_t c)
|
||||
int SpaceParser::hex_to_int(wchar_t c)
|
||||
{
|
||||
if( c>='0' && c<='9' )
|
||||
return c - '0';
|
||||
|
@ -1037,37 +1037,37 @@ return 0;
|
|||
}
|
||||
|
||||
|
||||
void SpaceParser::ReadUnicodeCodePoint()
|
||||
void SpaceParser::read_unicode_code_point()
|
||||
{
|
||||
wchar_t c;
|
||||
int value = 0;
|
||||
|
||||
for(int i=0 ; i<4 ; ++i)
|
||||
{
|
||||
c = ReadCharNoEscape();
|
||||
c = read_char_no_escape();
|
||||
|
||||
if( !IsHexDigit(c) )
|
||||
if( !is_hex_digit(c) )
|
||||
{
|
||||
status = syntax_error;
|
||||
return;
|
||||
}
|
||||
|
||||
value = (value << 4) | HexToInt(c);
|
||||
value = (value << 4) | hex_to_int(c);
|
||||
}
|
||||
|
||||
lastc = (wchar_t)value;
|
||||
}
|
||||
|
||||
|
||||
int SpaceParser::ReadChar()
|
||||
int SpaceParser::read_char()
|
||||
{
|
||||
char_was_escaped = false;
|
||||
ReadCharNoEscape();
|
||||
read_char_no_escape();
|
||||
|
||||
if( lastc == '\\' )
|
||||
{
|
||||
char_was_escaped = true;
|
||||
ReadCharNoEscape();
|
||||
read_char_no_escape();
|
||||
|
||||
switch(lastc)
|
||||
{
|
||||
|
@ -1077,7 +1077,7 @@ int SpaceParser::ReadChar()
|
|||
case 'n': lastc = '\n'; break;
|
||||
case 'b': lastc = 0x08; break;
|
||||
case 'f': lastc = 0x0c; break;
|
||||
case 'u': ReadUnicodeCodePoint(); break;
|
||||
case 'u': read_unicode_code_point(); break;
|
||||
// "in other cases we return the last character, so two \\ returns one \ "
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public:
|
|||
|
||||
|
||||
/*
|
||||
the last status of parsing, set by Parse() methods
|
||||
the last status of parsing, set by parse() methods
|
||||
*/
|
||||
Status status;
|
||||
|
||||
|
@ -78,48 +78,48 @@ public:
|
|||
main methods used to parse a JSON file
|
||||
file_name is the path to a file
|
||||
*/
|
||||
Status ParseJSONFile(const char * file_name, Space & out_space, bool clear_space = true);
|
||||
Status ParseJSONFile(const std::string & file_name, Space & out_space, bool clear_space = true);
|
||||
Status ParseJSONFile(const wchar_t * file_name, Space & out_space, bool clear_space = true);
|
||||
Status ParseJSONFile(const std::wstring & file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_json_file(const char * file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_json_file(const std::string & file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_json_file(const wchar_t * file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_json_file(const std::wstring & file_name, Space & out_space, bool clear_space = true);
|
||||
|
||||
|
||||
/*
|
||||
main methods used to parse a Space file
|
||||
file_name is the path to a file
|
||||
*/
|
||||
Status ParseSpaceFile(const char * file_name, Space & out_space, bool clear_space = true);
|
||||
Status ParseSpaceFile(const std::string & file_name, Space & out_space, bool clear_space = true);
|
||||
Status ParseSpaceFile(const wchar_t * file_name, Space & out_space, bool clear_space = true);
|
||||
Status ParseSpaceFile(const std::wstring & file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_space_file(const char * file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_space_file(const std::string & file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_space_file(const wchar_t * file_name, Space & out_space, bool clear_space = true);
|
||||
Status parse_space_file(const std::wstring & file_name, Space & out_space, bool clear_space = true);
|
||||
|
||||
|
||||
/*
|
||||
main methods used to parse
|
||||
str - input string (either 8bit ascii or UTF-8 -- see UTF8() method)
|
||||
*/
|
||||
Status ParseJSON(const char * str, Space & out_space, bool clear_space = true);
|
||||
Status ParseJSON(const std::string & str, Space & out_space, bool clear_space = true);
|
||||
Status parse_json(const char * str, Space & out_space, bool clear_space = true);
|
||||
Status parse_json(const std::string & str, Space & out_space, bool clear_space = true);
|
||||
|
||||
/*
|
||||
main methods used to parse
|
||||
here input string is always in unicode (wide characters)
|
||||
*/
|
||||
Status ParseJSON(const wchar_t * str, Space & out_space, bool clear_space = true);
|
||||
Status ParseJSON(const std::wstring & str, Space & out_space, bool clear_space = true);
|
||||
Status parse_json(const wchar_t * str, Space & out_space, bool clear_space = true);
|
||||
Status parse_json(const std::wstring & str, Space & out_space, bool clear_space = true);
|
||||
|
||||
|
||||
|
||||
Status ParseSpace(const char * str, Space & out_space, bool clear_space = true);
|
||||
Status ParseSpace(const std::string & str, Space & out_space, bool clear_space = true);
|
||||
Status ParseSpace(const wchar_t * str, Space & out_space, bool clear_space = true);
|
||||
Status ParseSpace(const std::wstring & str, Space & out_space, bool clear_space = true);
|
||||
Status parse_space(const char * str, Space & out_space, bool clear_space = true);
|
||||
Status parse_space(const std::string & str, Space & out_space, bool clear_space = true);
|
||||
Status parse_space(const wchar_t * str, Space & out_space, bool clear_space = true);
|
||||
Status parse_space(const std::wstring & str, Space & out_space, bool clear_space = true);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* add two args Parse method
|
||||
* Status Parse(const char * str, Space & output_space);
|
||||
* add two args parse method
|
||||
* Status parse(const char * str, Space & output_space);
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -160,7 +160,7 @@ private:
|
|||
int line;
|
||||
|
||||
/*
|
||||
true if Parse() method was called
|
||||
true if parse() method was called
|
||||
false if ParseString() was called
|
||||
*/
|
||||
bool reading_from_file;
|
||||
|
@ -260,51 +260,47 @@ private:
|
|||
|
||||
|
||||
|
||||
void ParseRootSpace(bool clear_root_space);
|
||||
void Parse(Space * space, bool is_object_value, bool is_table_value);
|
||||
void ParseSpace(Space * space);
|
||||
void ParseTable(Space * space);
|
||||
void parse_root_space(bool clear_root_space);
|
||||
void parse(Space * space, bool is_object_value, bool is_table_value);
|
||||
void parse_space(Space * space);
|
||||
void parse_table(Space * space);
|
||||
|
||||
void ParseKeyValuePairs(Space * space);
|
||||
void ParseValuesList(Space * space);
|
||||
void parse_key_value_pairs(Space * space);
|
||||
void parse_values_list(Space * space);
|
||||
|
||||
void ReadKey();
|
||||
|
||||
void ParseTextValue(Space * space);
|
||||
void ParseIntegerValue(Space * space);
|
||||
void ParseFloatingPointValue(Space * space);
|
||||
void read_key();
|
||||
|
||||
void parse_text_value(Space * space);
|
||||
void parse_integer_value(Space * space);
|
||||
void parse_floating_point_value(Space * space);
|
||||
|
||||
bool is_alfa_numeric_char(int c);
|
||||
|
||||
void ReadTokenUntilDelimiter(std::wstring & token, int delimiter1, int delimiter2);
|
||||
void ReadAlfaNumericToken(std::wstring & token);
|
||||
void ReadStringValue(std::wstring & token, bool is_object_value, bool is_table_value);
|
||||
|
||||
void read_token_until_delimiter(std::wstring & token, int delimiter1, int delimiter2);
|
||||
void read_alfa_numeric_token(std::wstring & token);
|
||||
void read_string_value(std::wstring & token, bool is_object_value, bool is_table_value);
|
||||
|
||||
bool is_integer_token();
|
||||
bool is_floating_point_token();
|
||||
|
||||
void ReadSpaceFieldToken(std::wstring & token);
|
||||
void ReadTokenQuoted(std::wstring & token);
|
||||
void ReadMultilineTokenQuoted(std::wstring & token);
|
||||
void read_space_field_token(std::wstring & token);
|
||||
void read_token_quoted(std::wstring & token);
|
||||
void read_multiline_token_quoted(std::wstring & token);
|
||||
|
||||
|
||||
|
||||
int ReadUTF8Char();
|
||||
int ReadASCIIChar();
|
||||
int ReadCharFromWcharString();
|
||||
int ReadCharFromUTF8String();
|
||||
int ReadCharFromAsciiString();
|
||||
int ReadCharNoEscape();
|
||||
int ReadChar();
|
||||
bool IsWhite(int c);
|
||||
void SkipLine();
|
||||
void SkipWhite();
|
||||
void TrimLastWhite(std::wstring & s);
|
||||
bool IsHexDigit(wchar_t c);
|
||||
int HexToInt(wchar_t c);
|
||||
void ReadUnicodeCodePoint();
|
||||
int read_utf8_char();
|
||||
int read_ascii_char();
|
||||
int read_char_from_wchar_string();
|
||||
int read_char_from_utf8_string();
|
||||
int read_char_from_ascii_string();
|
||||
int read_char_no_escape();
|
||||
int read_char();
|
||||
bool is_white(int c);
|
||||
void skip_line();
|
||||
void skip_white();
|
||||
void trim_last_white(std::wstring & s);
|
||||
bool is_hex_digit(wchar_t c);
|
||||
int hex_to_int(wchar_t c);
|
||||
void read_unicode_code_point();
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue