1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* This file is part of Railt package. |
4
|
|
|
* |
5
|
|
|
* For the full copyright and license information, please view the LICENSE |
6
|
|
|
* file that was distributed with this source code. |
7
|
|
|
*/ |
8
|
|
|
declare(strict_types=1); |
9
|
|
|
|
10
|
|
|
namespace Railt\SDL\Frontend; |
11
|
|
|
|
12
|
|
|
use Railt\Lexer\Factory; |
13
|
|
|
use Railt\Lexer\LexerInterface; |
14
|
|
|
use Railt\Parser\Driver\Llk; |
15
|
|
|
use Railt\Parser\Driver\Stateful; |
16
|
|
|
use Railt\Parser\Grammar; |
17
|
|
|
use Railt\Parser\ParserInterface; |
18
|
|
|
use Railt\Parser\Rule\Alternation; |
19
|
|
|
use Railt\Parser\Rule\Concatenation; |
20
|
|
|
use Railt\Parser\Rule\Repetition; |
21
|
|
|
use Railt\Parser\Rule\Terminal; |
22
|
|
|
use Railt\Parser\GrammarInterface; |
23
|
|
|
|
24
|
|
|
/** |
25
|
|
|
* --- DO NOT EDIT THIS FILE --- |
26
|
|
|
* |
27
|
|
|
* Class Parser has been auto-generated. |
28
|
|
|
* Generated at: 22-08-2018 17:26:07 |
29
|
|
|
* |
30
|
|
|
* --- DO NOT EDIT THIS FILE --- |
31
|
|
|
*/ |
32
|
|
|
class Parser extends Stateful |
33
|
|
|
{ |
34
|
|
|
public const T_AND = 'T_AND'; |
35
|
|
|
public const T_OR = 'T_OR'; |
36
|
|
|
public const T_PARENTHESIS_OPEN = 'T_PARENTHESIS_OPEN'; |
37
|
|
|
public const T_PARENTHESIS_CLOSE = 'T_PARENTHESIS_CLOSE'; |
38
|
|
|
public const T_BRACKET_OPEN = 'T_BRACKET_OPEN'; |
39
|
|
|
public const T_BRACKET_CLOSE = 'T_BRACKET_CLOSE'; |
40
|
|
|
public const T_BRACE_OPEN = 'T_BRACE_OPEN'; |
41
|
|
|
public const T_BRACE_CLOSE = 'T_BRACE_CLOSE'; |
42
|
|
|
public const T_NON_NULL = 'T_NON_NULL'; |
43
|
|
|
public const T_THREE_DOTS = 'T_THREE_DOTS'; |
44
|
|
|
public const T_COLON = 'T_COLON'; |
45
|
|
|
public const T_EQUAL = 'T_EQUAL'; |
46
|
|
|
public const T_DIRECTIVE_AT = 'T_DIRECTIVE_AT'; |
47
|
|
|
public const T_HEX_NUMBER = 'T_HEX_NUMBER'; |
48
|
|
|
public const T_BIN_NUMBER = 'T_BIN_NUMBER'; |
49
|
|
|
public const T_NUMBER = 'T_NUMBER'; |
50
|
|
|
public const T_TRUE = 'T_TRUE'; |
51
|
|
|
public const T_FALSE = 'T_FALSE'; |
52
|
|
|
public const T_NULL = 'T_NULL'; |
53
|
|
|
public const T_BLOCK_STRING = 'T_BLOCK_STRING'; |
54
|
|
|
public const T_STRING = 'T_STRING'; |
55
|
|
|
public const T_EXTENDS = 'T_EXTENDS'; |
56
|
|
|
public const T_IMPLEMENTS = 'T_IMPLEMENTS'; |
57
|
|
|
public const T_ON = 'T_ON'; |
58
|
|
|
public const T_TYPE = 'T_TYPE'; |
59
|
|
|
public const T_ENUM = 'T_ENUM'; |
60
|
|
|
public const T_UNION = 'T_UNION'; |
61
|
|
|
public const T_INTERFACE = 'T_INTERFACE'; |
62
|
|
|
public const T_SCHEMA = 'T_SCHEMA'; |
63
|
|
|
public const T_SCALAR = 'T_SCALAR'; |
64
|
|
|
public const T_DIRECTIVE = 'T_DIRECTIVE'; |
65
|
|
|
public const T_INPUT = 'T_INPUT'; |
66
|
|
|
public const T_EXTEND = 'T_EXTEND'; |
67
|
|
|
public const T_FRAGMENT = 'T_FRAGMENT'; |
68
|
|
|
public const T_VARIABLE = 'T_VARIABLE'; |
69
|
|
|
public const T_NAME = 'T_NAME'; |
70
|
|
|
public const T_COMMENT = 'T_COMMENT'; |
71
|
|
|
public const T_COMMA = 'T_COMMA'; |
72
|
|
|
public const T_HTAB = 'T_HTAB'; |
73
|
|
|
public const T_LF = 'T_LF'; |
74
|
|
|
public const T_CR = 'T_CR'; |
75
|
|
|
public const T_WHITESPACE = 'T_WHITESPACE'; |
76
|
|
|
public const T_BOM = 'T_BOM'; |
77
|
|
|
|
78
|
|
|
/** |
79
|
|
|
* Lexical tokens list. |
80
|
|
|
* |
81
|
|
|
* @var string[] |
82
|
|
|
*/ |
83
|
|
|
protected const LEXER_TOKENS = [ |
84
|
|
|
self::T_AND => '&', |
85
|
|
|
self::T_OR => '\\|', |
86
|
|
|
self::T_PARENTHESIS_OPEN => '\\(', |
87
|
|
|
self::T_PARENTHESIS_CLOSE => '\\)', |
88
|
|
|
self::T_BRACKET_OPEN => '\\[', |
89
|
|
|
self::T_BRACKET_CLOSE => '\\]', |
90
|
|
|
self::T_BRACE_OPEN => '{', |
91
|
|
|
self::T_BRACE_CLOSE => '}', |
92
|
|
|
self::T_NON_NULL => '!', |
93
|
|
|
self::T_THREE_DOTS => '\\.{3}', |
94
|
|
|
self::T_COLON => ':', |
95
|
|
|
self::T_EQUAL => '=', |
96
|
|
|
self::T_DIRECTIVE_AT => '@', |
97
|
|
|
self::T_HEX_NUMBER => '\\-?0x([0-9a-fA-F]+)', |
98
|
|
|
self::T_BIN_NUMBER => '\\-?0b([0-1]+)', |
99
|
|
|
self::T_NUMBER => '\\-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][\\+\\-]?[0-9]+)?', |
100
|
|
|
self::T_TRUE => '(?<=\\b)true\\b', |
101
|
|
|
self::T_FALSE => '(?<=\\b)false\\b', |
102
|
|
|
self::T_NULL => '(?<=\\b)null\\b', |
103
|
|
|
self::T_BLOCK_STRING => '"""((?:\\\\"""|(?!""").)*)"""', |
104
|
|
|
self::T_STRING => '"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"', |
105
|
|
|
self::T_EXTENDS => '(?<=\\b)extends\\b', |
106
|
|
|
self::T_IMPLEMENTS => '(?<=\\b)implements\\b', |
107
|
|
|
self::T_ON => '(?<=\\b)on\\b', |
108
|
|
|
self::T_TYPE => '(?<=\\b)type\\b', |
109
|
|
|
self::T_ENUM => '(?<=\\b)enum\\b', |
110
|
|
|
self::T_UNION => '(?<=\\b)union\\b', |
111
|
|
|
self::T_INTERFACE => '(?<=\\b)interface\\b', |
112
|
|
|
self::T_SCHEMA => '(?<=\\b)schema\\b', |
113
|
|
|
self::T_SCALAR => '(?<=\\b)scalar\\b', |
114
|
|
|
self::T_DIRECTIVE => '(?<=\\b)directive\\b', |
115
|
|
|
self::T_INPUT => '(?<=\\b)input\\b', |
116
|
|
|
self::T_EXTEND => '(?<=\\b)extend\\b', |
117
|
|
|
self::T_FRAGMENT => '(?<=\\b)fragment\\b', |
118
|
|
|
self::T_VARIABLE => '\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*', |
119
|
|
|
self::T_NAME => '[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*', |
120
|
|
|
self::T_COMMENT => '#[^\\n]*', |
121
|
|
|
self::T_COMMA => ',', |
122
|
|
|
self::T_HTAB => '\\x09', |
123
|
|
|
self::T_LF => '\\x0a', |
124
|
|
|
self::T_CR => '\\x0d', |
125
|
|
|
self::T_WHITESPACE => '\\x20', |
126
|
|
|
self::T_BOM => '\\xfe\\xff', |
127
|
|
|
]; |
128
|
|
|
|
129
|
|
|
/** |
130
|
|
|
* List of skipped tokens. |
131
|
|
|
* |
132
|
|
|
* @var string[] |
133
|
|
|
*/ |
134
|
|
|
protected const LEXER_SKIPPED_TOKENS = [ |
135
|
|
|
'T_COMMENT', |
136
|
|
|
'T_COMMA', |
137
|
|
|
'T_HTAB', |
138
|
|
|
'T_LF', |
139
|
|
|
'T_CR', |
140
|
|
|
'T_WHITESPACE', |
141
|
|
|
'T_BOM', |
142
|
|
|
]; |
143
|
|
|
|
144
|
|
|
/** |
145
|
|
|
* @var int |
146
|
|
|
*/ |
147
|
|
|
protected const LEXER_FLAGS = Factory::LOOKAHEAD; |
148
|
|
|
|
149
|
|
|
/** |
150
|
|
|
* List of rule delegates. |
151
|
|
|
* |
152
|
|
|
* @var string[] |
153
|
|
|
*/ |
154
|
|
|
protected const PARSER_DELEGATES = [ |
155
|
|
|
'TypeName' => \Railt\SDL\Frontend\AST\Common\TypeNameNode::class, |
156
|
|
|
'BooleanValue' => \Railt\SDL\Frontend\AST\Value\BooleanValueNode::class, |
157
|
|
|
'NumberValue' => \Railt\SDL\Frontend\AST\Value\NumberValueNode::class, |
158
|
|
|
'StringValue' => \Railt\SDL\Frontend\AST\Value\StringValueNode::class, |
159
|
|
|
'NullValue' => \Railt\SDL\Frontend\AST\Value\NullValueNode::class, |
160
|
|
|
'ListValue' => \Railt\SDL\Frontend\AST\Value\ListValueNode::class, |
161
|
|
|
'ConstantValue' => \Railt\SDL\Frontend\AST\Value\ConstantValueNode::class, |
162
|
|
|
'Value' => \Railt\SDL\Frontend\AST\Value\ValueNode::class, |
163
|
|
|
'TypeHint' => \Railt\SDL\Frontend\AST\Common\TypeHintNode::class, |
164
|
|
|
'DirectiveDefinition' => \Railt\SDL\Frontend\AST\Definition\DirectiveDefinitionNode::class, |
165
|
|
|
'EnumDefinition' => \Railt\SDL\Frontend\AST\Definition\EnumDefinitionNode::class, |
166
|
|
|
'EnumValue' => \Railt\SDL\Frontend\AST\Dependent\EnumValueDefinitionNode::class, |
167
|
|
|
'InputDefinition' => \Railt\SDL\Frontend\AST\Definition\InputDefinitionNode::class, |
168
|
|
|
'InputFieldDefinition' => \Railt\SDL\Frontend\AST\Dependent\InputFieldDefinitionNode::class, |
169
|
|
|
'InterfaceDefinition' => \Railt\SDL\Frontend\AST\Definition\InterfaceDefinitionNode::class, |
170
|
|
|
'ObjectDefinition' => \Railt\SDL\Frontend\AST\Definition\ObjectDefinitionNode::class, |
171
|
|
|
'ScalarDefinition' => \Railt\SDL\Frontend\AST\Definition\ScalarDefinitionNode::class, |
172
|
|
|
'SchemaDefinition' => \Railt\SDL\Frontend\AST\Definition\SchemaDefinitionNode::class, |
173
|
|
|
'UnionDefinition' => \Railt\SDL\Frontend\AST\Definition\UnionDefinitionNode::class, |
174
|
|
|
'ArgumentDefinition' => \Railt\SDL\Frontend\AST\Dependent\ArgumentDefinitionNode::class, |
175
|
|
|
'FieldDefinition' => \Railt\SDL\Frontend\AST\Dependent\FieldDefinitionNode::class, |
176
|
|
|
'DirectiveInvocation' => \Railt\SDL\Frontend\AST\Invocation\DirectiveInvocationNode::class, |
177
|
|
|
'ArgumentInvocation' => \Railt\SDL\Frontend\AST\Invocation\ArgumentInvocationNode::class, |
178
|
|
|
'InputInvocation' => \Railt\SDL\Frontend\AST\Invocation\InputInvocationNode::class, |
179
|
|
|
]; |
180
|
|
|
|
181
|
|
|
/** |
182
|
|
|
* Parser root rule name. |
183
|
|
|
* |
184
|
|
|
* @var string |
185
|
|
|
*/ |
186
|
|
|
protected const PARSER_ROOT_RULE = 'Document'; |
187
|
|
|
|
188
|
|
|
/** |
189
|
|
|
* @return ParserInterface |
190
|
|
|
* @throws \InvalidArgumentException |
191
|
|
|
* @throws \Railt\Lexer\Exception\BadLexemeException |
192
|
|
|
*/ |
193
|
|
|
protected function boot(): ParserInterface |
194
|
|
|
{ |
195
|
|
|
return new Llk($this->bootLexer(), $this->bootGrammar()); |
196
|
|
|
} |
197
|
|
|
|
198
|
|
|
/** |
199
|
|
|
* @return LexerInterface |
200
|
|
|
* @throws \InvalidArgumentException |
201
|
|
|
* @throws \Railt\Lexer\Exception\BadLexemeException |
202
|
|
|
*/ |
203
|
|
|
protected function bootLexer(): LexerInterface |
204
|
|
|
{ |
205
|
|
|
return Factory::create(static::LEXER_TOKENS, static::LEXER_SKIPPED_TOKENS, static::LEXER_FLAGS); |
206
|
|
|
} |
207
|
|
|
|
208
|
|
|
/** |
209
|
|
|
* @return GrammarInterface |
210
|
|
|
*/ |
211
|
|
|
protected function bootGrammar(): GrammarInterface |
212
|
|
|
{ |
213
|
|
|
return new Grammar([ |
214
|
|
|
new Concatenation(0, ['DocumentBody'], null), |
215
|
|
|
(new Concatenation('Document', ['DocumentHead', 0], 'Document'))->setDefaultId('Document'), |
216
|
|
|
new Repetition('DocumentHead', 0, -1, 'DirectiveInvocation', null), |
217
|
|
|
new Alternation(3, ['Extension', 'Definition'], null), |
218
|
|
|
new Repetition('DocumentBody', 0, -1, 3, null), |
219
|
|
|
new Terminal('NameWithoutReserved', 'T_NAME', true), |
220
|
|
|
new Terminal(6, 'T_TRUE', true), |
221
|
|
|
new Terminal(7, 'T_FALSE', true), |
222
|
|
|
new Terminal(8, 'T_NULL', true), |
223
|
|
|
new Alternation('NameWithReserved', ['NameExceptValues', 6, 7, 8], null), |
224
|
|
|
new Terminal(10, 'T_NAMESPACE', true), |
225
|
|
|
new Terminal(11, 'T_EXTENDS', true), |
226
|
|
|
new Terminal(12, 'T_IMPLEMENTS', true), |
227
|
|
|
new Terminal(13, 'T_ON', true), |
228
|
|
|
new Terminal(14, 'T_TYPE', true), |
229
|
|
|
new Terminal(15, 'T_ENUM', true), |
230
|
|
|
new Terminal(16, 'T_UNION', true), |
231
|
|
|
new Terminal(17, 'T_INPUT_UNION', true), |
232
|
|
|
new Terminal(18, 'T_INTERFACE', true), |
233
|
|
|
new Terminal(19, 'T_SCHEMA', true), |
234
|
|
|
new Terminal(20, 'T_SCALAR', true), |
235
|
|
|
new Terminal(21, 'T_DIRECTIVE', true), |
236
|
|
|
new Terminal(22, 'T_INPUT', true), |
237
|
|
|
new Terminal(23, 'T_EXTEND', true), |
238
|
|
|
new Terminal(24, 'T_FRAGMENT', true), |
239
|
|
|
new Alternation('NameExceptValues', ['NameWithoutReserved', 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], null), |
240
|
|
|
new Concatenation(26, ['NameWithReserved'], null), |
241
|
|
|
(new Concatenation('TypeName', [26], 'TypeName'))->setDefaultId('TypeName'), |
242
|
|
|
new Concatenation(28, ['NameWithReserved'], null), |
243
|
|
|
(new Concatenation('DependentName', [28], 'DependentName'))->setDefaultId('DependentName'), |
244
|
|
|
new Concatenation(30, ['NameExceptValues'], null), |
245
|
|
|
(new Concatenation('ValueName', [30], 'ValueName'))->setDefaultId('ValueName'), |
246
|
|
|
new Terminal(32, 'T_FALSE', true), |
247
|
|
|
new Concatenation(33, [32], 'BooleanValue'), |
248
|
|
|
new Terminal(34, 'T_TRUE', true), |
249
|
|
|
new Concatenation(35, [34], 'BooleanValue'), |
250
|
|
|
(new Alternation('BooleanValue', [33, 35], null))->setDefaultId('BooleanValue'), |
251
|
|
|
new Terminal(37, 'T_NUMBER', true), |
252
|
|
|
new Concatenation(38, [37], 'NumberValue'), |
253
|
|
|
new Terminal(39, 'T_HEX_NUMBER', true), |
254
|
|
|
new Concatenation(40, [39], 'NumberValue'), |
255
|
|
|
new Terminal(41, 'T_BIN_NUMBER', true), |
256
|
|
|
new Concatenation(42, [41], 'NumberValue'), |
257
|
|
|
(new Alternation('NumberValue', [38, 40, 42], null))->setDefaultId('NumberValue'), |
258
|
|
|
new Terminal(44, 'T_BLOCK_STRING', true), |
259
|
|
|
new Concatenation(45, [44], 'StringValue'), |
260
|
|
|
new Terminal(46, 'T_STRING', true), |
261
|
|
|
new Concatenation(47, [46], 'StringValue'), |
262
|
|
|
(new Alternation('StringValue', [45, 47], null))->setDefaultId('StringValue'), |
263
|
|
|
new Terminal(49, 'T_NULL', true), |
264
|
|
|
(new Concatenation('NullValue', [49], 'NullValue'))->setDefaultId('NullValue'), |
265
|
|
|
new Terminal(51, 'T_BRACKET_OPEN', false), |
266
|
|
|
new Repetition(52, 0, -1, 'Value', null), |
267
|
|
|
new Terminal(53, 'T_BRACKET_CLOSE', false), |
268
|
|
|
(new Concatenation('ListValue', [51, 52, 53], 'ListValue'))->setDefaultId('ListValue'), |
269
|
|
|
new Concatenation(55, ['NameExceptValues'], null), |
270
|
|
|
(new Concatenation('ConstantValue', [55], 'ConstantValue'))->setDefaultId('ConstantValue'), |
271
|
|
|
new Concatenation(57, ['ConstantValue'], 'Value'), |
272
|
|
|
new Concatenation(58, ['BooleanValue'], 'Value'), |
273
|
|
|
new Concatenation(59, ['NumberValue'], 'Value'), |
274
|
|
|
new Concatenation(60, ['StringValue'], 'Value'), |
275
|
|
|
new Concatenation(61, ['NullValue'], 'Value'), |
276
|
|
|
new Concatenation(62, ['InputInvocation'], 'Value'), |
277
|
|
|
new Concatenation(63, ['ListValue'], null), |
278
|
|
|
new Concatenation(64, [63], 'Value'), |
279
|
|
|
(new Alternation('Value', [57, 58, 59, 60, 61, 62, 64], null))->setDefaultId('Value'), |
280
|
|
|
new Concatenation('Documentation', ['StringValue'], 'Description'), |
281
|
|
|
new Terminal(67, 'T_IMPLEMENTS', false), |
282
|
|
|
new Terminal(68, 'T_AND', false), |
283
|
|
|
new Concatenation(69, [68, 'TypeName'], 'TypeDefinitionImplementations'), |
284
|
|
|
new Repetition(70, 0, -1, 69, null), |
285
|
|
|
(new Concatenation('TypeDefinitionImplementations', [67, 'TypeName', 70], null))->setDefaultId('TypeDefinitionImplementations'), |
286
|
|
|
new Terminal(72, 'T_EXTENDS', false), |
287
|
|
|
new Concatenation(73, ['TypeName'], null), |
288
|
|
|
(new Concatenation('TypeDefinitionExtends', [72, 73], 'TypeDefinitionExtends'))->setDefaultId('TypeDefinitionExtends'), |
289
|
|
|
new Concatenation(75, ['__typeHintList'], 'TypeHint'), |
290
|
|
|
new Concatenation(76, ['__typeHintSingular'], null), |
291
|
|
|
new Concatenation(77, [76], 'TypeHint'), |
292
|
|
|
(new Alternation('TypeHint', [75, 77], null))->setDefaultId('TypeHint'), |
293
|
|
|
new Concatenation(79, ['__typeHintNullableList'], null), |
294
|
|
|
new Alternation('__typeHintList', ['__typeHintNonNullList', 79], null), |
295
|
|
|
new Terminal(81, 'T_BRACKET_OPEN', false), |
296
|
|
|
new Terminal(82, 'T_BRACKET_CLOSE', false), |
297
|
|
|
new Concatenation('__typeHintNullableList', [81, '__typeHintSingular', 82], 'List'), |
298
|
|
|
new Terminal(84, 'T_NON_NULL', false), |
299
|
|
|
new Concatenation('__typeHintNonNullList', ['__typeHintNullableList', 84], 'NonNull'), |
300
|
|
|
new Concatenation(86, ['__typeHintNullableSingular'], null), |
301
|
|
|
new Alternation('__typeHintSingular', ['__typeHintNonNullSingular', 86], null), |
302
|
|
|
new Concatenation('__typeHintNullableSingular', ['TypeName'], null), |
303
|
|
|
new Terminal(89, 'T_NON_NULL', false), |
304
|
|
|
new Concatenation('__typeHintNonNullSingular', ['TypeName', 89], 'NonNull'), |
305
|
|
|
new Repetition(91, 0, 1, 'Documentation', null), |
306
|
|
|
new Concatenation(92, ['DirectiveDefinitionBody'], null), |
307
|
|
|
(new Concatenation('DirectiveDefinition', [91, 'DirectiveDefinitionHead', 92], 'DirectiveDefinition'))->setDefaultId('DirectiveDefinition'), |
308
|
|
|
new Terminal(94, 'T_DIRECTIVE', false), |
309
|
|
|
new Terminal(95, 'T_DIRECTIVE_AT', false), |
310
|
|
|
new Repetition(96, 0, 1, '__directiveDefinitionArguments', null), |
311
|
|
|
new Concatenation('DirectiveDefinitionHead', [94, 95, 'TypeName', 96], null), |
312
|
|
|
new Terminal(98, 'T_ON', false), |
313
|
|
|
new Concatenation(99, ['DirectiveLocations'], null), |
314
|
|
|
new Concatenation('DirectiveDefinitionBody', [98, 99], null), |
315
|
|
|
new Terminal(101, 'T_PARENTHESIS_OPEN', false), |
316
|
|
|
new Repetition(102, 0, 1, 'ArgumentDefinitions', null), |
317
|
|
|
new Terminal(103, 'T_PARENTHESIS_CLOSE', false), |
318
|
|
|
new Concatenation('__directiveDefinitionArguments', [101, 102, 103], null), |
319
|
|
|
new Terminal(105, 'T_OR', false), |
320
|
|
|
new Repetition(106, 0, 1, 105, null), |
321
|
|
|
new Terminal(107, 'T_OR', false), |
322
|
|
|
new Concatenation(108, [107, 'DirectiveLocation'], 'DirectiveLocations'), |
323
|
|
|
new Repetition(109, 0, -1, 108, null), |
324
|
|
|
(new Concatenation('DirectiveLocations', [106, 'DirectiveLocation', 109], null))->setDefaultId('DirectiveLocations'), |
325
|
|
|
new Concatenation(111, ['ValueName'], null), |
326
|
|
|
(new Concatenation('DirectiveLocation', [111], 'DirectiveLocation'))->setDefaultId('DirectiveLocation'), |
327
|
|
|
new Repetition(113, 0, 1, 'Documentation', null), |
328
|
|
|
new Concatenation(114, ['EnumDefinitionBody'], null), |
329
|
|
|
(new Concatenation('EnumDefinition', [113, 'EnumDefinitionHead', 114], 'EnumDefinition'))->setDefaultId('EnumDefinition'), |
330
|
|
|
new Terminal(116, 'T_ENUM', false), |
331
|
|
|
new Repetition(117, 0, 1, 'Directives', null), |
332
|
|
|
new Concatenation('EnumDefinitionHead', [116, 'TypeName', 117], null), |
333
|
|
|
new Terminal(119, 'T_BRACE_OPEN', false), |
334
|
|
|
new Repetition(120, 0, 1, 'EnumValues', null), |
335
|
|
|
new Terminal(121, 'T_BRACE_CLOSE', false), |
336
|
|
|
new Concatenation('EnumDefinitionBody', [119, 120, 121], null), |
337
|
|
|
new Repetition(123, 1, -1, 'EnumValue', null), |
338
|
|
|
(new Concatenation('EnumValues', [123], 'EnumValues'))->setDefaultId('EnumValues'), |
339
|
|
|
new Repetition(125, 0, 1, 'Documentation', null), |
340
|
|
|
new Repetition(126, 0, 1, '__enumDefinitionValue', null), |
341
|
|
|
new Repetition(127, 0, 1, 'Directives', null), |
342
|
|
|
(new Concatenation('EnumValue', [125, 'ValueName', 126, 127], 'EnumValue'))->setDefaultId('EnumValue'), |
343
|
|
|
new Terminal(129, 'T_COLON', false), |
344
|
|
|
new Terminal(130, 'T_EQUAL', false), |
345
|
|
|
new Concatenation(131, ['Value'], null), |
346
|
|
|
new Concatenation('__enumDefinitionValue', [129, 'TypeHint', 130, 131], null), |
347
|
|
|
new Repetition(133, 0, 1, 'Documentation', null), |
348
|
|
|
new Concatenation(134, ['InputDefinitionBody'], null), |
349
|
|
|
(new Concatenation('InputDefinition', [133, 'InputDefinitionHead', 134], 'InputDefinition'))->setDefaultId('InputDefinition'), |
350
|
|
|
new Terminal(136, 'T_INPUT', false), |
351
|
|
|
new Repetition(137, 0, 1, 'Directives', null), |
352
|
|
|
new Concatenation('InputDefinitionHead', [136, 'TypeName', 137], null), |
353
|
|
|
new Terminal(139, 'T_BRACE_OPEN', false), |
354
|
|
|
new Repetition(140, 0, 1, 'InputFieldDefinitions', null), |
355
|
|
|
new Terminal(141, 'T_BRACE_CLOSE', false), |
356
|
|
|
new Concatenation('InputDefinitionBody', [139, 140, 141], null), |
357
|
|
|
new Repetition(143, 1, -1, 'InputFieldDefinition', null), |
358
|
|
|
(new Concatenation('InputFieldDefinitions', [143], 'InputFieldDefinitions'))->setDefaultId('InputFieldDefinitions'), |
359
|
|
|
new Repetition(145, 0, 1, 'Documentation', null), |
360
|
|
|
new Repetition(146, 0, 1, '__inputFieldDefinitionDefaultValue', null), |
361
|
|
|
new Repetition(147, 0, 1, 'Directives', null), |
362
|
|
|
(new Concatenation('InputFieldDefinition', [145, '__inputFieldDefinitionBody', 146, 147], 'InputFieldDefinition'))->setDefaultId('InputFieldDefinition'), |
363
|
|
|
new Terminal(149, 'T_COLON', false), |
364
|
|
|
new Concatenation(150, ['TypeHint'], null), |
365
|
|
|
new Concatenation('__inputFieldDefinitionBody', ['DependentName', 149, 150], null), |
366
|
|
|
new Terminal(152, 'T_EQUAL', false), |
367
|
|
|
new Concatenation(153, ['Value'], null), |
368
|
|
|
new Concatenation('__inputFieldDefinitionDefaultValue', [152, 153], null), |
369
|
|
|
new Repetition(155, 0, 1, 'Documentation', null), |
370
|
|
|
new Concatenation(156, ['InterfaceDefinitionBody'], null), |
371
|
|
|
(new Concatenation('InterfaceDefinition', [155, 'InterfaceDefinitionHead', 156], 'InterfaceDefinition'))->setDefaultId('InterfaceDefinition'), |
372
|
|
|
new Terminal(158, 'T_INTERFACE', false), |
373
|
|
|
new Repetition(159, 0, 1, 'TypeDefinitionImplementations', null), |
374
|
|
|
new Repetition(160, 0, 1, 'Directives', null), |
375
|
|
|
new Concatenation('InterfaceDefinitionHead', [158, 'TypeName', 159, 160], null), |
376
|
|
|
new Terminal(162, 'T_BRACE_OPEN', false), |
377
|
|
|
new Repetition(163, 0, 1, 'FieldDefinitions', null), |
378
|
|
|
new Terminal(164, 'T_BRACE_CLOSE', false), |
379
|
|
|
new Concatenation('InterfaceDefinitionBody', [162, 163, 164], null), |
380
|
|
|
new Repetition(166, 0, 1, 'Documentation', null), |
381
|
|
|
new Concatenation(167, ['ObjectDefinitionBody'], null), |
382
|
|
|
(new Concatenation('ObjectDefinition', [166, 'ObjectDefinitionHead', 167], 'ObjectDefinition'))->setDefaultId('ObjectDefinition'), |
383
|
|
|
new Terminal(169, 'T_TYPE', false), |
384
|
|
|
new Repetition(170, 0, 1, 'TypeDefinitionImplementations', null), |
385
|
|
|
new Repetition(171, 0, 1, 'Directives', null), |
386
|
|
|
new Concatenation('ObjectDefinitionHead', [169, 'TypeName', 170, 171], null), |
387
|
|
|
new Terminal(173, 'T_BRACE_OPEN', false), |
388
|
|
|
new Repetition(174, 0, 1, 'FieldDefinitions', null), |
389
|
|
|
new Terminal(175, 'T_BRACE_CLOSE', false), |
390
|
|
|
new Concatenation('ObjectDefinitionBody', [173, 174, 175], null), |
391
|
|
|
new Repetition(177, 0, 1, 'Documentation', null), |
392
|
|
|
new Concatenation(178, ['ScalarDefinitionBody'], null), |
393
|
|
|
(new Concatenation('ScalarDefinition', [177, 178], 'ScalarDefinition'))->setDefaultId('ScalarDefinition'), |
394
|
|
|
new Terminal(180, 'T_SCALAR', false), |
395
|
|
|
new Repetition(181, 0, 1, 'TypeDefinitionExtends', null), |
396
|
|
|
new Repetition(182, 0, 1, 'Directives', null), |
397
|
|
|
new Concatenation('ScalarDefinitionBody', [180, 'TypeName', 181, 182], null), |
398
|
|
|
new Repetition(184, 0, 1, 'Documentation', null), |
399
|
|
|
new Concatenation(185, ['SchemaDefinitionBody'], null), |
400
|
|
|
(new Concatenation('SchemaDefinition', [184, 'SchemaDefinitionHead', 185], 'SchemaDefinition'))->setDefaultId('SchemaDefinition'), |
401
|
|
|
new Terminal(187, 'T_SCHEMA', false), |
402
|
|
|
new Repetition(188, 0, 1, 'TypeName', null), |
403
|
|
|
new Repetition(189, 0, 1, 'Directives', null), |
404
|
|
|
new Concatenation('SchemaDefinitionHead', [187, 188, 189], null), |
405
|
|
|
new Terminal(191, 'T_BRACE_OPEN', false), |
406
|
|
|
new Repetition(192, 0, 1, 'SchemaFields', null), |
407
|
|
|
new Terminal(193, 'T_BRACE_CLOSE', false), |
408
|
|
|
new Concatenation('SchemaDefinitionBody', [191, 192, 193], null), |
409
|
|
|
new Repetition(195, 1, -1, 'SchemaField', null), |
410
|
|
|
(new Concatenation('SchemaFields', [195], 'SchemaFields'))->setDefaultId('SchemaFields'), |
411
|
|
|
new Terminal(197, 'T_COLON', false), |
412
|
|
|
new Concatenation(198, ['TypeHint'], null), |
413
|
|
|
(new Concatenation('SchemaField', ['DependentName', 197, 198], 'SchemaField'))->setDefaultId('SchemaField'), |
414
|
|
|
new Repetition(200, 0, 1, 'Documentation', null), |
415
|
|
|
new Repetition(201, 0, 1, 'UnionDefinitionBody', null), |
416
|
|
|
(new Concatenation('UnionDefinition', [200, 'UnionDefinitionHead', 201], 'UnionDefinition'))->setDefaultId('UnionDefinition'), |
417
|
|
|
new Terminal(203, 'T_UNION', false), |
418
|
|
|
new Repetition(204, 0, 1, 'Directives', null), |
419
|
|
|
new Concatenation('UnionDefinitionHead', [203, 'TypeName', 204], null), |
420
|
|
|
new Terminal(206, 'T_EQUAL', false), |
421
|
|
|
new Terminal(207, 'T_OR', false), |
422
|
|
|
new Repetition(208, 0, 1, 207, null), |
423
|
|
|
new Repetition(209, 0, 1, '__unionDefinitionTargets', null), |
424
|
|
|
new Concatenation('UnionDefinitionBody', [206, 208, 209], null), |
425
|
|
|
new Terminal(211, 'T_OR', false), |
426
|
|
|
new Concatenation(212, [211, 'TypeName'], null), |
427
|
|
|
new Repetition(213, 0, -1, 212, null), |
428
|
|
|
new Concatenation('__unionDefinitionTargets', ['TypeName', 213], 'UnionDefinitionTargets'), |
429
|
|
|
new Repetition(215, 1, -1, 'ArgumentDefinition', null), |
430
|
|
|
(new Concatenation('ArgumentDefinitions', [215], 'ArgumentDefinitions'))->setDefaultId('ArgumentDefinitions'), |
431
|
|
|
new Repetition(217, 0, 1, 'Documentation', null), |
432
|
|
|
new Repetition(218, 0, 1, '__argumentDefinitionDefaultValue', null), |
433
|
|
|
new Repetition(219, 0, 1, 'Directives', null), |
434
|
|
|
(new Concatenation('ArgumentDefinition', [217, '__argumentDefinitionBody', 218, 219], 'ArgumentDefinition'))->setDefaultId('ArgumentDefinition'), |
435
|
|
|
new Terminal(221, 'T_COLON', false), |
436
|
|
|
new Concatenation(222, ['TypeHint'], null), |
437
|
|
|
new Concatenation('__argumentDefinitionBody', ['DependentName', 221, 222], null), |
438
|
|
|
new Terminal(224, 'T_EQUAL', false), |
439
|
|
|
new Concatenation(225, ['Value'], null), |
440
|
|
|
new Concatenation('__argumentDefinitionDefaultValue', [224, 225], null), |
441
|
|
|
new Repetition(227, 1, -1, 'FieldDefinition', null), |
442
|
|
|
(new Concatenation('FieldDefinitions', [227], 'FieldDefinitions'))->setDefaultId('FieldDefinitions'), |
443
|
|
|
new Repetition(229, 0, 1, 'Documentation', null), |
444
|
|
|
new Repetition(230, 0, 1, '__fieldDefinitionArguments', null), |
445
|
|
|
new Terminal(231, 'T_COLON', false), |
446
|
|
|
new Repetition(232, 0, 1, 'Directives', null), |
447
|
|
|
(new Concatenation('FieldDefinition', [229, 'DependentName', 230, 231, 'TypeHint', 232], 'FieldDefinition'))->setDefaultId('FieldDefinition'), |
448
|
|
|
new Terminal(234, 'T_PARENTHESIS_OPEN', false), |
449
|
|
|
new Repetition(235, 0, 1, 'ArgumentDefinitions', null), |
450
|
|
|
new Terminal(236, 'T_PARENTHESIS_CLOSE', false), |
451
|
|
|
new Concatenation('__fieldDefinitionArguments', [234, 235, 236], null), |
452
|
|
|
new Concatenation(238, ['UnionDefinition'], null), |
453
|
|
|
new Alternation('Definition', ['DirectiveDefinition', 'SchemaDefinition', 'EnumDefinition', 'InputDefinition', 'InterfaceDefinition', 'ObjectDefinition', 'ScalarDefinition', 238], null), |
454
|
|
|
new Repetition(240, 0, 1, 'Documentation', null), |
455
|
|
|
new Terminal(241, 'T_EXTEND', false), |
456
|
|
|
new Concatenation(242, ['__enumExtensionVariants'], null), |
457
|
|
|
(new Concatenation('EnumExtension', [240, 241, 242], 'EnumExtension'))->setDefaultId('EnumExtension'), |
458
|
|
|
new Concatenation(244, ['EnumDefinitionHead', 'EnumDefinitionBody'], null), |
459
|
|
|
new Alternation('__enumExtensionVariants', ['EnumDefinitionHead', 244], null), |
460
|
|
|
new Repetition(246, 0, 1, 'Documentation', null), |
461
|
|
|
new Terminal(247, 'T_EXTEND', false), |
462
|
|
|
new Concatenation(248, ['__inputExtensionVariants'], null), |
463
|
|
|
(new Concatenation('InputExtension', [246, 247, 248], 'InputExtension'))->setDefaultId('InputExtension'), |
464
|
|
|
new Concatenation(250, ['InputDefinitionHead', 'InputDefinitionBody'], null), |
465
|
|
|
new Alternation('__inputExtensionVariants', ['InputDefinitionHead', 250], null), |
466
|
|
|
new Repetition(252, 0, 1, 'Documentation', null), |
467
|
|
|
new Terminal(253, 'T_EXTEND', false), |
468
|
|
|
new Concatenation(254, ['__interfaceExtensionVariants'], null), |
469
|
|
|
(new Concatenation('InterfaceExtension', [252, 253, 254], 'InterfaceExtension'))->setDefaultId('InterfaceExtension'), |
470
|
|
|
new Concatenation(256, ['InterfaceDefinitionHead', 'InterfaceDefinitionBody'], null), |
471
|
|
|
new Alternation('__interfaceExtensionVariants', ['InterfaceDefinitionHead', 256], null), |
472
|
|
|
new Repetition(258, 0, 1, 'Documentation', null), |
473
|
|
|
new Terminal(259, 'T_EXTEND', false), |
474
|
|
|
new Concatenation(260, ['__objectExtensionVariants'], null), |
475
|
|
|
(new Concatenation('ObjectExtension', [258, 259, 260], 'ObjectExtension'))->setDefaultId('ObjectExtension'), |
476
|
|
|
new Concatenation(262, ['ObjectDefinitionHead', 'ObjectDefinitionBody'], null), |
477
|
|
|
new Alternation('__objectExtensionVariants', ['ObjectDefinitionHead', 262], null), |
478
|
|
|
new Repetition(264, 0, 1, 'Documentation', null), |
479
|
|
|
new Terminal(265, 'T_EXTEND', false), |
480
|
|
|
new Concatenation(266, ['__scalarExtensionVariants'], null), |
481
|
|
|
(new Concatenation('ScalarExtension', [264, 265, 266], 'ScalarExtension'))->setDefaultId('ScalarExtension'), |
482
|
|
|
new Concatenation('__scalarExtensionVariants', ['ScalarDefinitionBody'], null), |
483
|
|
|
new Repetition(269, 0, 1, 'Documentation', null), |
484
|
|
|
new Terminal(270, 'T_EXTEND', false), |
485
|
|
|
new Concatenation(271, ['__schemaExtensionVariants'], null), |
486
|
|
|
(new Concatenation('SchemaExtension', [269, 270, 271], 'SchemaExtension'))->setDefaultId('SchemaExtension'), |
487
|
|
|
new Concatenation(273, ['SchemaDefinitionHead', 'SchemaDefinitionBody'], null), |
488
|
|
|
new Alternation('__schemaExtensionVariants', ['SchemaDefinitionHead', 273], null), |
489
|
|
|
new Repetition(275, 0, 1, 'Documentation', null), |
490
|
|
|
new Terminal(276, 'T_EXTEND', false), |
491
|
|
|
new Concatenation(277, ['__unionExtensionVariants'], null), |
492
|
|
|
(new Concatenation('UnionExtension', [275, 276, 277], 'UnionExtension'))->setDefaultId('UnionExtension'), |
493
|
|
|
new Concatenation(279, ['UnionDefinitionHead', 'UnionDefinitionBody'], null), |
494
|
|
|
new Alternation('__unionExtensionVariants', ['UnionDefinitionHead', 279], null), |
495
|
|
|
new Concatenation(281, ['UnionExtension'], null), |
496
|
|
|
new Alternation('Extension', ['EnumExtension', 'InputExtension', 'InterfaceExtension', 'ObjectExtension', 'ScalarExtension', 'SchemaExtension', 281], null), |
497
|
|
|
new Repetition(283, 1, -1, 'DirectiveInvocation', null), |
498
|
|
|
(new Concatenation('Directives', [283], 'Directives'))->setDefaultId('Directives'), |
499
|
|
|
new Terminal(285, 'T_DIRECTIVE_AT', false), |
500
|
|
|
new Repetition(286, 0, 1, '__directiveInvocationArgumentsGroup', null), |
501
|
|
|
(new Concatenation('DirectiveInvocation', [285, 'TypeName', 286], 'DirectiveInvocation'))->setDefaultId('DirectiveInvocation'), |
502
|
|
|
new Terminal(288, 'T_PARENTHESIS_OPEN', false), |
503
|
|
|
new Repetition(289, 0, 1, '__directiveInvocationArguments', null), |
504
|
|
|
new Terminal(290, 'T_PARENTHESIS_CLOSE', false), |
505
|
|
|
new Concatenation('__directiveInvocationArgumentsGroup', [288, 289, 290], null), |
506
|
|
|
new Repetition('__directiveInvocationArguments', 1, -1, 'ArgumentInvocation', null), |
507
|
|
|
new Terminal(293, 'T_COLON', false), |
508
|
|
|
new Concatenation(294, ['Value'], null), |
509
|
|
|
(new Concatenation('ArgumentInvocation', ['DependentName', 293, 294], 'ArgumentInvocation'))->setDefaultId('ArgumentInvocation'), |
510
|
|
|
new Terminal(296, 'T_BRACE_OPEN', false), |
511
|
|
|
new Repetition(297, 0, 1, 'InputInvocationArguments', null), |
512
|
|
|
new Terminal(298, 'T_BRACE_CLOSE', false), |
513
|
|
|
(new Concatenation('InputInvocation', [296, 297, 298], 'InputInvocation'))->setDefaultId('InputInvocation'), |
514
|
|
|
new Repetition(300, 1, -1, 'ArgumentInvocation', null), |
515
|
|
|
(new Concatenation('InputInvocationArguments', [300], 'InputInvocationArguments'))->setDefaultId('InputInvocationArguments') |
516
|
|
|
], static::PARSER_ROOT_RULE, static::PARSER_DELEGATES); |
517
|
|
|
} |
518
|
|
|
} |
519
|
|
|
|