1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

Add support for properties

This commit is contained in:
George Marques
2020-06-01 16:41:05 -03:00
parent 34c28eb2b8
commit 886732ac2b
4 changed files with 488 additions and 28 deletions

View File

@@ -777,10 +777,28 @@ public:
};
struct VariableNode : public Node {
enum PropertyStyle {
PROP_NONE,
PROP_INLINE,
PROP_SETGET,
};
IdentifierNode *identifier = nullptr;
ExpressionNode *initializer = nullptr;
TypeNode *datatype_specifier = nullptr;
bool infer_datatype = false;
PropertyStyle property = PROP_NONE;
union {
SuiteNode *setter = nullptr;
IdentifierNode *setter_pointer;
};
IdentifierNode *setter_parameter = nullptr;
union {
SuiteNode *getter = nullptr;
IdentifierNode *getter_pointer;
};
bool exported = false;
bool onready = false;
PropertyInfo export_info;
@@ -923,6 +941,10 @@ private:
// Statements.
Node *parse_statement();
VariableNode *parse_variable();
VariableNode *parse_variable(bool p_allow_property);
VariableNode *parse_property(VariableNode *p_variable, bool p_need_indent);
void parse_property_getter(VariableNode *p_variable);
void parse_property_setter(VariableNode *p_variable);
ConstantNode *parse_constant();
AssertNode *parse_assert();
BreakNode *parse_break();