|
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
|
|
|
|