@@ -24,12 +24,38 @@ information and grammar checking.
24
24
To create a parser instance, the ` TypeLang\Parser\Parser ` class is used.
25
25
To run code analysis, you should use the ` parse() ` method.
26
26
27
- <deflist >
28
- <def title =" Method signature " >
27
+ ``` php
28
+ $parser = new TypeLang\Parser\Parser();
29
+
30
+ $result = $parser->parse('example');
31
+ ```
32
+
33
+ ``` php
34
+ TypeLang\Parser\Node\Stmt\NamedTypeNode {
35
+ +offset: 0
36
+ +name: TypeLang\Parser\Node\Name {
37
+ +offset: 0
38
+ -parts: array:1 [
39
+ 0 => TypeLang\Parser\Node\Identifier {
40
+ +offset: 0
41
+ +value: "example"
42
+ }
43
+ ]
44
+ }
45
+ +arguments: null
46
+ +fields: null
47
+ }
48
+ ```
49
+ {collapsible="true" collapsed-title="Result"}
50
+
51
+ ### Parser Arguments
29
52
30
- The first argument of the ` parse() ` method corresponds to the source code data
53
+ The first argument of the ` TypeLang\Parser\Parser:: parse(<source> )` method corresponds to the source code data
31
54
and can be of the following types:
32
55
56
+ <deflist >
57
+ <def title =" Method signature " >
58
+
33
59
<tabs >
34
60
<tab title =" string " >
35
61
@@ -66,130 +92,3 @@ and can be of the following types:
66
92
</tabs >
67
93
</def >
68
94
</deflist >
69
-
70
- ``` php
71
- $parser = new TypeLang\Parser\Parser();
72
-
73
- $result = $parser->parse(<<<'PHP'
74
- array<array-key , object{
75
- key: int <0, max >,
76
- ...
77
- }>
78
- PHP);
79
-
80
- var_dump($result);
81
- ```
82
- {prompt="1"}
83
-
84
-
85
- ``` php
86
- TypeLang\Parser\Node\Stmt\NamedTypeNode {
87
- +offset: 0
88
- +name: TypeLang\Parser\Node\Name {
89
- +offset: 0
90
- -parts: array:1 [
91
- 0 => TypeLang\Parser\Node\Identifier {
92
- +offset: 0
93
- +value: "array"
94
- }
95
- ]
96
- }
97
- +arguments: TypeLang\Parser\Node\Stmt\Template\ArgumentsListNode {
98
- +offset: 5
99
- +items: array:2 [
100
- 0 => TypeLang\Parser\Node\Stmt\Template\ArgumentNode {
101
- +offset: 6
102
- +value: TypeLang\Parser\Node\Stmt\NamedTypeNode {
103
- +offset: 6
104
- +name: TypeLang\Parser\Node\Name {
105
- +offset: 6
106
- -parts: array:1 [
107
- 0 => TypeLang\Parser\Node\Identifier {
108
- +offset: 6
109
- +value: "array-key"
110
- }
111
- ]
112
- }
113
- +arguments: null
114
- +fields: null
115
- }
116
- }
117
- 1 => TypeLang\Parser\Node\Stmt\Template\ArgumentNode {
118
- +offset: 17
119
- +value: TypeLang\Parser\Node\Stmt\NamedTypeNode {
120
- +offset: 17
121
- +name: TypeLang\Parser\Node\Name {
122
- +offset: 17
123
- -parts: array:1 [
124
- 0 => TypeLang\Parser\Node\Identifier {
125
- +offset: 17
126
- +value: "object"
127
- }
128
- ]
129
- }
130
- +arguments: null
131
- +fields: TypeLang\Parser\Node\Stmt\Shape\FieldsListNode {
132
- +offset: 27
133
- +items: array:1 [
134
- 0 => TypeLang\Parser\Node\Stmt\Shape\NamedFieldNode {
135
- +offset: 27
136
- +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {
137
- +offset: 32
138
- +name: TypeLang\Parser\Node\Name {
139
- +offset: 32
140
- -parts: array:1 [
141
- 0 => TypeLang\Parser\Node\Identifier {
142
- +offset: 32
143
- +value: "int"
144
- }
145
- ]
146
- }
147
- +arguments: TypeLang\Parser\Node\Stmt\Template\ArgumentsListNode {
148
- +offset: 35
149
- +items: array:2 [
150
- 0 => TypeLang\Parser\Node\Stmt\Template\ArgumentNode {
151
- +offset: 36
152
- +value: TypeLang\Parser\Node\Literal\IntLiteralNode {
153
- +offset: 36
154
- +raw: "0"
155
- +value: 0
156
- }
157
- }
158
- 1 => TypeLang\Parser\Node\Stmt\Template\ArgumentNode {
159
- +offset: 39
160
- +value: TypeLang\Parser\Node\Stmt\NamedTypeNode {
161
- +offset: 39
162
- +name: TypeLang\Parser\Node\Name {
163
- +offset: 39
164
- -parts: array:1 [
165
- 0 => TypeLang\Parser\Node\Identifier {
166
- +offset: 39
167
- +value: "max"
168
- }
169
- ]
170
- }
171
- +arguments: null
172
- +fields: null
173
- }
174
- }
175
- ]
176
- }
177
- +fields: null
178
- }
179
- +optional: false
180
- +key: TypeLang\Parser\Node\Identifier {
181
- +offset: 27
182
- +value: "key"
183
- }
184
- }
185
- ]
186
- +sealed: false
187
- }
188
- }
189
- }
190
- ]
191
- }
192
- +fields: null
193
- }
194
- ```
195
- {collapsible="true" collapsed-title="Result"}
0 commit comments