Skip to content

Commit 16c26b1

Browse files
committed
Simplufy type nodes
1 parent 336822d commit 16c26b1

168 files changed

Lines changed: 647 additions & 667 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"TypeLang\\PHPDoc\\Tests\\": "libs/phpdoc/tests",
3333
"TypeLang\\PHPDoc\\Standard\\Tests\\": "libs/phpdoc-standard-tags/tests",
3434
"TypeLang\\PHPDoc\\Template\\Tests\\": "libs/phpdoc-template-tags/tests",
35-
"TypeLang\\Node\\Tests\\": "libs/types/tests"
35+
"TypeLang\\Type\\Tests\\": "libs/types/tests"
3636
}
3737
},
3838
"extra": {

docs/Writerside/topics/mapper/builders/custom-type-builder.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ requires the implementation of two methods:
1515
- `build()` - Creates [a `TypeInterface` instance](types.md)
1616

1717
```php
18-
use TypeLang\Mapper\Type\Builder\TypeBuilderInterface;use TypeLang\Mapper\Type\Parser\TypeParserInterface;use TypeLang\Mapper\Type\Repository\TypeRepositoryInterface;use TypeLang\Mapper\Type\TypeInterface;use TypeLang\Node\Type\TypeNode;
18+
use TypeLang\Mapper\Type\Builder\TypeBuilderInterface;use TypeLang\Mapper\Type\Parser\TypeParserInterface;use TypeLang\Mapper\Type\Repository\TypeRepositoryInterface;use TypeLang\Mapper\Type\TypeInterface;use TypeLang\Type\TypeNode;
1919

2020
final readonly class CustomTypeBuilder implements TypeBuilderInterface
2121
{
@@ -57,7 +57,7 @@ For example, if we want to check that the type is called `json`, the code
5757
will look like this:
5858

5959
```php
60-
use TypeLang\Node\Type\NamedTypeNode;
60+
use TypeLang\Type\NamedTypeNode;
6161

6262
// ...
6363

docs/Writerside/topics/parser.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ $result = $parser->parse('example');
3232
```
3333

3434
```php
35-
TypeLang\Node\Type\NamedTypeNode {
35+
TypeLang\Type\NamedTypeNode {
3636
+offset: 0
37-
+name: TypeLang\Node\Name {
37+
+name: TypeLang\Type\Name {
3838
+offset: 0
3939
-parts: array:1 [
40-
0 => TypeLang\Node\Identifier {
40+
0 => TypeLang\Type\Identifier {
4141
+offset: 0
4242
+value: "example"
4343
}

docs/Writerside/topics/parser/tolerant-mode.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,29 +36,29 @@ var_dump($parser->parse($content));
3636
```
3737

3838
```php
39-
TypeLang\Node\Type\NamedTypeNode {
39+
TypeLang\Type\NamedTypeNode {
4040
+offset: 0
41-
+name: TypeLang\Node\Name {
41+
+name: TypeLang\Type\Name {
4242
+offset: 0
4343
-parts: array:1 [
44-
0 => TypeLang\Node\Identifier {
44+
0 => TypeLang\Type\Identifier {
4545
+offset: 0
4646
+value: "Example"
4747
}
4848
]
4949
}
50-
+arguments: TypeLang\Node\Type\Template\ArgumentsListNode {
50+
+arguments: TypeLang\Type\Template\ArgumentsListNode {
5151
+offset: 7
5252
+items: array:1 [
53-
0 => TypeLang\Node\Type\Template\ArgumentNode {
53+
0 => TypeLang\Type\Template\ArgumentNode {
5454
+offset: 8
5555
+hint: null
56-
+value: TypeLang\Node\Type\NamedTypeNode {
56+
+value: TypeLang\Type\NamedTypeNode {
5757
+offset: 8
58-
+name: TypeLang\Node\Name {
58+
+name: TypeLang\Type\Name {
5959
+offset: 8
6060
-parts: array:1 [
61-
0 => TypeLang\Node\Identifier {
61+
0 => TypeLang\Type\Identifier {
6262
+offset: 8
6363
+value: "T"
6464
}

docs/Writerside/topics/parser/visitors.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Let's try to write a simple visitor that will display the names of all classes
1212
when entering each AST node.
1313

1414
```php
15-
use TypeLang\Node\Node;use TypeLang\Parser\Traverser;use TypeLang\Parser\Traverser\Command;use TypeLang\Parser\Traverser\Visitor;
15+
use TypeLang\Parser\Traverser;use TypeLang\Parser\Traverser\Command;use TypeLang\Parser\Traverser\Visitor;use TypeLang\Type\Node;
1616

1717
$traverser = new Traverser([
1818
new class extends Visitor {
@@ -61,7 +61,7 @@ To skip any nodes when traversing, you can use the appropriate
6161
command `TypeLang\Parser\Traverser\Command::SKIP_CHILDREN`.
6262

6363
```php
64-
use TypeLang\Node\Node;use TypeLang\Node\Type\Template\TemplateArgumentNode;use TypeLang\Parser\Traverser;use TypeLang\Parser\Traverser\Command;use TypeLang\Parser\Traverser\Visitor;
64+
use TypeLang\Parser\Traverser;use TypeLang\Parser\Traverser\Command;use TypeLang\Parser\Traverser\Visitor;use TypeLang\Type\Node;use TypeLang\Type\Template\TemplateArgumentNode;
6565
6666
$traverser = new Traverser([
6767
new class extends Visitor {

docs/Writerside/topics/parser/visitors/class-name-matcher-visitor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ To search for the first suitable node for an instance of a class, you can
77
use the `ClassNameMatcherVisitor` visitor.
88

99
```php
10-
use TypeLang\Node\Name;use TypeLang\Parser\Traverser;
10+
use TypeLang\Parser\Traverser;use TypeLang\Type\Name;
1111

1212
Traverser::new([
1313
$finder = new Traverser\ClassNameMatcherVisitor(Name::class),
@@ -23,7 +23,7 @@ var_dump($finder->getFoundNode());
2323
> TypeLang\Parser\Node\Name {
2424
> +offset: 0
2525
> -parts: array:1 [
26-
> 0 => TypeLang\Node\Identifier {
26+
> 0 => TypeLang\Type\Identifier {
2727
> +offset: 0
2828
> +value: "array"
2929
> }

docs/Writerside/topics/reader.md

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@ $result = $reader->findConstantType(
6666
```
6767

6868
```php
69-
TypeLang\Node\Type\NamedTypeNode {
69+
TypeLang\Type\NamedTypeNode {
7070
+offset: 0
71-
+name: TypeLang\Node\Name {
71+
+name: TypeLang\Type\Name {
7272
+offset: 0
7373
-parts: array:1 [
74-
0 => TypeLang\Node\Identifier {
74+
0 => TypeLang\Type\Identifier {
7575
+offset: 0
7676
+value: "int"
7777
}
@@ -104,39 +104,39 @@ $result = $reader->findConstantType(
104104
```
105105

106106
```php
107-
TypeLang\Node\Type\NamedTypeNode {
107+
TypeLang\Type\NamedTypeNode {
108108
+offset: 0
109-
+name: TypeLang\Node\Name {
109+
+name: TypeLang\Type\Name {
110110
+offset: 0
111111
+parts: array:1 [
112-
0 => TypeLang\Node\Identifier {
112+
0 => TypeLang\Type\Identifier {
113113
+offset: 0
114114
+value: "int"
115115
}
116116
]
117117
}
118-
+arguments: TypeLang\Node\Type\Template\TemplateArgumentsListNode {
118+
+arguments: TypeLang\Type\Template\TemplateArgumentsListNode {
119119
+offset: 3
120120
+items: array:2 [
121-
0 => TypeLang\Node\Type\Template\TemplateArgumentNode {
121+
0 => TypeLang\Type\Template\TemplateArgumentNode {
122122
+offset: 4
123123
+hint: null
124-
+value: TypeLang\Node\Type\Literal\IntLiteralNode {#798
124+
+value: TypeLang\Type\Literal\IntLiteralNode {#798
125125
+offset: 4
126126
+raw: "0"
127127
+value: 0
128128
}
129129
+attributes: null
130130
}
131-
1 => TypeLang\Node\Type\Template\TemplateArgumentNode {
131+
1 => TypeLang\Type\Template\TemplateArgumentNode {
132132
+offset: 7
133133
+hint: null
134-
+value: TypeLang\Node\Type\NamedTypeNode {
134+
+value: TypeLang\Type\NamedTypeNode {
135135
+offset: 7
136-
+name: TypeLang\Node\Name {
136+
+name: TypeLang\Type\Name {
137137
+offset: 7
138138
+parts: array:1 [
139-
0 => TypeLang\Node\Identifier {
139+
0 => TypeLang\Type\Identifier {
140140
+offset: 7
141141
+value: "max"
142142
}
@@ -181,12 +181,12 @@ $result = $reader->findPropertyType(
181181
```
182182

183183
```php
184-
TypeLang\Node\Type\NamedTypeNode {
184+
TypeLang\Type\NamedTypeNode {
185185
+offset: 0
186-
+name: TypeLang\Node\Name {
186+
+name: TypeLang\Type\Name {
187187
+offset: 0
188188
-parts: array:1 [
189-
0 => TypeLang\Node\Identifier {
189+
0 => TypeLang\Type\Identifier {
190190
+offset: 0
191191
+value: "string"
192192
}
@@ -218,12 +218,12 @@ $result = $reader->findPropertyType(
218218
```
219219

220220
```php
221-
TypeLang\Node\Type\NamedTypeNode {
221+
TypeLang\Type\NamedTypeNode {
222222
+offset: 0
223-
+name: TypeLang\Node\Name {
223+
+name: TypeLang\Type\Name {
224224
+offset: 0
225225
+parts: array:1 [
226-
0 => TypeLang\Node\Identifier {
226+
0 => TypeLang\Type\Identifier {
227227
+offset: 0
228228
+value: "non-empty-string"
229229
}
@@ -256,12 +256,12 @@ $result = $reader->findFunctionType(
256256
```
257257

258258
```php
259-
TypeLang\Node\Type\NamedTypeNode {
259+
TypeLang\Type\NamedTypeNode {
260260
+offset: 0
261-
+name: TypeLang\Node\Name {
261+
+name: TypeLang\Type\Name {
262262
+offset: 0
263263
-parts: array:1 [
264-
0 => TypeLang\Node\Identifier {
264+
0 => TypeLang\Type\Identifier {
265265
+offset: 0
266266
+value: "void"
267267
}
@@ -288,12 +288,12 @@ $result = $reader->findFunctionType(
288288
```
289289

290290
```php
291-
TypeLang\Node\Type\NamedTypeNode {
291+
TypeLang\Type\NamedTypeNode {
292292
+offset: 0
293-
+name: TypeLang\Node\Name {
293+
+name: TypeLang\Type\Name {
294294
+offset: 0
295295
-parts: array:1 [
296-
0 => TypeLang\Node\Identifier {
296+
0 => TypeLang\Type\Identifier {
297297
+offset: 0
298298
+value: "never"
299299
}
@@ -330,12 +330,12 @@ $result = $reader->findParameterType(
330330
```
331331

332332
```php
333-
TypeLang\Node\Type\NamedTypeNode {
333+
TypeLang\Type\NamedTypeNode {
334334
+offset: 0
335-
+name: TypeLang\Node\Name {
335+
+name: TypeLang\Type\Name {
336336
+offset: 0
337337
-parts: array:1 [
338-
0 => TypeLang\Node\Identifier {
338+
0 => TypeLang\Type\Identifier {
339339
+offset: 0
340340
+value: "bool"
341341
}
@@ -366,12 +366,12 @@ $result = $reader->findParameterType(
366366
```
367367

368368
```php
369-
TypeLang\Node\Type\NamedTypeNode {
369+
TypeLang\Type\NamedTypeNode {
370370
+offset: 0
371-
+name: TypeLang\Node\Name {
371+
+name: TypeLang\Type\Name {
372372
+offset: 0
373373
-parts: array:1 [
374-
0 => TypeLang\Node\Identifier {
374+
0 => TypeLang\Type\Identifier {
375375
+offset: 0
376376
+value: "true"
377377
}

libs/parser/README.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,45 +51,45 @@ var_dump($type);
5151
Expected Output:
5252

5353
```php
54-
TypeLang\Node\Type\NamedTypeNode {
54+
TypeLang\Type\NamedTypeNode {
5555
+offset: 0
56-
+name: TypeLang\Node\Name {
56+
+name: TypeLang\Type\Name {
5757
+offset: 0
5858
-parts: array:1 [
59-
0 => TypeLang\Node\Identifier {
59+
0 => TypeLang\Type\Identifier {
6060
+offset: 0
6161
+value: "array"
6262
}
6363
]
6464
}
6565
+arguments: null
66-
+fields: TypeLang\Node\Type\Shape\FieldsListNode {
66+
+fields: TypeLang\Type\Shape\FieldsListNode {
6767
+offset: 11
6868
+items: array:1 [
69-
0 => TypeLang\Node\Type\Shape\NamedFieldNode {
69+
0 => TypeLang\Type\Shape\NamedFieldNode {
7070
+offset: 11
71-
+type: TypeLang\Node\Type\CallableTypeNode {
71+
+type: TypeLang\Type\CallableTypeNode {
7272
+offset: 16
73-
+name: TypeLang\Node\Name {
73+
+name: TypeLang\Type\Name {
7474
+offset: 16
7575
-parts: array:1 [
76-
0 => TypeLang\Node\Identifier {
76+
0 => TypeLang\Type\Identifier {
7777
+offset: 16
7878
+value: "callable"
7979
}
8080
]
8181
}
82-
+parameters: TypeLang\Node\Type\Callable\ParametersListNode {
82+
+parameters: TypeLang\Type\Callable\ParametersListNode {
8383
+offset: 25
8484
+items: array:2 [
85-
0 => TypeLang\Node\Type\Callable\ParameterNode {
85+
0 => TypeLang\Type\Callable\ParameterNode {
8686
+offset: 25
87-
+type: TypeLang\Node\Type\NamedTypeNode {
87+
+type: TypeLang\Type\NamedTypeNode {
8888
+offset: 25
89-
+name: TypeLang\Node\Name {
89+
+name: TypeLang\Type\Name {
9090
+offset: 25
9191
-parts: array:1 [
92-
0 => TypeLang\Node\Identifier {
92+
0 => TypeLang\Type\Identifier {
9393
+offset: 25
9494
+value: "Example"
9595
}
@@ -103,14 +103,14 @@ TypeLang\Node\Type\NamedTypeNode {
103103
+variadic: false
104104
+optional: false
105105
}
106-
1 => TypeLang\Node\Type\Callable\ParameterNode {
106+
1 => TypeLang\Type\Callable\ParameterNode {
107107
+offset: 34
108-
+type: TypeLang\Node\Type\NamedTypeNode {
108+
+type: TypeLang\Type\NamedTypeNode {
109109
+offset: 34
110-
+name: TypeLang\Node\Name {
110+
+name: TypeLang\Type\Name {
111111
+offset: 34
112112
-parts: array:1 [
113-
0 => TypeLang\Node\Identifier {
113+
0 => TypeLang\Type\Identifier {
114114
+offset: 34
115115
+value: "int"
116116
}
@@ -126,12 +126,12 @@ TypeLang\Node\Type\NamedTypeNode {
126126
}
127127
]
128128
}
129-
+type: TypeLang\Node\Type\NamedTypeNode {
129+
+type: TypeLang\Type\NamedTypeNode {
130130
+offset: 40
131-
+name: TypeLang\Node\Name {
131+
+name: TypeLang\Type\Name {
132132
+offset: 40
133133
-parts: array:1 [
134-
0 => TypeLang\Node\Identifier {
134+
0 => TypeLang\Type\Identifier {
135135
+offset: 40
136136
+value: "mixed"
137137
}
@@ -142,7 +142,7 @@ TypeLang\Node\Type\NamedTypeNode {
142142
}
143143
}
144144
+optional: false
145-
+key: TypeLang\Node\Identifier {
145+
+key: TypeLang\Type\Identifier {
146146
+offset: 11
147147
+value: "key"
148148
}

libs/parser/bin/build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ if (!class_exists(Compiler::class)) {
3434
$grammar = (new Compiler())
3535
->load(new SplFileInfo(__DIR__ . '/../resources/grammar.pp2'))
3636
->build()
37-
->withClassReference('TypeLang\\Node')
37+
->withClassReference('TypeLang\\Type')
3838
->withClassReference('TypeLang\\Parser\\Exception')
3939
->withClassReference('TypeLang\\Parser\\Exception\\SemanticException')
4040
->withClassReference('TypeLang\\Parser\\Exception\\FeatureNotAllowedException')

0 commit comments

Comments
 (0)