Skip to content
← Back

src/syntax/trees/definitions/property.ghul

1
namespace Syntax.Trees.Definitions is
2
use Source;
3
4
class PROPERTY(
5
location: LOCATION,
6
type_expression: TypeExpressions.TypeExpression,
7
name: Identifiers.Identifier?,
8
modifiers: Modifiers.LIST,
9
read_body: Bodies.Body? public,
10
assign_argument: Identifiers.Identifier? public,
11
assign_body: Bodies.Body? public
12
): MODIFIABLE, ScopeCarrier is
13
scope: Semantic.Scope? public;
14
15
read_function: Definitions.FUNCTION public;
16
assign_function: Definitions.FUNCTION public;
17
18
is_auto_property: bool public;
19
20
super(location, modifiers);
21
22
set_type_expression(type_expression: TypeExpressions.TypeExpression) is
23
self.type_expression = type_expression;
24
si
25
26
accept(visitor: Visitor) is
27
visitor.visit(self);
28
si
29
30
walk(visitor: Visitor) is
31
if !visitor.pre(self) then
32
modifiers.walk(visitor);
33
type_expression.walk(visitor);
34
35
if name? then
36
name.walk(visitor);
37
fi
38
39
if read_body? then
40
read_body.walk(visitor);
41
fi
42
43
if assign_argument? then
44
assign_argument.walk(visitor);
45
fi
46
47
if assign_body? then
48
assign_body.walk(visitor);
49
fi
50
fi
51
accept(visitor);
52
si
53
si
54
si