diff options
Diffstat (limited to 'modules/gdscript/gdscript_parser.h')
-rw-r--r-- | modules/gdscript/gdscript_parser.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h index a741ae0cc7..4c9473c7bd 100644 --- a/modules/gdscript/gdscript_parser.h +++ b/modules/gdscript/gdscript_parser.h @@ -383,6 +383,14 @@ public: CallNode() { type = CALL; } + + Type get_callee_type() const { + if (callee == nullptr) { + return Type::NONE; + } else { + return callee->type; + } + } }; struct CastNode : public ExpressionNode { @@ -397,7 +405,10 @@ public: struct EnumNode : public Node { struct Value { IdentifierNode *identifier = nullptr; - LiteralNode *custom_value = nullptr; + ExpressionNode *custom_value = nullptr; + EnumNode *parent_enum = nullptr; + int index = -1; + bool resolved = false; int value = 0; int line = 0; int leftmost_column = 0; @@ -598,6 +609,7 @@ public: }; struct ContinueNode : public Node { + bool is_for_match = false; ContinueNode() { type = CONTINUE; } @@ -1068,6 +1080,7 @@ private: bool panic_mode = false; bool can_break = false; bool can_continue = false; + bool is_continue_match = false; // Whether a `continue` will act on a `match`. bool is_ignoring_warnings = false; List<bool> multiline_stack; @@ -1335,6 +1348,7 @@ public: void print_tree(const GDScriptParser &p_parser); }; #endif // DEBUG_ENABLED + static void cleanup(); }; #endif // GDSCRIPT_PARSER_H |