You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
This commit is contained in:
@@ -36,21 +36,17 @@
|
||||
#include "core/string_buffer.h"
|
||||
|
||||
CharType VariantParser::StreamFile::get_char() {
|
||||
|
||||
return f->get_8();
|
||||
}
|
||||
|
||||
bool VariantParser::StreamFile::is_utf8() const {
|
||||
|
||||
return true;
|
||||
}
|
||||
bool VariantParser::StreamFile::is_eof() const {
|
||||
|
||||
return f->eof_reached();
|
||||
}
|
||||
|
||||
CharType VariantParser::StreamString::get_char() {
|
||||
|
||||
if (pos > s.length()) {
|
||||
return 0;
|
||||
} else if (pos == s.length()) {
|
||||
@@ -92,9 +88,7 @@ const char *VariantParser::tk_name[TK_MAX] = {
|
||||
};
|
||||
|
||||
Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, String &r_err_str) {
|
||||
|
||||
while (true) {
|
||||
|
||||
CharType cchar;
|
||||
if (p_stream->saved) {
|
||||
cchar = p_stream->saved;
|
||||
@@ -108,9 +102,7 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
}
|
||||
|
||||
switch (cchar) {
|
||||
|
||||
case '\n': {
|
||||
|
||||
line++;
|
||||
break;
|
||||
};
|
||||
@@ -119,42 +111,34 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
return OK;
|
||||
} break;
|
||||
case '{': {
|
||||
|
||||
r_token.type = TK_CURLY_BRACKET_OPEN;
|
||||
return OK;
|
||||
};
|
||||
case '}': {
|
||||
|
||||
r_token.type = TK_CURLY_BRACKET_CLOSE;
|
||||
return OK;
|
||||
};
|
||||
case '[': {
|
||||
|
||||
r_token.type = TK_BRACKET_OPEN;
|
||||
return OK;
|
||||
};
|
||||
case ']': {
|
||||
|
||||
r_token.type = TK_BRACKET_CLOSE;
|
||||
return OK;
|
||||
};
|
||||
case '(': {
|
||||
|
||||
r_token.type = TK_PARENTHESIS_OPEN;
|
||||
return OK;
|
||||
};
|
||||
case ')': {
|
||||
|
||||
r_token.type = TK_PARENTHESIS_CLOSE;
|
||||
return OK;
|
||||
};
|
||||
case ':': {
|
||||
|
||||
r_token.type = TK_COLON;
|
||||
return OK;
|
||||
};
|
||||
case ';': {
|
||||
|
||||
while (true) {
|
||||
CharType ch = p_stream->get_char();
|
||||
if (p_stream->is_eof()) {
|
||||
@@ -168,22 +152,18 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
break;
|
||||
};
|
||||
case ',': {
|
||||
|
||||
r_token.type = TK_COMMA;
|
||||
return OK;
|
||||
};
|
||||
case '.': {
|
||||
|
||||
r_token.type = TK_PERIOD;
|
||||
return OK;
|
||||
};
|
||||
case '=': {
|
||||
|
||||
r_token.type = TK_EQUAL;
|
||||
return OK;
|
||||
};
|
||||
case '#': {
|
||||
|
||||
StringBuffer<> color_str;
|
||||
color_str += '#';
|
||||
while (true) {
|
||||
@@ -205,10 +185,8 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
return OK;
|
||||
};
|
||||
case '"': {
|
||||
|
||||
String str;
|
||||
while (true) {
|
||||
|
||||
CharType ch = p_stream->get_char();
|
||||
|
||||
if (ch == 0) {
|
||||
@@ -228,7 +206,6 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
CharType res = 0;
|
||||
|
||||
switch (next) {
|
||||
|
||||
case 'b':
|
||||
res = 8;
|
||||
break;
|
||||
@@ -255,7 +232,6 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))) {
|
||||
|
||||
r_err_str = "Malformed hex constant in string";
|
||||
r_token.type = TK_ERROR;
|
||||
return ERR_PARSE_ERROR;
|
||||
@@ -307,7 +283,6 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
|
||||
} break;
|
||||
default: {
|
||||
|
||||
if (cchar <= 32) {
|
||||
break;
|
||||
}
|
||||
@@ -334,10 +309,8 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
bool is_float = false;
|
||||
|
||||
while (true) {
|
||||
|
||||
switch (reading) {
|
||||
case READING_INT: {
|
||||
|
||||
if (c >= '0' && c <= '9') {
|
||||
//pass
|
||||
} else if (c == '.') {
|
||||
@@ -352,9 +325,7 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
|
||||
} break;
|
||||
case READING_DEC: {
|
||||
|
||||
if (c >= '0' && c <= '9') {
|
||||
|
||||
} else if (c == 'e') {
|
||||
reading = READING_EXP;
|
||||
} else {
|
||||
@@ -363,7 +334,6 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
|
||||
} break;
|
||||
case READING_EXP: {
|
||||
|
||||
if (c >= '0' && c <= '9') {
|
||||
exp_beg = true;
|
||||
|
||||
@@ -393,12 +363,10 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
return OK;
|
||||
|
||||
} else if ((cchar >= 'A' && cchar <= 'Z') || (cchar >= 'a' && cchar <= 'z') || cchar == '_') {
|
||||
|
||||
StringBuffer<> id;
|
||||
bool first = true;
|
||||
|
||||
while ((cchar >= 'A' && cchar <= 'Z') || (cchar >= 'a' && cchar <= 'z') || cchar == '_' || (!first && cchar >= '0' && cchar <= '9')) {
|
||||
|
||||
id += cchar;
|
||||
cchar = p_stream->get_char();
|
||||
first = false;
|
||||
@@ -423,7 +391,6 @@ Error VariantParser::get_token(Stream *p_stream, Token &r_token, int &line, Stri
|
||||
}
|
||||
|
||||
Error VariantParser::_parse_enginecfg(Stream *p_stream, Vector<String> &strings, int &line, String &r_err_str) {
|
||||
|
||||
Token token;
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
@@ -434,7 +401,6 @@ Error VariantParser::_parse_enginecfg(Stream *p_stream, Vector<String> &strings,
|
||||
String accum;
|
||||
|
||||
while (true) {
|
||||
|
||||
CharType c = p_stream->get_char();
|
||||
|
||||
if (p_stream->is_eof()) {
|
||||
@@ -456,7 +422,6 @@ Error VariantParser::_parse_enginecfg(Stream *p_stream, Vector<String> &strings,
|
||||
|
||||
template <class T>
|
||||
Error VariantParser::_parse_construct(Stream *p_stream, Vector<T> &r_construct, int &line, String &r_err_str) {
|
||||
|
||||
Token token;
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
@@ -466,7 +431,6 @@ Error VariantParser::_parse_construct(Stream *p_stream, Vector<T> &r_construct,
|
||||
|
||||
bool first = true;
|
||||
while (true) {
|
||||
|
||||
if (!first) {
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type == TK_COMMA) {
|
||||
@@ -496,7 +460,6 @@ Error VariantParser::_parse_construct(Stream *p_stream, Vector<T> &r_construct,
|
||||
|
||||
Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream, int &line, String &r_err_str, ResourceParser *p_res_parser) {
|
||||
if (token.type == TK_CURLY_BRACKET_OPEN) {
|
||||
|
||||
Dictionary d;
|
||||
Error err = _parse_dictionary(d, p_stream, line, r_err_str, p_res_parser);
|
||||
if (err)
|
||||
@@ -504,7 +467,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = d;
|
||||
return OK;
|
||||
} else if (token.type == TK_BRACKET_OPEN) {
|
||||
|
||||
Array a;
|
||||
Error err = _parse_array(a, p_stream, line, r_err_str, p_res_parser);
|
||||
if (err)
|
||||
@@ -512,7 +474,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = a;
|
||||
return OK;
|
||||
} else if (token.type == TK_IDENTIFIER) {
|
||||
|
||||
String id = token.value;
|
||||
if (id == "true")
|
||||
value = true;
|
||||
@@ -525,7 +486,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
else if (id == "nan")
|
||||
value = Math_NAN;
|
||||
else if (id == "Vector2") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -538,7 +498,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Vector2(args[0], args[1]);
|
||||
} else if (id == "Rect2") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -551,7 +510,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Rect2(args[0], args[1], args[2], args[3]);
|
||||
} else if (id == "Vector3") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -580,7 +538,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
m[2] = Vector2(args[4], args[5]);
|
||||
value = m;
|
||||
} else if (id == "Plane") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -593,7 +550,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Plane(args[0], args[1], args[2], args[3]);
|
||||
} else if (id == "Quat") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -606,7 +562,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Quat(args[0], args[1], args[2], args[3]);
|
||||
} else if (id == "AABB" || id == "Rect3") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -631,7 +586,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Basis(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
|
||||
} else if (id == "Transform") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -644,7 +598,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Transform(Basis(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]), Vector3(args[9], args[10], args[11]));
|
||||
} else if (id == "Color") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -657,7 +610,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = Color(args[0], args[1], args[2], args[3]);
|
||||
} else if (id == "NodePath") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
r_err_str = "Expected '('";
|
||||
@@ -678,7 +630,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
} else if (id == "RID") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
r_err_str = "Expected '('";
|
||||
@@ -699,7 +650,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
} else if (id == "Object") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
r_err_str = "Expected '('";
|
||||
@@ -736,14 +686,12 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
bool need_comma = false;
|
||||
|
||||
while (true) {
|
||||
|
||||
if (p_stream->is_eof()) {
|
||||
r_err_str = "Unexpected End of File while parsing Object()";
|
||||
return ERR_FILE_CORRUPT;
|
||||
}
|
||||
|
||||
if (at_key) {
|
||||
|
||||
Error err = get_token(p_stream, token2, line, r_err_str);
|
||||
if (err != OK)
|
||||
return err;
|
||||
@@ -754,9 +702,7 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
if (need_comma) {
|
||||
|
||||
if (token2.type != TK_COMMA) {
|
||||
|
||||
r_err_str = "Expected '}' or ','";
|
||||
return ERR_PARSE_ERROR;
|
||||
} else {
|
||||
@@ -777,13 +723,11 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
if (err != OK)
|
||||
return err;
|
||||
if (token2.type != TK_COLON) {
|
||||
|
||||
r_err_str = "Expected ':'";
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
at_key = false;
|
||||
} else {
|
||||
|
||||
Error err = get_token(p_stream, token2, line, r_err_str);
|
||||
if (err != OK)
|
||||
return err;
|
||||
@@ -798,7 +742,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
}
|
||||
} else if (id == "Resource" || id == "SubResource" || id == "ExtResource") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
r_err_str = "Expected '('";
|
||||
@@ -806,7 +749,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
if (p_res_parser && id == "Resource" && p_res_parser->func) {
|
||||
|
||||
RES res;
|
||||
Error err = p_res_parser->func(p_res_parser->userdata, p_stream, res, line, r_err_str);
|
||||
if (err)
|
||||
@@ -814,7 +756,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = res;
|
||||
} else if (p_res_parser && id == "ExtResource" && p_res_parser->ext_func) {
|
||||
|
||||
RES res;
|
||||
Error err = p_res_parser->ext_func(p_res_parser->userdata, p_stream, res, line, r_err_str);
|
||||
if (err)
|
||||
@@ -822,7 +763,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = res;
|
||||
} else if (p_res_parser && id == "SubResource" && p_res_parser->sub_func) {
|
||||
|
||||
RES res;
|
||||
Error err = p_res_parser->sub_func(p_res_parser->userdata, p_stream, res, line, r_err_str);
|
||||
if (err)
|
||||
@@ -830,7 +770,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
value = res;
|
||||
} else {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type == TK_STRING) {
|
||||
String path = token.value;
|
||||
@@ -854,7 +793,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
} else if (id == "InputEvent") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
r_err_str = "Expected '('";
|
||||
@@ -873,7 +811,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
Ref<InputEvent> ie;
|
||||
|
||||
if (id2 == "NONE") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
|
||||
if (token.type != TK_PARENTHESIS_CLOSE) {
|
||||
@@ -882,7 +819,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
} else if (id2 == "KEY") {
|
||||
|
||||
Ref<InputEventKey> key;
|
||||
key.instance();
|
||||
ie = key;
|
||||
@@ -898,10 +834,8 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
String name = token.value;
|
||||
key->set_scancode(find_keycode(name));
|
||||
} else if (token.type == TK_NUMBER) {
|
||||
|
||||
key->set_scancode(token.value);
|
||||
} else {
|
||||
|
||||
r_err_str = "Expected string or integer for keycode";
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
@@ -909,7 +843,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
|
||||
if (token.type == TK_COMMA) {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
|
||||
if (token.type != TK_IDENTIFIER) {
|
||||
@@ -935,13 +868,11 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
} else if (token.type != TK_PARENTHESIS_CLOSE) {
|
||||
|
||||
r_err_str = "Expected ')' or modifier flags.";
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
|
||||
} else if (id2 == "MBUTTON") {
|
||||
|
||||
Ref<InputEventMouseButton> mb;
|
||||
mb.instance();
|
||||
ie = mb;
|
||||
@@ -967,7 +898,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
} else if (id2 == "JBUTTON") {
|
||||
|
||||
Ref<InputEventJoypadButton> jb;
|
||||
jb.instance();
|
||||
ie = jb;
|
||||
@@ -993,7 +923,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
} else if (id2 == "JAXIS") {
|
||||
|
||||
Ref<InputEventJoypadMotion> jm;
|
||||
jm.instance();
|
||||
ie = jm;
|
||||
@@ -1035,7 +964,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
r_err_str = "Invalid input event type.";
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
@@ -1043,7 +971,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = ie;
|
||||
#endif
|
||||
} else if (id == "PoolByteArray" || id == "ByteArray") {
|
||||
|
||||
Vector<uint8_t> args;
|
||||
Error err = _parse_construct<uint8_t>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -1062,7 +989,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = arr;
|
||||
|
||||
} else if (id == "PoolIntArray" || id == "IntArray") {
|
||||
|
||||
Vector<int> args;
|
||||
Error err = _parse_construct<int>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -1081,7 +1007,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = arr;
|
||||
|
||||
} else if (id == "PoolRealArray" || id == "FloatArray") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -1100,7 +1025,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = arr;
|
||||
|
||||
} else if (id == "PoolStringArray" || id == "StringArray") {
|
||||
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type != TK_PARENTHESIS_OPEN) {
|
||||
r_err_str = "Expected '('";
|
||||
@@ -1111,7 +1035,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
|
||||
bool first = true;
|
||||
while (true) {
|
||||
|
||||
if (!first) {
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
if (token.type == TK_COMMA) {
|
||||
@@ -1149,7 +1072,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = arr;
|
||||
|
||||
} else if (id == "PoolVector2Array" || id == "Vector2Array") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -1168,7 +1090,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = arr;
|
||||
|
||||
} else if (id == "PoolVector3Array" || id == "Vector3Array") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -1187,7 +1108,6 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
value = arr;
|
||||
|
||||
} else if (id == "PoolColorArray" || id == "ColorArray") {
|
||||
|
||||
Vector<float> args;
|
||||
Error err = _parse_construct<float>(p_stream, args, line, r_err_str);
|
||||
if (err)
|
||||
@@ -1212,15 +1132,12 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
// All above branches end up here unless they had an early return.
|
||||
return OK;
|
||||
} else if (token.type == TK_NUMBER) {
|
||||
|
||||
value = token.value;
|
||||
return OK;
|
||||
} else if (token.type == TK_STRING) {
|
||||
|
||||
value = token.value;
|
||||
return OK;
|
||||
} else if (token.type == TK_COLOR) {
|
||||
|
||||
value = token.value;
|
||||
return OK;
|
||||
} else {
|
||||
@@ -1230,12 +1147,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
|
||||
}
|
||||
|
||||
Error VariantParser::_parse_array(Array &array, Stream *p_stream, int &line, String &r_err_str, ResourceParser *p_res_parser) {
|
||||
|
||||
Token token;
|
||||
bool need_comma = false;
|
||||
|
||||
while (true) {
|
||||
|
||||
if (p_stream->is_eof()) {
|
||||
r_err_str = "Unexpected End of File while parsing array";
|
||||
return ERR_FILE_CORRUPT;
|
||||
@@ -1246,14 +1161,11 @@ Error VariantParser::_parse_array(Array &array, Stream *p_stream, int &line, Str
|
||||
return err;
|
||||
|
||||
if (token.type == TK_BRACKET_CLOSE) {
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
if (need_comma) {
|
||||
|
||||
if (token.type != TK_COMMA) {
|
||||
|
||||
r_err_str = "Expected ','";
|
||||
return ERR_PARSE_ERROR;
|
||||
} else {
|
||||
@@ -1273,34 +1185,28 @@ Error VariantParser::_parse_array(Array &array, Stream *p_stream, int &line, Str
|
||||
}
|
||||
|
||||
Error VariantParser::_parse_dictionary(Dictionary &object, Stream *p_stream, int &line, String &r_err_str, ResourceParser *p_res_parser) {
|
||||
|
||||
bool at_key = true;
|
||||
Variant key;
|
||||
Token token;
|
||||
bool need_comma = false;
|
||||
|
||||
while (true) {
|
||||
|
||||
if (p_stream->is_eof()) {
|
||||
r_err_str = "Unexpected End of File while parsing dictionary";
|
||||
return ERR_FILE_CORRUPT;
|
||||
}
|
||||
|
||||
if (at_key) {
|
||||
|
||||
Error err = get_token(p_stream, token, line, r_err_str);
|
||||
if (err != OK)
|
||||
return err;
|
||||
|
||||
if (token.type == TK_CURLY_BRACKET_CLOSE) {
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
if (need_comma) {
|
||||
|
||||
if (token.type != TK_COMMA) {
|
||||
|
||||
r_err_str = "Expected '}' or ','";
|
||||
return ERR_PARSE_ERROR;
|
||||
} else {
|
||||
@@ -1319,13 +1225,11 @@ Error VariantParser::_parse_dictionary(Dictionary &object, Stream *p_stream, int
|
||||
if (err != OK)
|
||||
return err;
|
||||
if (token.type != TK_COLON) {
|
||||
|
||||
r_err_str = "Expected ':'";
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
at_key = false;
|
||||
} else {
|
||||
|
||||
Error err = get_token(p_stream, token, line, r_err_str);
|
||||
if (err != OK)
|
||||
return err;
|
||||
@@ -1342,7 +1246,6 @@ Error VariantParser::_parse_dictionary(Dictionary &object, Stream *p_stream, int
|
||||
}
|
||||
|
||||
Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, String &r_err_str, Tag &r_tag, ResourceParser *p_res_parser, bool p_simple_tag) {
|
||||
|
||||
r_tag.fields.clear();
|
||||
|
||||
if (token.type != TK_BRACKET_OPEN) {
|
||||
@@ -1351,12 +1254,10 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin
|
||||
}
|
||||
|
||||
if (p_simple_tag) {
|
||||
|
||||
r_tag.name = "";
|
||||
r_tag.fields.clear();
|
||||
|
||||
while (true) {
|
||||
|
||||
CharType c = p_stream->get_char();
|
||||
if (p_stream->is_eof()) {
|
||||
r_err_str = "Unexpected EOF while parsing simple tag";
|
||||
@@ -1383,7 +1284,6 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin
|
||||
bool parsing_tag = true;
|
||||
|
||||
while (true) {
|
||||
|
||||
if (p_stream->is_eof()) {
|
||||
r_err_str = "Unexpected End of File while parsing tag: " + r_tag.name;
|
||||
return ERR_FILE_CORRUPT;
|
||||
@@ -1433,7 +1333,6 @@ Error VariantParser::_parse_tag(Token &token, Stream *p_stream, int &line, Strin
|
||||
}
|
||||
|
||||
Error VariantParser::parse_tag(Stream *p_stream, int &line, String &r_err_str, Tag &r_tag, ResourceParser *p_res_parser, bool p_simple_tag) {
|
||||
|
||||
Token token;
|
||||
get_token(p_stream, token, line, r_err_str);
|
||||
|
||||
@@ -1450,13 +1349,11 @@ Error VariantParser::parse_tag(Stream *p_stream, int &line, String &r_err_str, T
|
||||
}
|
||||
|
||||
Error VariantParser::parse_tag_assign_eof(Stream *p_stream, int &line, String &r_err_str, Tag &r_tag, String &r_assign, Variant &r_value, ResourceParser *p_res_parser, bool p_simple_tag) {
|
||||
|
||||
//assign..
|
||||
r_assign = "";
|
||||
String what;
|
||||
|
||||
while (true) {
|
||||
|
||||
CharType c;
|
||||
if (p_stream->saved) {
|
||||
c = p_stream->saved;
|
||||
@@ -1520,7 +1417,6 @@ Error VariantParser::parse_tag_assign_eof(Stream *p_stream, int &line, String &r
|
||||
}
|
||||
|
||||
Error VariantParser::parse(Stream *p_stream, Variant &r_ret, String &r_err_str, int &r_err_line, ResourceParser *p_res_parser) {
|
||||
|
||||
Token token;
|
||||
Error err = get_token(p_stream, token, r_err_line, r_err_str);
|
||||
if (err)
|
||||
@@ -1538,7 +1434,6 @@ Error VariantParser::parse(Stream *p_stream, Variant &r_ret, String &r_err_str,
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static String rtosfix(double p_value) {
|
||||
|
||||
if (p_value == 0.0)
|
||||
return "0"; //avoid negative zero (-0) being written, which may annoy git, svn, etc. for changes when they don't exist.
|
||||
else
|
||||
@@ -1546,22 +1441,17 @@ static String rtosfix(double p_value) {
|
||||
}
|
||||
|
||||
Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_string_func, void *p_store_string_ud, EncodeResourceFunc p_encode_res_func, void *p_encode_res_ud) {
|
||||
|
||||
switch (p_variant.get_type()) {
|
||||
|
||||
case Variant::NIL: {
|
||||
p_store_string_func(p_store_string_ud, "null");
|
||||
} break;
|
||||
case Variant::BOOL: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, p_variant.operator bool() ? "true" : "false");
|
||||
} break;
|
||||
case Variant::INT: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, itos(p_variant.operator int64_t()));
|
||||
} break;
|
||||
case Variant::REAL: {
|
||||
|
||||
String s = rtosfix(p_variant.operator real_t());
|
||||
if (s != "inf" && s != "nan") {
|
||||
if (s.find(".") == -1 && s.find("e") == -1)
|
||||
@@ -1570,53 +1460,44 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
p_store_string_func(p_store_string_ud, s);
|
||||
} break;
|
||||
case Variant::STRING: {
|
||||
|
||||
String str = p_variant;
|
||||
|
||||
str = "\"" + str.c_escape_multiline() + "\"";
|
||||
p_store_string_func(p_store_string_ud, str);
|
||||
} break;
|
||||
case Variant::VECTOR2: {
|
||||
|
||||
Vector2 v = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "Vector2( " + rtosfix(v.x) + ", " + rtosfix(v.y) + " )");
|
||||
} break;
|
||||
case Variant::RECT2: {
|
||||
|
||||
Rect2 aabb = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "Rect2( " + rtosfix(aabb.position.x) + ", " + rtosfix(aabb.position.y) + ", " + rtosfix(aabb.size.x) + ", " + rtosfix(aabb.size.y) + " )");
|
||||
|
||||
} break;
|
||||
case Variant::VECTOR3: {
|
||||
|
||||
Vector3 v = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "Vector3( " + rtosfix(v.x) + ", " + rtosfix(v.y) + ", " + rtosfix(v.z) + " )");
|
||||
} break;
|
||||
case Variant::PLANE: {
|
||||
|
||||
Plane p = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "Plane( " + rtosfix(p.normal.x) + ", " + rtosfix(p.normal.y) + ", " + rtosfix(p.normal.z) + ", " + rtosfix(p.d) + " )");
|
||||
|
||||
} break;
|
||||
case Variant::AABB: {
|
||||
|
||||
AABB aabb = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "AABB( " + rtosfix(aabb.position.x) + ", " + rtosfix(aabb.position.y) + ", " + rtosfix(aabb.position.z) + ", " + rtosfix(aabb.size.x) + ", " + rtosfix(aabb.size.y) + ", " + rtosfix(aabb.size.z) + " )");
|
||||
|
||||
} break;
|
||||
case Variant::QUAT: {
|
||||
|
||||
Quat quat = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "Quat( " + rtosfix(quat.x) + ", " + rtosfix(quat.y) + ", " + rtosfix(quat.z) + ", " + rtosfix(quat.w) + " )");
|
||||
|
||||
} break;
|
||||
case Variant::TRANSFORM2D: {
|
||||
|
||||
String s = "Transform2D( ";
|
||||
Transform2D m3 = p_variant;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 2; j++) {
|
||||
|
||||
if (i != 0 || j != 0)
|
||||
s += ", ";
|
||||
s += rtosfix(m3.elements[i][j]);
|
||||
@@ -1627,12 +1508,10 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::BASIS: {
|
||||
|
||||
String s = "Basis( ";
|
||||
Basis m3 = p_variant;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 3; j++) {
|
||||
|
||||
if (i != 0 || j != 0)
|
||||
s += ", ";
|
||||
s += rtosfix(m3.elements[i][j]);
|
||||
@@ -1643,13 +1522,11 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::TRANSFORM: {
|
||||
|
||||
String s = "Transform( ";
|
||||
Transform t = p_variant;
|
||||
Basis &m3 = t.basis;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 3; j++) {
|
||||
|
||||
if (i != 0 || j != 0)
|
||||
s += ", ";
|
||||
s += rtosfix(m3.elements[i][j]);
|
||||
@@ -1663,13 +1540,11 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
// misc types
|
||||
case Variant::COLOR: {
|
||||
|
||||
Color c = p_variant;
|
||||
p_store_string_func(p_store_string_ud, "Color( " + rtosfix(c.r) + ", " + rtosfix(c.g) + ", " + rtosfix(c.b) + ", " + rtosfix(c.a) + " )");
|
||||
|
||||
} break;
|
||||
case Variant::NODE_PATH: {
|
||||
|
||||
String str = p_variant;
|
||||
|
||||
str = "NodePath(\"" + str.c_escape() + "\")";
|
||||
@@ -1678,7 +1553,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
} break;
|
||||
|
||||
case Variant::OBJECT: {
|
||||
|
||||
Object *obj = p_variant;
|
||||
|
||||
if (!obj) {
|
||||
@@ -1693,13 +1567,11 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
//try external function
|
||||
if (p_encode_res_func) {
|
||||
|
||||
res_text = p_encode_res_func(p_encode_res_ud, res);
|
||||
}
|
||||
|
||||
//try path because it's a file
|
||||
if (res_text == String() && res->get_path().is_resource_file()) {
|
||||
|
||||
//external resource
|
||||
String path = res->get_path();
|
||||
res_text = "Resource( \"" + path + "\")";
|
||||
@@ -1720,7 +1592,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
obj->get_property_list(&props);
|
||||
bool first = true;
|
||||
for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) {
|
||||
|
||||
if (E->get().usage & PROPERTY_USAGE_STORAGE || E->get().usage & PROPERTY_USAGE_SCRIPT_VARIABLE) {
|
||||
//must be serialized
|
||||
|
||||
@@ -1740,7 +1611,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
} break;
|
||||
|
||||
case Variant::DICTIONARY: {
|
||||
|
||||
Dictionary dict = p_variant;
|
||||
|
||||
List<Variant> keys;
|
||||
@@ -1749,7 +1619,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
p_store_string_func(p_store_string_ud, "{\n");
|
||||
for (List<Variant>::Element *E = keys.front(); E; E = E->next()) {
|
||||
|
||||
/*
|
||||
if (!_check_type(dict[E->get()]))
|
||||
continue;
|
||||
@@ -1768,12 +1637,10 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "[ ");
|
||||
Array array = p_variant;
|
||||
int len = array.size();
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
write(array[i], p_store_string_func, p_store_string_ud, p_encode_res_func, p_encode_res_ud);
|
||||
@@ -1783,7 +1650,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
} break;
|
||||
|
||||
case Variant::POOL_BYTE_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolByteArray( ");
|
||||
String s;
|
||||
PoolVector<uint8_t> data = p_variant;
|
||||
@@ -1791,7 +1657,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
PoolVector<uint8_t>::Read r = data.read();
|
||||
const uint8_t *ptr = r.ptr();
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
|
||||
@@ -1802,7 +1667,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::POOL_INT_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolIntArray( ");
|
||||
PoolVector<int> data = p_variant;
|
||||
int len = data.size();
|
||||
@@ -1810,7 +1674,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
const int *ptr = r.ptr();
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
|
||||
@@ -1821,7 +1684,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::POOL_REAL_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolRealArray( ");
|
||||
PoolVector<real_t> data = p_variant;
|
||||
int len = data.size();
|
||||
@@ -1829,7 +1691,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
const real_t *ptr = r.ptr();
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
p_store_string_func(p_store_string_ud, rtosfix(ptr[i]));
|
||||
@@ -1839,7 +1700,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::POOL_STRING_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolStringArray( ");
|
||||
PoolVector<String> data = p_variant;
|
||||
int len = data.size();
|
||||
@@ -1849,7 +1709,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
//write_string("\n");
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
String str = ptr[i];
|
||||
@@ -1860,7 +1719,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::POOL_VECTOR2_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolVector2Array( ");
|
||||
PoolVector<Vector2> data = p_variant;
|
||||
int len = data.size();
|
||||
@@ -1868,7 +1726,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
const Vector2 *ptr = r.ptr();
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
p_store_string_func(p_store_string_ud, rtosfix(ptr[i].x) + ", " + rtosfix(ptr[i].y));
|
||||
@@ -1878,7 +1735,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::POOL_VECTOR3_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolVector3Array( ");
|
||||
PoolVector<Vector3> data = p_variant;
|
||||
int len = data.size();
|
||||
@@ -1886,7 +1742,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
const Vector3 *ptr = r.ptr();
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
p_store_string_func(p_store_string_ud, rtosfix(ptr[i].x) + ", " + rtosfix(ptr[i].y) + ", " + rtosfix(ptr[i].z));
|
||||
@@ -1896,7 +1751,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
|
||||
} break;
|
||||
case Variant::POOL_COLOR_ARRAY: {
|
||||
|
||||
p_store_string_func(p_store_string_ud, "PoolColorArray( ");
|
||||
|
||||
PoolVector<Color> data = p_variant;
|
||||
@@ -1905,7 +1759,6 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
const Color *ptr = r.ptr();
|
||||
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
if (i > 0)
|
||||
p_store_string_func(p_store_string_ud, ", ");
|
||||
|
||||
@@ -1922,14 +1775,12 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
|
||||
}
|
||||
|
||||
static Error _write_to_str(void *ud, const String &p_string) {
|
||||
|
||||
String *str = (String *)ud;
|
||||
(*str) += p_string;
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error VariantWriter::write_to_string(const Variant &p_variant, String &r_string, EncodeResourceFunc p_encode_res_func, void *p_encode_res_ud) {
|
||||
|
||||
r_string = String();
|
||||
|
||||
return write(p_variant, _write_to_str, &r_string, p_encode_res_func, p_encode_res_ud);
|
||||
|
||||
Reference in New Issue
Block a user