You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2026-01-05 19:31:35 +00:00
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
This commit is contained in:
@@ -45,7 +45,6 @@
|
||||
namespace TestGDScript {
|
||||
|
||||
static void _print_indent(int p_ident, const String &p_text) {
|
||||
|
||||
String txt;
|
||||
for (int i = 0; i < p_ident; i++) {
|
||||
txt += '\t';
|
||||
@@ -55,7 +54,6 @@ static void _print_indent(int p_ident, const String &p_text) {
|
||||
}
|
||||
|
||||
static String _parser_extends(const GDScriptParser::ClassNode *p_class) {
|
||||
|
||||
String txt = "extends ";
|
||||
if (String(p_class->extends_file) != "") {
|
||||
txt += "\"" + p_class->extends_file + "\"";
|
||||
@@ -64,7 +62,6 @@ static String _parser_extends(const GDScriptParser::ClassNode *p_class) {
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_class->extends_class.size(); i++) {
|
||||
|
||||
if (i != 0)
|
||||
txt += ".";
|
||||
|
||||
@@ -75,12 +72,9 @@ static String _parser_extends(const GDScriptParser::ClassNode *p_class) {
|
||||
}
|
||||
|
||||
static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
|
||||
String txt;
|
||||
switch (p_expr->type) {
|
||||
|
||||
case GDScriptParser::Node::TYPE_IDENTIFIER: {
|
||||
|
||||
const GDScriptParser::IdentifierNode *id_node = static_cast<const GDScriptParser::IdentifierNode *>(p_expr);
|
||||
txt = id_node->name;
|
||||
} break;
|
||||
@@ -99,7 +93,6 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
const GDScriptParser::ArrayNode *arr_node = static_cast<const GDScriptParser::ArrayNode *>(p_expr);
|
||||
txt += "[";
|
||||
for (int i = 0; i < arr_node->elements.size(); i++) {
|
||||
|
||||
if (i > 0)
|
||||
txt += ", ";
|
||||
txt += _parser_expr(arr_node->elements[i]);
|
||||
@@ -110,7 +103,6 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
const GDScriptParser::DictionaryNode *dict_node = static_cast<const GDScriptParser::DictionaryNode *>(p_expr);
|
||||
txt += "{";
|
||||
for (int i = 0; i < dict_node->elements.size(); i++) {
|
||||
|
||||
if (i > 0)
|
||||
txt += ", ";
|
||||
|
||||
@@ -122,31 +114,25 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
txt += "}";
|
||||
} break;
|
||||
case GDScriptParser::Node::TYPE_OPERATOR: {
|
||||
|
||||
const GDScriptParser::OperatorNode *c_node = static_cast<const GDScriptParser::OperatorNode *>(p_expr);
|
||||
switch (c_node->op) {
|
||||
|
||||
case GDScriptParser::OperatorNode::OP_PARENT_CALL:
|
||||
txt += ".";
|
||||
[[fallthrough]];
|
||||
case GDScriptParser::OperatorNode::OP_CALL: {
|
||||
|
||||
ERR_FAIL_COND_V(c_node->arguments.size() < 1, "");
|
||||
String func_name;
|
||||
const GDScriptParser::Node *nfunc = c_node->arguments[0];
|
||||
int arg_ofs = 0;
|
||||
if (nfunc->type == GDScriptParser::Node::TYPE_BUILT_IN_FUNCTION) {
|
||||
|
||||
const GDScriptParser::BuiltInFunctionNode *bif_node = static_cast<const GDScriptParser::BuiltInFunctionNode *>(nfunc);
|
||||
func_name = GDScriptFunctions::get_func_name(bif_node->function);
|
||||
arg_ofs = 1;
|
||||
} else if (nfunc->type == GDScriptParser::Node::TYPE_TYPE) {
|
||||
|
||||
const GDScriptParser::TypeNode *t_node = static_cast<const GDScriptParser::TypeNode *>(nfunc);
|
||||
func_name = Variant::get_type_name(t_node->vtype);
|
||||
arg_ofs = 1;
|
||||
} else {
|
||||
|
||||
ERR_FAIL_COND_V(c_node->arguments.size() < 2, "");
|
||||
nfunc = c_node->arguments[1];
|
||||
ERR_FAIL_COND_V(nfunc->type != GDScriptParser::Node::TYPE_IDENTIFIER, "");
|
||||
@@ -161,7 +147,6 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
txt += func_name + "(";
|
||||
|
||||
for (int i = arg_ofs; i < c_node->arguments.size(); i++) {
|
||||
|
||||
const GDScriptParser::Node *arg = c_node->arguments[i];
|
||||
if (i > arg_ofs)
|
||||
txt += ", ";
|
||||
@@ -172,7 +157,6 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_INDEX: {
|
||||
|
||||
ERR_FAIL_COND_V(c_node->arguments.size() != 2, "");
|
||||
|
||||
//index with []
|
||||
@@ -180,7 +164,6 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_INDEX_NAMED: {
|
||||
|
||||
ERR_FAIL_COND_V(c_node->arguments.size() != 2, "");
|
||||
|
||||
txt = _parser_expr(c_node->arguments[0]) + "." + _parser_expr(c_node->arguments[1]);
|
||||
@@ -296,11 +279,9 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
|
||||
} break;
|
||||
case GDScriptParser::Node::TYPE_NEWLINE: {
|
||||
|
||||
//skippie
|
||||
} break;
|
||||
default: {
|
||||
|
||||
ERR_FAIL_V_MSG("", "Parser bug at " + itos(p_expr->line) + ", invalid expression type: " + itos(p_expr->type));
|
||||
}
|
||||
}
|
||||
@@ -309,20 +290,14 @@ static String _parser_expr(const GDScriptParser::Node *p_expr) {
|
||||
}
|
||||
|
||||
static void _parser_show_block(const GDScriptParser::BlockNode *p_block, int p_indent) {
|
||||
|
||||
for (int i = 0; i < p_block->statements.size(); i++) {
|
||||
|
||||
const GDScriptParser::Node *statement = p_block->statements[i];
|
||||
|
||||
switch (statement->type) {
|
||||
|
||||
case GDScriptParser::Node::TYPE_CONTROL_FLOW: {
|
||||
|
||||
const GDScriptParser::ControlFlowNode *cf_node = static_cast<const GDScriptParser::ControlFlowNode *>(statement);
|
||||
switch (cf_node->cf_type) {
|
||||
|
||||
case GDScriptParser::ControlFlowNode::CF_IF: {
|
||||
|
||||
ERR_FAIL_COND(cf_node->arguments.size() != 1);
|
||||
String txt;
|
||||
txt += "if ";
|
||||
@@ -351,7 +326,6 @@ static void _parser_show_block(const GDScriptParser::BlockNode *p_block, int p_i
|
||||
|
||||
} break;
|
||||
case GDScriptParser::ControlFlowNode::CF_WHILE: {
|
||||
|
||||
ERR_FAIL_COND(cf_node->arguments.size() != 1);
|
||||
String txt;
|
||||
txt += "while ";
|
||||
@@ -366,15 +340,12 @@ static void _parser_show_block(const GDScriptParser::BlockNode *p_block, int p_i
|
||||
// FIXME: Implement
|
||||
} break;
|
||||
case GDScriptParser::ControlFlowNode::CF_CONTINUE: {
|
||||
|
||||
_print_indent(p_indent, "continue");
|
||||
} break;
|
||||
case GDScriptParser::ControlFlowNode::CF_BREAK: {
|
||||
|
||||
_print_indent(p_indent, "break");
|
||||
} break;
|
||||
case GDScriptParser::ControlFlowNode::CF_RETURN: {
|
||||
|
||||
if (cf_node->arguments.size())
|
||||
_print_indent(p_indent, "return " + _parser_expr(cf_node->arguments[0]));
|
||||
else
|
||||
@@ -384,7 +355,6 @@ static void _parser_show_block(const GDScriptParser::BlockNode *p_block, int p_i
|
||||
|
||||
} break;
|
||||
case GDScriptParser::Node::TYPE_LOCAL_VAR: {
|
||||
|
||||
const GDScriptParser::LocalVarNode *lv_node = static_cast<const GDScriptParser::LocalVarNode *>(statement);
|
||||
_print_indent(p_indent, "var " + String(lv_node->name));
|
||||
} break;
|
||||
@@ -397,7 +367,6 @@ static void _parser_show_block(const GDScriptParser::BlockNode *p_block, int p_i
|
||||
}
|
||||
|
||||
static void _parser_show_function(const GDScriptParser::FunctionNode *p_func, int p_indent, GDScriptParser::BlockNode *p_initializer = nullptr) {
|
||||
|
||||
String txt;
|
||||
if (p_func->_static)
|
||||
txt = "static ";
|
||||
@@ -409,7 +378,6 @@ static void _parser_show_function(const GDScriptParser::FunctionNode *p_func, in
|
||||
txt += "(";
|
||||
|
||||
for (int i = 0; i < p_func->arguments.size(); i++) {
|
||||
|
||||
if (i != 0)
|
||||
txt += ", ";
|
||||
txt += "var " + String(p_func->arguments[i]);
|
||||
@@ -433,15 +401,12 @@ static void _parser_show_function(const GDScriptParser::FunctionNode *p_func, in
|
||||
}
|
||||
|
||||
static void _parser_show_class(const GDScriptParser::ClassNode *p_class, int p_indent, const Vector<String> &p_code) {
|
||||
|
||||
if (p_indent == 0 && (String(p_class->extends_file) != "" || p_class->extends_class.size())) {
|
||||
|
||||
_print_indent(p_indent, _parser_extends(p_class));
|
||||
print_line("\n");
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_class->subclasses.size(); i++) {
|
||||
|
||||
const GDScriptParser::ClassNode *subclass = p_class->subclasses[i];
|
||||
String line = "class " + subclass->name;
|
||||
if (String(subclass->extends_file) != "" || subclass->extends_class.size())
|
||||
@@ -458,7 +423,6 @@ static void _parser_show_class(const GDScriptParser::ClassNode *p_class, int p_i
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_class->variables.size(); i++) {
|
||||
|
||||
const GDScriptParser::ClassNode::Member &m = p_class->variables[i];
|
||||
|
||||
_print_indent(p_indent, "var " + String(m.identifier));
|
||||
@@ -467,13 +431,11 @@ static void _parser_show_class(const GDScriptParser::ClassNode *p_class, int p_i
|
||||
print_line("\n");
|
||||
|
||||
for (int i = 0; i < p_class->static_functions.size(); i++) {
|
||||
|
||||
_parser_show_function(p_class->static_functions[i], p_indent);
|
||||
print_line("\n");
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_class->functions.size(); i++) {
|
||||
|
||||
if (String(p_class->functions[i]->name) == "_init") {
|
||||
_parser_show_function(p_class->functions[i], p_indent, p_class->initializer);
|
||||
} else
|
||||
@@ -485,11 +447,9 @@ static void _parser_show_class(const GDScriptParser::ClassNode *p_class, int p_i
|
||||
}
|
||||
|
||||
static String _disassemble_addr(const Ref<GDScript> &p_script, const GDScriptFunction &func, int p_addr) {
|
||||
|
||||
int addr = p_addr & GDScriptFunction::ADDR_MASK;
|
||||
|
||||
switch (p_addr >> GDScriptFunction::ADDR_BITS) {
|
||||
|
||||
case GDScriptFunction::ADDR_TYPE_SELF: {
|
||||
return "self";
|
||||
} break;
|
||||
@@ -497,15 +457,12 @@ static String _disassemble_addr(const Ref<GDScript> &p_script, const GDScriptFun
|
||||
return "class";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_MEMBER: {
|
||||
|
||||
return "member(" + p_script->debug_get_member_by_index(addr) + ")";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_CLASS_CONSTANT: {
|
||||
|
||||
return "class_const(" + func.get_global_name(addr) + ")";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_LOCAL_CONSTANT: {
|
||||
|
||||
Variant v = func.get_constant(addr);
|
||||
String txt;
|
||||
if (v.get_type() == Variant::STRING || v.get_type() == Variant::NODE_PATH)
|
||||
@@ -515,15 +472,12 @@ static String _disassemble_addr(const Ref<GDScript> &p_script, const GDScriptFun
|
||||
return "const(" + txt + ")";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_STACK: {
|
||||
|
||||
return "stack(" + itos(addr) + ")";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_STACK_VARIABLE: {
|
||||
|
||||
return "var_stack(" + itos(addr) + ")";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_GLOBAL: {
|
||||
|
||||
return "global(" + func.get_global_name(addr) + ")";
|
||||
} break;
|
||||
case GDScriptFunction::ADDR_TYPE_NIL: {
|
||||
@@ -535,11 +489,9 @@ static String _disassemble_addr(const Ref<GDScript> &p_script, const GDScriptFun
|
||||
}
|
||||
|
||||
static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String> &p_code) {
|
||||
|
||||
const Map<StringName, GDScriptFunction *> &mf = p_class->debug_get_member_functions();
|
||||
|
||||
for (const Map<StringName, GDScriptFunction *>::Element *E = mf.front(); E; E = E->next()) {
|
||||
|
||||
const GDScriptFunction &func = *E->get();
|
||||
const int *code = func.get_code();
|
||||
int codelen = func.get_code_size();
|
||||
@@ -547,7 +499,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
if (func.get_default_argument_count()) {
|
||||
defargs = "defarg at: ";
|
||||
for (int i = 0; i < func.get_default_argument_count(); i++) {
|
||||
|
||||
if (i > 0)
|
||||
defargs += ",";
|
||||
defargs += itos(func.get_default_argument_addr(i));
|
||||
@@ -559,14 +510,11 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
#define DADDR(m_ip) (_disassemble_addr(p_class, func, code[ip + m_ip]))
|
||||
|
||||
for (int ip = 0; ip < codelen;) {
|
||||
|
||||
int incr = 0;
|
||||
String txt = itos(ip) + " ";
|
||||
|
||||
switch (code[ip]) {
|
||||
|
||||
case GDScriptFunction::OPCODE_OPERATOR: {
|
||||
|
||||
int op = code[ip + 1];
|
||||
txt += " op ";
|
||||
|
||||
@@ -581,7 +529,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_SET: {
|
||||
|
||||
txt += "set ";
|
||||
txt += DADDR(1);
|
||||
txt += "[";
|
||||
@@ -592,7 +539,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_GET: {
|
||||
|
||||
txt += " get ";
|
||||
txt += DADDR(3);
|
||||
txt += "=";
|
||||
@@ -604,7 +550,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_SET_NAMED: {
|
||||
|
||||
txt += " set_named ";
|
||||
txt += DADDR(1);
|
||||
txt += "[\"";
|
||||
@@ -615,7 +560,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_GET_NAMED: {
|
||||
|
||||
txt += " get_named ";
|
||||
txt += DADDR(3);
|
||||
txt += "=";
|
||||
@@ -627,7 +571,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_SET_MEMBER: {
|
||||
|
||||
txt += " set_member ";
|
||||
txt += "[\"";
|
||||
txt += func.get_global_name(code[ip + 1]);
|
||||
@@ -637,7 +580,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_GET_MEMBER: {
|
||||
|
||||
txt += " get_member ";
|
||||
txt += DADDR(2);
|
||||
txt += "=";
|
||||
@@ -648,7 +590,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ASSIGN: {
|
||||
|
||||
txt += " assign ";
|
||||
txt += DADDR(1);
|
||||
txt += "=";
|
||||
@@ -657,7 +598,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ASSIGN_TRUE: {
|
||||
|
||||
txt += " assign ";
|
||||
txt += DADDR(1);
|
||||
txt += "= true";
|
||||
@@ -665,7 +605,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ASSIGN_FALSE: {
|
||||
|
||||
txt += " assign ";
|
||||
txt += DADDR(1);
|
||||
txt += "= false";
|
||||
@@ -673,7 +612,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ASSIGN_TYPED_BUILTIN: {
|
||||
|
||||
txt += " assign typed builtin (";
|
||||
txt += Variant::get_type_name((Variant::Type)code[ip + 1]);
|
||||
txt += ") ";
|
||||
@@ -697,7 +635,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_CAST_TO_SCRIPT: {
|
||||
|
||||
txt += " cast ";
|
||||
txt += DADDR(3);
|
||||
txt += "=";
|
||||
@@ -708,7 +645,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_CONSTRUCT: {
|
||||
|
||||
Variant::Type t = Variant::Type(code[ip + 1]);
|
||||
int argc = code[ip + 2];
|
||||
|
||||
@@ -718,7 +654,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
txt += Variant::get_type_name(t) + "(";
|
||||
for (int i = 0; i < argc; i++) {
|
||||
|
||||
if (i > 0)
|
||||
txt += ", ";
|
||||
txt += DADDR(i + 3);
|
||||
@@ -729,7 +664,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_CONSTRUCT_ARRAY: {
|
||||
|
||||
int argc = code[ip + 1];
|
||||
txt += " make_array ";
|
||||
txt += DADDR(2 + argc);
|
||||
@@ -747,7 +681,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_CONSTRUCT_DICTIONARY: {
|
||||
|
||||
int argc = code[ip + 1];
|
||||
txt += " make_dict ";
|
||||
txt += DADDR(2 + argc * 2);
|
||||
@@ -769,7 +702,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
case GDScriptFunction::OPCODE_CALL:
|
||||
case GDScriptFunction::OPCODE_CALL_RETURN: {
|
||||
|
||||
bool ret = code[ip] == GDScriptFunction::OPCODE_CALL_RETURN;
|
||||
|
||||
if (ret)
|
||||
@@ -797,7 +729,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_CALL_BUILT_IN: {
|
||||
|
||||
txt += " call-built-in ";
|
||||
|
||||
int argc = code[ip + 2];
|
||||
@@ -817,7 +748,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_CALL_SELF_BASE: {
|
||||
|
||||
txt += " call-self-base ";
|
||||
|
||||
int argc = code[ip + 2];
|
||||
@@ -837,13 +767,11 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_YIELD: {
|
||||
|
||||
txt += " yield ";
|
||||
incr = 1;
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_YIELD_SIGNAL: {
|
||||
|
||||
txt += " yield_signal ";
|
||||
txt += DADDR(1);
|
||||
txt += ",";
|
||||
@@ -851,13 +779,11 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
incr = 3;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_YIELD_RESUME: {
|
||||
|
||||
txt += " yield resume: ";
|
||||
txt += DADDR(1);
|
||||
incr = 2;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_JUMP: {
|
||||
|
||||
txt += " jump ";
|
||||
txt += itos(code[ip + 1]);
|
||||
|
||||
@@ -865,7 +791,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_JUMP_IF: {
|
||||
|
||||
txt += " jump-if ";
|
||||
txt += DADDR(1);
|
||||
txt += " to ";
|
||||
@@ -874,7 +799,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
incr = 3;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_JUMP_IF_NOT: {
|
||||
|
||||
txt += " jump-if-not ";
|
||||
txt += DADDR(1);
|
||||
txt += " to ";
|
||||
@@ -883,12 +807,10 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
incr = 3;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_JUMP_TO_DEF_ARGUMENT: {
|
||||
|
||||
txt += " jump-to-default-argument ";
|
||||
incr = 1;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_RETURN: {
|
||||
|
||||
txt += " return ";
|
||||
txt += DADDR(1);
|
||||
|
||||
@@ -896,19 +818,16 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ITERATE_BEGIN: {
|
||||
|
||||
txt += " for-init " + DADDR(4) + " in " + DADDR(2) + " counter " + DADDR(1) + " end " + itos(code[ip + 3]);
|
||||
incr += 5;
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ITERATE: {
|
||||
|
||||
txt += " for-loop " + DADDR(4) + " in " + DADDR(2) + " counter " + DADDR(1) + " end " + itos(code[ip + 3]);
|
||||
incr += 5;
|
||||
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_LINE: {
|
||||
|
||||
int line = code[ip + 1] - 1;
|
||||
if (line >= 0 && line < p_code.size())
|
||||
txt = "\n" + itos(line + 1) + ": " + p_code[line] + "\n";
|
||||
@@ -917,12 +836,10 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
incr += 2;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_END: {
|
||||
|
||||
txt += " end";
|
||||
incr += 1;
|
||||
} break;
|
||||
case GDScriptFunction::OPCODE_ASSERT: {
|
||||
|
||||
txt += " assert ";
|
||||
txt += DADDR(1);
|
||||
incr += 2;
|
||||
@@ -931,7 +848,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
}
|
||||
|
||||
if (incr == 0) {
|
||||
|
||||
ERR_BREAK_MSG(true, "Unhandled opcode: " + itos(code[ip]));
|
||||
}
|
||||
|
||||
@@ -943,7 +859,6 @@ static void _disassemble_class(const Ref<GDScript> &p_class, const Vector<String
|
||||
}
|
||||
|
||||
MainLoop *test(TestType p_type) {
|
||||
|
||||
List<String> cmdlargs = OS::get_singleton()->get_cmdline_args();
|
||||
|
||||
if (cmdlargs.empty()) {
|
||||
@@ -972,21 +887,17 @@ MainLoop *test(TestType p_type) {
|
||||
int last = 0;
|
||||
|
||||
for (int i = 0; i <= code.length(); i++) {
|
||||
|
||||
if (code[i] == '\n' || code[i] == 0) {
|
||||
|
||||
lines.push_back(code.substr(last, i - last));
|
||||
last = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (p_type == TEST_TOKENIZER) {
|
||||
|
||||
GDScriptTokenizerText tk;
|
||||
tk.set_code(code);
|
||||
int line = -1;
|
||||
while (tk.get_token() != GDScriptTokenizer::TK_EOF) {
|
||||
|
||||
String text;
|
||||
if (tk.get_token() == GDScriptTokenizer::TK_IDENTIFIER)
|
||||
text = "'" + tk.get_token_identifier() + "' (identifier)";
|
||||
@@ -1024,7 +935,6 @@ MainLoop *test(TestType p_type) {
|
||||
}
|
||||
|
||||
if (p_type == TEST_PARSER) {
|
||||
|
||||
GDScriptParser parser;
|
||||
Error err = parser.parse(code);
|
||||
if (err) {
|
||||
@@ -1041,7 +951,6 @@ MainLoop *test(TestType p_type) {
|
||||
}
|
||||
|
||||
if (p_type == TEST_COMPILER) {
|
||||
|
||||
GDScriptParser parser;
|
||||
|
||||
Error err = parser.parse(code);
|
||||
@@ -1057,7 +966,6 @@ MainLoop *test(TestType p_type) {
|
||||
GDScriptCompiler gdc;
|
||||
err = gdc.compile(&parser, gds.ptr());
|
||||
if (err) {
|
||||
|
||||
print_line("Compile Error:\n" + itos(gdc.get_error_line()) + ":" + itos(gdc.get_error_column()) + ":" + gdc.get_error());
|
||||
return nullptr;
|
||||
}
|
||||
@@ -1065,7 +973,6 @@ MainLoop *test(TestType p_type) {
|
||||
Ref<GDScript> current = gds;
|
||||
|
||||
while (current.is_valid()) {
|
||||
|
||||
print_line("** CLASS **");
|
||||
_disassemble_class(current, lines);
|
||||
|
||||
@@ -1073,7 +980,6 @@ MainLoop *test(TestType p_type) {
|
||||
}
|
||||
|
||||
} else if (p_type == TEST_BYTECODE) {
|
||||
|
||||
Vector<uint8_t> buf2 = GDScriptTokenizerBuffer::parse_code_string(code);
|
||||
String dst = test.get_basename() + ".gdc";
|
||||
FileAccess *fw = FileAccess::open(dst, FileAccess::WRITE);
|
||||
|
||||
Reference in New Issue
Block a user