1 // A Bison parser, made by GNU Bison 3.0.5.
2
3 // Skeleton implementation for Bison LALR(1) parsers in C++
4
5 // Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
6
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16
17 // You should have received a copy of the GNU General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20 // As a special exception, you may create a larger work that contains
21 // part or all of the Bison parser skeleton and distribute that work
22 // under terms of your choice, so long as that work isn't itself a
23 // parser generator using the skeleton or a modified version thereof
24 // as a parser skeleton. Alternatively, if you modify or redistribute
25 // the parser skeleton itself, you may (at your option) remove this
26 // special exception, which will cause the skeleton and the resulting
27 // Bison output files to be licensed under the GNU General Public
28 // License without this special exception.
29
30 // This special exception was added by the Free Software Foundation in
31 // version 2.2 of Bison.
32
33
34 // First part of user declarations.
35
36 #line 37 "parser.tab.cpp" // lalr1.cc:406
37
38 # ifndef YY_NULLPTR
39 # if defined __cplusplus && 201103L <= __cplusplus
40 # define YY_NULLPTR nullptr
41 # else
42 # define YY_NULLPTR 0
43 # endif
44 # endif
45
46 #include "parser.tab.hpp"
47
48 // User implementation prologue.
49
50 #line 51 "parser.tab.cpp" // lalr1.cc:414
51 // Unqualified %code blocks.
52 #line 157 "parser.ypp" // lalr1.cc:415
53
54 #include "lexer.h"
55 #include "syntaxdefs.h"
56
57 #line 58 "parser.tab.cpp" // lalr1.cc:415
58
59
60 #ifndef YY_
61 # if defined YYENABLE_NLS && YYENABLE_NLS
62 # if ENABLE_NLS
63 # include <libintl.h> // FIXME: INFRINGES ON USER NAME SPACE.
64 # define YY_(msgid) dgettext ("bison-runtime", msgid)
65 # endif
66 # endif
67 # ifndef YY_
68 # define YY_(msgid) msgid
69 # endif
70 #endif
71
72 #define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
73 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
74 If N is 0, then set CURRENT to the empty location which ends
75 the previous symbol: RHS[0] (always defined). */
76
77 # ifndef YYLLOC_DEFAULT
78 # define YYLLOC_DEFAULT(Current, Rhs, N) \
79 do \
80 if (N) \
81 { \
82 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
83 (Current).end = YYRHSLOC (Rhs, N).end; \
84 } \
85 else \
86 { \
87 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
88 } \
89 while (/*CONSTCOND*/ false)
90 # endif
91
92
93 // Suppress unused-variable warnings by "using" E.
94 #define YYUSE(E) ((void) (E))
95
96 // Enable debugging if requested.
97 #if YYDEBUG
98
99 // A pseudo ostream that takes yydebug_ into account.
100 # define YYCDEBUG if (yydebug_) (*yycdebug_)
101
102 # define YY_SYMBOL_PRINT(Title, Symbol) \
103 do { \
104 if (yydebug_) \
105 { \
106 *yycdebug_ << Title << ' '; \
107 yy_print_ (*yycdebug_, Symbol); \
108 *yycdebug_ << '\n'; \
109 } \
110 } while (false)
111
112 # define YY_REDUCE_PRINT(Rule) \
113 do { \
114 if (yydebug_) \
115 yy_reduce_print_ (Rule); \
116 } while (false)
117
118 # define YY_STACK_PRINT() \
119 do { \
120 if (yydebug_) \
121 yystack_print_ (); \
122 } while (false)
123
124 #else // !YYDEBUG
125
126 # define YYCDEBUG if (false) std::cerr
127 # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol)
128 # define YY_REDUCE_PRINT(Rule) static_cast<void> (0)
129 # define YY_STACK_PRINT() static_cast<void> (0)
130
131 #endif // !YYDEBUG
132
133 #define yyerrok (yyerrstatus_ = 0)
134 #define yyclearin (yyla.clear ())
135
136 #define YYACCEPT goto yyacceptlab
137 #define YYABORT goto yyabortlab
138 #define YYERROR goto yyerrorlab
139 #define YYRECOVERING() (!!yyerrstatus_)
140
141
142 namespace yy {
143 #line 144 "parser.tab.cpp" // lalr1.cc:481
144
145 /* Return YYSTR after stripping away unnecessary quotes and
146 backslashes, so that it's suitable for yyerror. The heuristic is
147 that double-quoting is unnecessary unless the string contains an
148 apostrophe, a comma, or backslash (other than backslash-backslash).
149 YYSTR is taken from yytname. */
150 std::string
yytnamerr_(const char * yystr)151 GraphQLParserImpl::yytnamerr_ (const char *yystr)
152 {
153 if (*yystr == '"')
154 {
155 std::string yyr = "";
156 char const *yyp = yystr;
157
158 for (;;)
159 switch (*++yyp)
160 {
161 case '\'':
162 case ',':
163 goto do_not_strip_quotes;
164
165 case '\\':
166 if (*++yyp != '\\')
167 goto do_not_strip_quotes;
168 // Fall through.
169 default:
170 yyr += *yyp;
171 break;
172
173 case '"':
174 return yyr;
175 }
176 do_not_strip_quotes: ;
177 }
178
179 return yystr;
180 }
181
182
183 /// Build a parser object.
GraphQLParserImpl(bool enableSchema_yyarg,Node ** outAST_yyarg,const char ** outError_yyarg,void * scanner_yyarg)184 GraphQLParserImpl::GraphQLParserImpl (bool enableSchema_yyarg, Node **outAST_yyarg, const char **outError_yyarg, void *scanner_yyarg)
185 :
186 #if YYDEBUG
187 yydebug_ (false),
188 yycdebug_ (&std::cerr),
189 #endif
190 enableSchema (enableSchema_yyarg),
191 outAST (outAST_yyarg),
192 outError (outError_yyarg),
193 scanner (scanner_yyarg)
194 {}
195
~GraphQLParserImpl()196 GraphQLParserImpl::~GraphQLParserImpl ()
197 {}
198
199
200 /*---------------.
201 | Symbol types. |
202 `---------------*/
203
syntax_error(const location_type & l,const std::string & m)204 GraphQLParserImpl::syntax_error::syntax_error (const location_type& l, const std::string& m)
205 : std::runtime_error (m)
206 , location (l)
207 {}
208
209 // basic_symbol.
210 template <typename Base>
basic_symbol()211 GraphQLParserImpl::basic_symbol<Base>::basic_symbol ()
212 : value ()
213 {}
214
215 template <typename Base>
basic_symbol(const basic_symbol & other)216 GraphQLParserImpl::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
217 : Base (other)
218 , value ()
219 , location (other.location)
220 {
221 value = other.value;
222 }
223
224 template <typename Base>
basic_symbol(typename Base::kind_type t,const semantic_type & v,const location_type & l)225 GraphQLParserImpl::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l)
226 : Base (t)
227 , value (v)
228 , location (l)
229 {}
230
231
232 /// Constructor for valueless symbols.
233 template <typename Base>
basic_symbol(typename Base::kind_type t,const location_type & l)234 GraphQLParserImpl::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l)
235 : Base (t)
236 , value ()
237 , location (l)
238 {}
239
240 template <typename Base>
~basic_symbol()241 GraphQLParserImpl::basic_symbol<Base>::~basic_symbol ()
242 {
243 clear ();
244 }
245
246 template <typename Base>
247 void
clear()248 GraphQLParserImpl::basic_symbol<Base>::clear ()
249 {
250 Base::clear ();
251 }
252
253 template <typename Base>
254 bool
empty() const255 GraphQLParserImpl::basic_symbol<Base>::empty () const
256 {
257 return Base::type_get () == empty_symbol;
258 }
259
260 template <typename Base>
261 void
move(basic_symbol & s)262 GraphQLParserImpl::basic_symbol<Base>::move (basic_symbol& s)
263 {
264 super_type::move (s);
265 value = s.value;
266 location = s.location;
267 }
268
269 // by_type.
by_type()270 GraphQLParserImpl::by_type::by_type ()
271 : type (empty_symbol)
272 {}
273
by_type(const by_type & other)274 GraphQLParserImpl::by_type::by_type (const by_type& other)
275 : type (other.type)
276 {}
277
by_type(token_type t)278 GraphQLParserImpl::by_type::by_type (token_type t)
279 : type (yytranslate_ (t))
280 {}
281
282 void
clear()283 GraphQLParserImpl::by_type::clear ()
284 {
285 type = empty_symbol;
286 }
287
288 void
move(by_type & that)289 GraphQLParserImpl::by_type::move (by_type& that)
290 {
291 type = that.type;
292 that.clear ();
293 }
294
295 int
type_get() const296 GraphQLParserImpl::by_type::type_get () const
297 {
298 return type;
299 }
300
301
302 // by_state.
by_state()303 GraphQLParserImpl::by_state::by_state ()
304 : state (empty_state)
305 {}
306
by_state(const by_state & other)307 GraphQLParserImpl::by_state::by_state (const by_state& other)
308 : state (other.state)
309 {}
310
311 void
clear()312 GraphQLParserImpl::by_state::clear ()
313 {
314 state = empty_state;
315 }
316
317 void
move(by_state & that)318 GraphQLParserImpl::by_state::move (by_state& that)
319 {
320 state = that.state;
321 that.clear ();
322 }
323
by_state(state_type s)324 GraphQLParserImpl::by_state::by_state (state_type s)
325 : state (s)
326 {}
327
328 GraphQLParserImpl::symbol_number_type
type_get() const329 GraphQLParserImpl::by_state::type_get () const
330 {
331 if (state == empty_state)
332 return empty_symbol;
333 else
334 return yystos_[state];
335 }
336
stack_symbol_type()337 GraphQLParserImpl::stack_symbol_type::stack_symbol_type ()
338 {}
339
stack_symbol_type(const stack_symbol_type & that)340 GraphQLParserImpl::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that)
341 : super_type (that.state, that.location)
342 {
343 value = that.value;
344 }
345
stack_symbol_type(state_type s,symbol_type & that)346 GraphQLParserImpl::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
347 : super_type (s, that.location)
348 {
349 value = that.value;
350 // that is emptied.
351 that.type = empty_symbol;
352 }
353
354 GraphQLParserImpl::stack_symbol_type&
operator =(const stack_symbol_type & that)355 GraphQLParserImpl::stack_symbol_type::operator= (const stack_symbol_type& that)
356 {
357 state = that.state;
358 value = that.value;
359 location = that.location;
360 return *this;
361 }
362
363
364 template <typename Base>
365 void
yy_destroy_(const char * yymsg,basic_symbol<Base> & yysym) const366 GraphQLParserImpl::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
367 {
368 if (yymsg)
369 YY_SYMBOL_PRINT (yymsg, yysym);
370
371 // User destructor.
372 switch (yysym.type_get ())
373 {
374 case 3: // "directive"
375
376 #line 289 "parser.ypp" // lalr1.cc:616
377 { }
378 #line 379 "parser.tab.cpp" // lalr1.cc:616
379 break;
380
381 case 4: // "enum"
382
383 #line 289 "parser.ypp" // lalr1.cc:616
384 { }
385 #line 386 "parser.tab.cpp" // lalr1.cc:616
386 break;
387
388 case 5: // "extend"
389
390 #line 289 "parser.ypp" // lalr1.cc:616
391 { }
392 #line 393 "parser.tab.cpp" // lalr1.cc:616
393 break;
394
395 case 6: // "false"
396
397 #line 289 "parser.ypp" // lalr1.cc:616
398 { }
399 #line 400 "parser.tab.cpp" // lalr1.cc:616
400 break;
401
402 case 7: // "fragment"
403
404 #line 289 "parser.ypp" // lalr1.cc:616
405 { }
406 #line 407 "parser.tab.cpp" // lalr1.cc:616
407 break;
408
409 case 8: // "implements"
410
411 #line 289 "parser.ypp" // lalr1.cc:616
412 { }
413 #line 414 "parser.tab.cpp" // lalr1.cc:616
414 break;
415
416 case 9: // "input"
417
418 #line 289 "parser.ypp" // lalr1.cc:616
419 { }
420 #line 421 "parser.tab.cpp" // lalr1.cc:616
421 break;
422
423 case 10: // "interface"
424
425 #line 289 "parser.ypp" // lalr1.cc:616
426 { }
427 #line 428 "parser.tab.cpp" // lalr1.cc:616
428 break;
429
430 case 11: // "mutation"
431
432 #line 289 "parser.ypp" // lalr1.cc:616
433 { }
434 #line 435 "parser.tab.cpp" // lalr1.cc:616
435 break;
436
437 case 12: // "null"
438
439 #line 289 "parser.ypp" // lalr1.cc:616
440 { }
441 #line 442 "parser.tab.cpp" // lalr1.cc:616
442 break;
443
444 case 13: // "query"
445
446 #line 289 "parser.ypp" // lalr1.cc:616
447 { }
448 #line 449 "parser.tab.cpp" // lalr1.cc:616
449 break;
450
451 case 14: // "on"
452
453 #line 289 "parser.ypp" // lalr1.cc:616
454 { }
455 #line 456 "parser.tab.cpp" // lalr1.cc:616
456 break;
457
458 case 15: // "scalar"
459
460 #line 289 "parser.ypp" // lalr1.cc:616
461 { }
462 #line 463 "parser.tab.cpp" // lalr1.cc:616
463 break;
464
465 case 16: // "schema"
466
467 #line 289 "parser.ypp" // lalr1.cc:616
468 { }
469 #line 470 "parser.tab.cpp" // lalr1.cc:616
470 break;
471
472 case 17: // "subscription"
473
474 #line 289 "parser.ypp" // lalr1.cc:616
475 { }
476 #line 477 "parser.tab.cpp" // lalr1.cc:616
477 break;
478
479 case 18: // "true"
480
481 #line 289 "parser.ypp" // lalr1.cc:616
482 { }
483 #line 484 "parser.tab.cpp" // lalr1.cc:616
484 break;
485
486 case 19: // "type"
487
488 #line 289 "parser.ypp" // lalr1.cc:616
489 { }
490 #line 491 "parser.tab.cpp" // lalr1.cc:616
491 break;
492
493 case 20: // "union"
494
495 #line 289 "parser.ypp" // lalr1.cc:616
496 { }
497 #line 498 "parser.tab.cpp" // lalr1.cc:616
498 break;
499
500 case 33: // VARIABLE
501
502 #line 289 "parser.ypp" // lalr1.cc:616
503 { }
504 #line 505 "parser.tab.cpp" // lalr1.cc:616
505 break;
506
507 case 34: // INTEGER
508
509 #line 289 "parser.ypp" // lalr1.cc:616
510 { }
511 #line 512 "parser.tab.cpp" // lalr1.cc:616
512 break;
513
514 case 35: // FLOAT
515
516 #line 289 "parser.ypp" // lalr1.cc:616
517 { }
518 #line 519 "parser.tab.cpp" // lalr1.cc:616
519 break;
520
521 case 36: // STRING
522
523 #line 289 "parser.ypp" // lalr1.cc:616
524 { }
525 #line 526 "parser.tab.cpp" // lalr1.cc:616
526 break;
527
528 case 37: // IDENTIFIER
529
530 #line 289 "parser.ypp" // lalr1.cc:616
531 { }
532 #line 533 "parser.tab.cpp" // lalr1.cc:616
533 break;
534
535 case 39: // start
536
537 #line 291 "parser.ypp" // lalr1.cc:616
538 { }
539 #line 540 "parser.tab.cpp" // lalr1.cc:616
540 break;
541
542 case 40: // fragment_name
543
544 #line 292 "parser.ypp" // lalr1.cc:616
545 { delete (yysym.value.name); }
546 #line 547 "parser.tab.cpp" // lalr1.cc:616
547 break;
548
549 case 41: // name
550
551 #line 292 "parser.ypp" // lalr1.cc:616
552 { delete (yysym.value.name); }
553 #line 554 "parser.tab.cpp" // lalr1.cc:616
554 break;
555
556 case 42: // name_opt
557
558 #line 292 "parser.ypp" // lalr1.cc:616
559 { delete (yysym.value.name); }
560 #line 561 "parser.tab.cpp" // lalr1.cc:616
561 break;
562
563 case 43: // document
564
565 #line 291 "parser.ypp" // lalr1.cc:616
566 { }
567 #line 568 "parser.tab.cpp" // lalr1.cc:616
568 break;
569
570 case 44: // definition_list
571
572 #line 292 "parser.ypp" // lalr1.cc:616
573 { delete (yysym.value.definitionList); }
574 #line 575 "parser.tab.cpp" // lalr1.cc:616
575 break;
576
577 case 45: // definition
578
579 #line 292 "parser.ypp" // lalr1.cc:616
580 { delete (yysym.value.definition); }
581 #line 582 "parser.tab.cpp" // lalr1.cc:616
582 break;
583
584 case 46: // schema_gate
585
586 #line 292 "parser.ypp" // lalr1.cc:616
587 { delete (yysym.value.definition); }
588 #line 589 "parser.tab.cpp" // lalr1.cc:616
589 break;
590
591 case 47: // operation_definition
592
593 #line 292 "parser.ypp" // lalr1.cc:616
594 { delete (yysym.value.operationDefinition); }
595 #line 596 "parser.tab.cpp" // lalr1.cc:616
596 break;
597
598 case 48: // operation_type
599
600 #line 290 "parser.ypp" // lalr1.cc:616
601 { free((void *)(yysym.value.heapStr)); }
602 #line 603 "parser.tab.cpp" // lalr1.cc:616
603 break;
604
605 case 49: // variable_definitions
606
607 #line 292 "parser.ypp" // lalr1.cc:616
608 { delete (yysym.value.variableDefinitionList); }
609 #line 610 "parser.tab.cpp" // lalr1.cc:616
610 break;
611
612 case 50: // variable_definition_list
613
614 #line 292 "parser.ypp" // lalr1.cc:616
615 { delete (yysym.value.variableDefinitionList); }
616 #line 617 "parser.tab.cpp" // lalr1.cc:616
617 break;
618
619 case 51: // variable
620
621 #line 292 "parser.ypp" // lalr1.cc:616
622 { delete (yysym.value.variable); }
623 #line 624 "parser.tab.cpp" // lalr1.cc:616
624 break;
625
626 case 52: // variable_definition
627
628 #line 292 "parser.ypp" // lalr1.cc:616
629 { delete (yysym.value.variableDefinition); }
630 #line 631 "parser.tab.cpp" // lalr1.cc:616
631 break;
632
633 case 53: // default_value_opt
634
635 #line 292 "parser.ypp" // lalr1.cc:616
636 { delete (yysym.value.value); }
637 #line 638 "parser.tab.cpp" // lalr1.cc:616
638 break;
639
640 case 54: // default_value
641
642 #line 292 "parser.ypp" // lalr1.cc:616
643 { delete (yysym.value.value); }
644 #line 645 "parser.tab.cpp" // lalr1.cc:616
645 break;
646
647 case 55: // selection_set
648
649 #line 292 "parser.ypp" // lalr1.cc:616
650 { delete (yysym.value.selectionSet); }
651 #line 652 "parser.tab.cpp" // lalr1.cc:616
652 break;
653
654 case 56: // selection_set_opt
655
656 #line 292 "parser.ypp" // lalr1.cc:616
657 { delete (yysym.value.selectionSet); }
658 #line 659 "parser.tab.cpp" // lalr1.cc:616
659 break;
660
661 case 57: // selection_list
662
663 #line 292 "parser.ypp" // lalr1.cc:616
664 { delete (yysym.value.selectionList); }
665 #line 666 "parser.tab.cpp" // lalr1.cc:616
666 break;
667
668 case 58: // selection
669
670 #line 292 "parser.ypp" // lalr1.cc:616
671 { delete (yysym.value.selection); }
672 #line 673 "parser.tab.cpp" // lalr1.cc:616
673 break;
674
675 case 59: // field
676
677 #line 292 "parser.ypp" // lalr1.cc:616
678 { delete (yysym.value.field); }
679 #line 680 "parser.tab.cpp" // lalr1.cc:616
680 break;
681
682 case 60: // arguments
683
684 #line 292 "parser.ypp" // lalr1.cc:616
685 { delete (yysym.value.argumentList); }
686 #line 687 "parser.tab.cpp" // lalr1.cc:616
687 break;
688
689 case 61: // arguments_opt
690
691 #line 292 "parser.ypp" // lalr1.cc:616
692 { delete (yysym.value.argumentList); }
693 #line 694 "parser.tab.cpp" // lalr1.cc:616
694 break;
695
696 case 62: // argument_list
697
698 #line 292 "parser.ypp" // lalr1.cc:616
699 { delete (yysym.value.argumentList); }
700 #line 701 "parser.tab.cpp" // lalr1.cc:616
701 break;
702
703 case 63: // argument
704
705 #line 292 "parser.ypp" // lalr1.cc:616
706 { delete (yysym.value.argument); }
707 #line 708 "parser.tab.cpp" // lalr1.cc:616
708 break;
709
710 case 64: // fragment_spread
711
712 #line 292 "parser.ypp" // lalr1.cc:616
713 { delete (yysym.value.fragmentSpread); }
714 #line 715 "parser.tab.cpp" // lalr1.cc:616
715 break;
716
717 case 65: // inline_fragment
718
719 #line 292 "parser.ypp" // lalr1.cc:616
720 { delete (yysym.value.inlineFragment); }
721 #line 722 "parser.tab.cpp" // lalr1.cc:616
722 break;
723
724 case 66: // fragment_definition
725
726 #line 292 "parser.ypp" // lalr1.cc:616
727 { delete (yysym.value.fragmentDefinition); }
728 #line 729 "parser.tab.cpp" // lalr1.cc:616
729 break;
730
731 case 67: // type_condition
732
733 #line 292 "parser.ypp" // lalr1.cc:616
734 { delete (yysym.value.namedType); }
735 #line 736 "parser.tab.cpp" // lalr1.cc:616
736 break;
737
738 case 68: // value
739
740 #line 292 "parser.ypp" // lalr1.cc:616
741 { delete (yysym.value.value); }
742 #line 743 "parser.tab.cpp" // lalr1.cc:616
743 break;
744
745 case 69: // int_value
746
747 #line 292 "parser.ypp" // lalr1.cc:616
748 { delete (yysym.value.intValue); }
749 #line 750 "parser.tab.cpp" // lalr1.cc:616
750 break;
751
752 case 70: // float_value
753
754 #line 292 "parser.ypp" // lalr1.cc:616
755 { delete (yysym.value.floatValue); }
756 #line 757 "parser.tab.cpp" // lalr1.cc:616
757 break;
758
759 case 71: // string_value
760
761 #line 292 "parser.ypp" // lalr1.cc:616
762 { delete (yysym.value.stringValue); }
763 #line 764 "parser.tab.cpp" // lalr1.cc:616
764 break;
765
766 case 72: // value_const
767
768 #line 292 "parser.ypp" // lalr1.cc:616
769 { delete (yysym.value.value); }
770 #line 771 "parser.tab.cpp" // lalr1.cc:616
771 break;
772
773 case 73: // boolean_value
774
775 #line 292 "parser.ypp" // lalr1.cc:616
776 { delete (yysym.value.booleanValue); }
777 #line 778 "parser.tab.cpp" // lalr1.cc:616
778 break;
779
780 case 74: // null_value
781
782 #line 292 "parser.ypp" // lalr1.cc:616
783 { delete (yysym.value.nullValue); }
784 #line 785 "parser.tab.cpp" // lalr1.cc:616
785 break;
786
787 case 75: // enum_value
788
789 #line 292 "parser.ypp" // lalr1.cc:616
790 { delete (yysym.value.enumValue); }
791 #line 792 "parser.tab.cpp" // lalr1.cc:616
792 break;
793
794 case 76: // list_value
795
796 #line 292 "parser.ypp" // lalr1.cc:616
797 { delete (yysym.value.arrayValue); }
798 #line 799 "parser.tab.cpp" // lalr1.cc:616
799 break;
800
801 case 77: // value_list
802
803 #line 292 "parser.ypp" // lalr1.cc:616
804 { delete (yysym.value.valueList); }
805 #line 806 "parser.tab.cpp" // lalr1.cc:616
806 break;
807
808 case 78: // list_value_const
809
810 #line 292 "parser.ypp" // lalr1.cc:616
811 { delete (yysym.value.arrayValue); }
812 #line 813 "parser.tab.cpp" // lalr1.cc:616
813 break;
814
815 case 79: // value_const_list
816
817 #line 292 "parser.ypp" // lalr1.cc:616
818 { delete (yysym.value.valueList); }
819 #line 820 "parser.tab.cpp" // lalr1.cc:616
820 break;
821
822 case 80: // object_value
823
824 #line 292 "parser.ypp" // lalr1.cc:616
825 { delete (yysym.value.objectValue); }
826 #line 827 "parser.tab.cpp" // lalr1.cc:616
827 break;
828
829 case 81: // object_field_list
830
831 #line 292 "parser.ypp" // lalr1.cc:616
832 { delete (yysym.value.objectFieldList); }
833 #line 834 "parser.tab.cpp" // lalr1.cc:616
834 break;
835
836 case 82: // object_field
837
838 #line 292 "parser.ypp" // lalr1.cc:616
839 { delete (yysym.value.objectField); }
840 #line 841 "parser.tab.cpp" // lalr1.cc:616
841 break;
842
843 case 83: // object_value_const
844
845 #line 292 "parser.ypp" // lalr1.cc:616
846 { delete (yysym.value.objectValue); }
847 #line 848 "parser.tab.cpp" // lalr1.cc:616
848 break;
849
850 case 84: // object_field_const_list
851
852 #line 292 "parser.ypp" // lalr1.cc:616
853 { delete (yysym.value.objectFieldList); }
854 #line 855 "parser.tab.cpp" // lalr1.cc:616
855 break;
856
857 case 85: // object_field_const
858
859 #line 292 "parser.ypp" // lalr1.cc:616
860 { delete (yysym.value.objectField); }
861 #line 862 "parser.tab.cpp" // lalr1.cc:616
862 break;
863
864 case 86: // directives
865
866 #line 292 "parser.ypp" // lalr1.cc:616
867 { delete (yysym.value.directiveList); }
868 #line 869 "parser.tab.cpp" // lalr1.cc:616
869 break;
870
871 case 87: // directives_opt
872
873 #line 292 "parser.ypp" // lalr1.cc:616
874 { delete (yysym.value.directiveList); }
875 #line 876 "parser.tab.cpp" // lalr1.cc:616
876 break;
877
878 case 88: // directive_list
879
880 #line 292 "parser.ypp" // lalr1.cc:616
881 { delete (yysym.value.directiveList); }
882 #line 883 "parser.tab.cpp" // lalr1.cc:616
883 break;
884
885 case 89: // directive
886
887 #line 292 "parser.ypp" // lalr1.cc:616
888 { delete (yysym.value.directive); }
889 #line 890 "parser.tab.cpp" // lalr1.cc:616
890 break;
891
892 case 90: // type
893
894 #line 292 "parser.ypp" // lalr1.cc:616
895 { delete (yysym.value.type); }
896 #line 897 "parser.tab.cpp" // lalr1.cc:616
897 break;
898
899 case 91: // type_name
900
901 #line 292 "parser.ypp" // lalr1.cc:616
902 { delete (yysym.value.namedType); }
903 #line 904 "parser.tab.cpp" // lalr1.cc:616
904 break;
905
906 case 92: // list_type
907
908 #line 292 "parser.ypp" // lalr1.cc:616
909 { delete (yysym.value.listType); }
910 #line 911 "parser.tab.cpp" // lalr1.cc:616
911 break;
912
913 case 93: // non_null_type
914
915 #line 292 "parser.ypp" // lalr1.cc:616
916 { delete (yysym.value.nonNullType); }
917 #line 918 "parser.tab.cpp" // lalr1.cc:616
918 break;
919
920 case 94: // schema_definition
921
922 #line 292 "parser.ypp" // lalr1.cc:616
923 { delete (yysym.value.schemaDefinition); }
924 #line 925 "parser.tab.cpp" // lalr1.cc:616
925 break;
926
927 case 95: // operation_type_definition_list
928
929 #line 292 "parser.ypp" // lalr1.cc:616
930 { delete (yysym.value.operationTypeDefinitionList); }
931 #line 932 "parser.tab.cpp" // lalr1.cc:616
932 break;
933
934 case 96: // operation_type_definition
935
936 #line 292 "parser.ypp" // lalr1.cc:616
937 { delete (yysym.value.operationTypeDefinition); }
938 #line 939 "parser.tab.cpp" // lalr1.cc:616
939 break;
940
941 case 97: // scalar_type_definition
942
943 #line 292 "parser.ypp" // lalr1.cc:616
944 { delete (yysym.value.scalarTypeDefinition); }
945 #line 946 "parser.tab.cpp" // lalr1.cc:616
946 break;
947
948 case 98: // object_type_definition
949
950 #line 292 "parser.ypp" // lalr1.cc:616
951 { delete (yysym.value.objectTypeDefinition); }
952 #line 953 "parser.tab.cpp" // lalr1.cc:616
953 break;
954
955 case 99: // implements_interfaces_opt
956
957 #line 292 "parser.ypp" // lalr1.cc:616
958 { delete (yysym.value.typeNameList); }
959 #line 960 "parser.tab.cpp" // lalr1.cc:616
960 break;
961
962 case 100: // type_name_list
963
964 #line 292 "parser.ypp" // lalr1.cc:616
965 { delete (yysym.value.typeNameList); }
966 #line 967 "parser.tab.cpp" // lalr1.cc:616
967 break;
968
969 case 101: // field_definition
970
971 #line 292 "parser.ypp" // lalr1.cc:616
972 { delete (yysym.value.fieldDefinition); }
973 #line 974 "parser.tab.cpp" // lalr1.cc:616
974 break;
975
976 case 102: // field_definition_list
977
978 #line 292 "parser.ypp" // lalr1.cc:616
979 { delete (yysym.value.fieldDefinitionList); }
980 #line 981 "parser.tab.cpp" // lalr1.cc:616
981 break;
982
983 case 103: // arguments_definition_opt
984
985 #line 292 "parser.ypp" // lalr1.cc:616
986 { delete (yysym.value.inputValueDefinitionList); }
987 #line 988 "parser.tab.cpp" // lalr1.cc:616
988 break;
989
990 case 104: // arguments_definition
991
992 #line 292 "parser.ypp" // lalr1.cc:616
993 { delete (yysym.value.inputValueDefinitionList); }
994 #line 995 "parser.tab.cpp" // lalr1.cc:616
995 break;
996
997 case 105: // input_value_definition_list
998
999 #line 292 "parser.ypp" // lalr1.cc:616
1000 { delete (yysym.value.inputValueDefinitionList); }
1001 #line 1002 "parser.tab.cpp" // lalr1.cc:616
1002 break;
1003
1004 case 106: // input_value_definition
1005
1006 #line 292 "parser.ypp" // lalr1.cc:616
1007 { delete (yysym.value.inputValueDefinition); }
1008 #line 1009 "parser.tab.cpp" // lalr1.cc:616
1009 break;
1010
1011 case 107: // interface_type_definition
1012
1013 #line 292 "parser.ypp" // lalr1.cc:616
1014 { delete (yysym.value.interfaceTypeDefinition); }
1015 #line 1016 "parser.tab.cpp" // lalr1.cc:616
1016 break;
1017
1018 case 108: // union_type_definition
1019
1020 #line 292 "parser.ypp" // lalr1.cc:616
1021 { delete (yysym.value.unionTypeDefinition); }
1022 #line 1023 "parser.tab.cpp" // lalr1.cc:616
1023 break;
1024
1025 case 109: // union_members
1026
1027 #line 292 "parser.ypp" // lalr1.cc:616
1028 { delete (yysym.value.typeNameList); }
1029 #line 1030 "parser.tab.cpp" // lalr1.cc:616
1030 break;
1031
1032 case 110: // enum_type_definition
1033
1034 #line 292 "parser.ypp" // lalr1.cc:616
1035 { delete (yysym.value.enumTypeDefinition); }
1036 #line 1037 "parser.tab.cpp" // lalr1.cc:616
1037 break;
1038
1039 case 111: // enum_value_definition
1040
1041 #line 292 "parser.ypp" // lalr1.cc:616
1042 { delete (yysym.value.enumValueDefinition); }
1043 #line 1044 "parser.tab.cpp" // lalr1.cc:616
1044 break;
1045
1046 case 112: // enum_value_definition_list
1047
1048 #line 292 "parser.ypp" // lalr1.cc:616
1049 { delete (yysym.value.enumValueDefinitionList); }
1050 #line 1051 "parser.tab.cpp" // lalr1.cc:616
1051 break;
1052
1053 case 113: // input_object_type_definition
1054
1055 #line 292 "parser.ypp" // lalr1.cc:616
1056 { delete (yysym.value.inputObjectTypeDefinition); }
1057 #line 1058 "parser.tab.cpp" // lalr1.cc:616
1058 break;
1059
1060 case 114: // type_extension_definition
1061
1062 #line 292 "parser.ypp" // lalr1.cc:616
1063 { delete (yysym.value.typeExtensionDefinition); }
1064 #line 1065 "parser.tab.cpp" // lalr1.cc:616
1065 break;
1066
1067 case 115: // directive_definition
1068
1069 #line 292 "parser.ypp" // lalr1.cc:616
1070 { delete (yysym.value.directiveDefinition); }
1071 #line 1072 "parser.tab.cpp" // lalr1.cc:616
1072 break;
1073
1074 case 116: // directive_locations
1075
1076 #line 292 "parser.ypp" // lalr1.cc:616
1077 { delete (yysym.value.nameList); }
1078 #line 1079 "parser.tab.cpp" // lalr1.cc:616
1079 break;
1080
1081
1082 default:
1083 break;
1084 }
1085 }
1086
1087 #if YYDEBUG
1088 template <typename Base>
1089 void
yy_print_(std::ostream & yyo,const basic_symbol<Base> & yysym) const1090 GraphQLParserImpl::yy_print_ (std::ostream& yyo,
1091 const basic_symbol<Base>& yysym) const
1092 {
1093 std::ostream& yyoutput = yyo;
1094 YYUSE (yyoutput);
1095 symbol_number_type yytype = yysym.type_get ();
1096 // Avoid a (spurious) G++ 4.8 warning about "array subscript is
1097 // below array bounds".
1098 if (yysym.empty ())
1099 std::abort ();
1100 yyo << (yytype < yyntokens_ ? "token" : "nterm")
1101 << ' ' << yytname_[yytype] << " ("
1102 << yysym.location << ": ";
1103 switch (yytype)
1104 {
1105 case 3: // "directive"
1106
1107 #line 294 "parser.ypp" // lalr1.cc:635
1108 { yyoutput << (yysym.value.str); }
1109 #line 1110 "parser.tab.cpp" // lalr1.cc:635
1110 break;
1111
1112 case 4: // "enum"
1113
1114 #line 294 "parser.ypp" // lalr1.cc:635
1115 { yyoutput << (yysym.value.str); }
1116 #line 1117 "parser.tab.cpp" // lalr1.cc:635
1117 break;
1118
1119 case 5: // "extend"
1120
1121 #line 294 "parser.ypp" // lalr1.cc:635
1122 { yyoutput << (yysym.value.str); }
1123 #line 1124 "parser.tab.cpp" // lalr1.cc:635
1124 break;
1125
1126 case 6: // "false"
1127
1128 #line 294 "parser.ypp" // lalr1.cc:635
1129 { yyoutput << (yysym.value.str); }
1130 #line 1131 "parser.tab.cpp" // lalr1.cc:635
1131 break;
1132
1133 case 7: // "fragment"
1134
1135 #line 294 "parser.ypp" // lalr1.cc:635
1136 { yyoutput << (yysym.value.str); }
1137 #line 1138 "parser.tab.cpp" // lalr1.cc:635
1138 break;
1139
1140 case 8: // "implements"
1141
1142 #line 294 "parser.ypp" // lalr1.cc:635
1143 { yyoutput << (yysym.value.str); }
1144 #line 1145 "parser.tab.cpp" // lalr1.cc:635
1145 break;
1146
1147 case 9: // "input"
1148
1149 #line 294 "parser.ypp" // lalr1.cc:635
1150 { yyoutput << (yysym.value.str); }
1151 #line 1152 "parser.tab.cpp" // lalr1.cc:635
1152 break;
1153
1154 case 10: // "interface"
1155
1156 #line 294 "parser.ypp" // lalr1.cc:635
1157 { yyoutput << (yysym.value.str); }
1158 #line 1159 "parser.tab.cpp" // lalr1.cc:635
1159 break;
1160
1161 case 11: // "mutation"
1162
1163 #line 294 "parser.ypp" // lalr1.cc:635
1164 { yyoutput << (yysym.value.str); }
1165 #line 1166 "parser.tab.cpp" // lalr1.cc:635
1166 break;
1167
1168 case 12: // "null"
1169
1170 #line 294 "parser.ypp" // lalr1.cc:635
1171 { yyoutput << (yysym.value.str); }
1172 #line 1173 "parser.tab.cpp" // lalr1.cc:635
1173 break;
1174
1175 case 13: // "query"
1176
1177 #line 294 "parser.ypp" // lalr1.cc:635
1178 { yyoutput << (yysym.value.str); }
1179 #line 1180 "parser.tab.cpp" // lalr1.cc:635
1180 break;
1181
1182 case 14: // "on"
1183
1184 #line 294 "parser.ypp" // lalr1.cc:635
1185 { yyoutput << (yysym.value.str); }
1186 #line 1187 "parser.tab.cpp" // lalr1.cc:635
1187 break;
1188
1189 case 15: // "scalar"
1190
1191 #line 294 "parser.ypp" // lalr1.cc:635
1192 { yyoutput << (yysym.value.str); }
1193 #line 1194 "parser.tab.cpp" // lalr1.cc:635
1194 break;
1195
1196 case 16: // "schema"
1197
1198 #line 294 "parser.ypp" // lalr1.cc:635
1199 { yyoutput << (yysym.value.str); }
1200 #line 1201 "parser.tab.cpp" // lalr1.cc:635
1201 break;
1202
1203 case 17: // "subscription"
1204
1205 #line 294 "parser.ypp" // lalr1.cc:635
1206 { yyoutput << (yysym.value.str); }
1207 #line 1208 "parser.tab.cpp" // lalr1.cc:635
1208 break;
1209
1210 case 18: // "true"
1211
1212 #line 294 "parser.ypp" // lalr1.cc:635
1213 { yyoutput << (yysym.value.str); }
1214 #line 1215 "parser.tab.cpp" // lalr1.cc:635
1215 break;
1216
1217 case 19: // "type"
1218
1219 #line 294 "parser.ypp" // lalr1.cc:635
1220 { yyoutput << (yysym.value.str); }
1221 #line 1222 "parser.tab.cpp" // lalr1.cc:635
1222 break;
1223
1224 case 20: // "union"
1225
1226 #line 294 "parser.ypp" // lalr1.cc:635
1227 { yyoutput << (yysym.value.str); }
1228 #line 1229 "parser.tab.cpp" // lalr1.cc:635
1229 break;
1230
1231 case 33: // VARIABLE
1232
1233 #line 294 "parser.ypp" // lalr1.cc:635
1234 { yyoutput << (yysym.value.str); }
1235 #line 1236 "parser.tab.cpp" // lalr1.cc:635
1236 break;
1237
1238 case 34: // INTEGER
1239
1240 #line 294 "parser.ypp" // lalr1.cc:635
1241 { yyoutput << (yysym.value.str); }
1242 #line 1243 "parser.tab.cpp" // lalr1.cc:635
1243 break;
1244
1245 case 35: // FLOAT
1246
1247 #line 294 "parser.ypp" // lalr1.cc:635
1248 { yyoutput << (yysym.value.str); }
1249 #line 1250 "parser.tab.cpp" // lalr1.cc:635
1250 break;
1251
1252 case 36: // STRING
1253
1254 #line 294 "parser.ypp" // lalr1.cc:635
1255 { yyoutput << (yysym.value.str); }
1256 #line 1257 "parser.tab.cpp" // lalr1.cc:635
1257 break;
1258
1259 case 37: // IDENTIFIER
1260
1261 #line 294 "parser.ypp" // lalr1.cc:635
1262 { yyoutput << (yysym.value.str); }
1263 #line 1264 "parser.tab.cpp" // lalr1.cc:635
1264 break;
1265
1266
1267 default:
1268 break;
1269 }
1270 yyo << ')';
1271 }
1272 #endif
1273
1274 void
yypush_(const char * m,state_type s,symbol_type & sym)1275 GraphQLParserImpl::yypush_ (const char* m, state_type s, symbol_type& sym)
1276 {
1277 stack_symbol_type t (s, sym);
1278 yypush_ (m, t);
1279 }
1280
1281 void
yypush_(const char * m,stack_symbol_type & s)1282 GraphQLParserImpl::yypush_ (const char* m, stack_symbol_type& s)
1283 {
1284 if (m)
1285 YY_SYMBOL_PRINT (m, s);
1286 yystack_.push (s);
1287 }
1288
1289 void
yypop_(unsigned n)1290 GraphQLParserImpl::yypop_ (unsigned n)
1291 {
1292 yystack_.pop (n);
1293 }
1294
1295 #if YYDEBUG
1296 std::ostream&
debug_stream() const1297 GraphQLParserImpl::debug_stream () const
1298 {
1299 return *yycdebug_;
1300 }
1301
1302 void
set_debug_stream(std::ostream & o)1303 GraphQLParserImpl::set_debug_stream (std::ostream& o)
1304 {
1305 yycdebug_ = &o;
1306 }
1307
1308
1309 GraphQLParserImpl::debug_level_type
debug_level() const1310 GraphQLParserImpl::debug_level () const
1311 {
1312 return yydebug_;
1313 }
1314
1315 void
set_debug_level(debug_level_type l)1316 GraphQLParserImpl::set_debug_level (debug_level_type l)
1317 {
1318 yydebug_ = l;
1319 }
1320 #endif // YYDEBUG
1321
1322 GraphQLParserImpl::state_type
yy_lr_goto_state_(state_type yystate,int yysym)1323 GraphQLParserImpl::yy_lr_goto_state_ (state_type yystate, int yysym)
1324 {
1325 int yyr = yypgoto_[yysym - yyntokens_] + yystate;
1326 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
1327 return yytable_[yyr];
1328 else
1329 return yydefgoto_[yysym - yyntokens_];
1330 }
1331
1332 bool
yy_pact_value_is_default_(int yyvalue)1333 GraphQLParserImpl::yy_pact_value_is_default_ (int yyvalue)
1334 {
1335 return yyvalue == yypact_ninf_;
1336 }
1337
1338 bool
yy_table_value_is_error_(int yyvalue)1339 GraphQLParserImpl::yy_table_value_is_error_ (int yyvalue)
1340 {
1341 return yyvalue == yytable_ninf_;
1342 }
1343
1344 int
parse()1345 GraphQLParserImpl::parse ()
1346 {
1347 // State.
1348 int yyn;
1349 /// Length of the RHS of the rule being reduced.
1350 int yylen = 0;
1351
1352 // Error handling.
1353 int yynerrs_ = 0;
1354 int yyerrstatus_ = 0;
1355
1356 /// The lookahead symbol.
1357 symbol_type yyla;
1358
1359 /// The locations where the error started and ended.
1360 stack_symbol_type yyerror_range[3];
1361
1362 /// The return value of parse ().
1363 int yyresult;
1364
1365 // FIXME: This shoud be completely indented. It is not yet to
1366 // avoid gratuitous conflicts when merging into the master branch.
1367 try
1368 {
1369 YYCDEBUG << "Starting parse\n";
1370
1371
1372 /* Initialize the stack. The initial state will be set in
1373 yynewstate, since the latter expects the semantical and the
1374 location values to have been already stored, initialize these
1375 stacks with a primary value. */
1376 yystack_.clear ();
1377 yypush_ (YY_NULLPTR, 0, yyla);
1378
1379 // A new symbol was pushed on the stack.
1380 yynewstate:
1381 YYCDEBUG << "Entering state " << yystack_[0].state << '\n';
1382
1383 // Accept?
1384 if (yystack_[0].state == yyfinal_)
1385 goto yyacceptlab;
1386
1387 goto yybackup;
1388
1389 // Backup.
1390 yybackup:
1391
1392 // Try to take a decision without lookahead.
1393 yyn = yypact_[yystack_[0].state];
1394 if (yy_pact_value_is_default_ (yyn))
1395 goto yydefault;
1396
1397 // Read a lookahead token.
1398 if (yyla.empty ())
1399 {
1400 YYCDEBUG << "Reading a token: ";
1401 try
1402 {
1403 yyla.type = yytranslate_ (yylex (&yyla.value, &yyla.location, scanner));
1404 }
1405 catch (const syntax_error& yyexc)
1406 {
1407 error (yyexc);
1408 goto yyerrlab1;
1409 }
1410 }
1411 YY_SYMBOL_PRINT ("Next token is", yyla);
1412
1413 /* If the proper action on seeing token YYLA.TYPE is to reduce or
1414 to detect an error, take that action. */
1415 yyn += yyla.type_get ();
1416 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
1417 goto yydefault;
1418
1419 // Reduce or error.
1420 yyn = yytable_[yyn];
1421 if (yyn <= 0)
1422 {
1423 if (yy_table_value_is_error_ (yyn))
1424 goto yyerrlab;
1425 yyn = -yyn;
1426 goto yyreduce;
1427 }
1428
1429 // Count tokens shifted since error; after three, turn off error status.
1430 if (yyerrstatus_)
1431 --yyerrstatus_;
1432
1433 // Shift the lookahead token.
1434 yypush_ ("Shifting", yyn, yyla);
1435 goto yynewstate;
1436
1437 /*-----------------------------------------------------------.
1438 | yydefault -- do the default action for the current state. |
1439 `-----------------------------------------------------------*/
1440 yydefault:
1441 yyn = yydefact_[yystack_[0].state];
1442 if (yyn == 0)
1443 goto yyerrlab;
1444 goto yyreduce;
1445
1446 /*-----------------------------.
1447 | yyreduce -- Do a reduction. |
1448 `-----------------------------*/
1449 yyreduce:
1450 yylen = yyr2_[yyn];
1451 {
1452 stack_symbol_type yylhs;
1453 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
1454 /* If YYLEN is nonzero, implement the default value of the
1455 action: '$$ = $1'. Otherwise, use the top of the stack.
1456
1457 Otherwise, the following line sets YYLHS.VALUE to garbage.
1458 This behavior is undocumented and Bison users should not rely
1459 upon it. */
1460 if (yylen)
1461 yylhs.value = yystack_[yylen - 1].value;
1462 else
1463 yylhs.value = yystack_[0].value;
1464
1465 // Default location.
1466 {
1467 slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
1468 YYLLOC_DEFAULT (yylhs.location, slice, yylen);
1469 yyerror_range[1].location = yylhs.location;
1470 }
1471
1472 // Perform the reduction.
1473 YY_REDUCE_PRINT (yyn);
1474 try
1475 {
1476 switch (yyn)
1477 {
1478 case 2:
1479 #line 298 "parser.ypp" // lalr1.cc:856
1480 { *outAST = (yystack_[0].value.document); }
1481 #line 1482 "parser.tab.cpp" // lalr1.cc:856
1482 break;
1483
1484 case 3:
1485 #line 303 "parser.ypp" // lalr1.cc:856
1486 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1487 #line 1488 "parser.tab.cpp" // lalr1.cc:856
1488 break;
1489
1490 case 4:
1491 #line 304 "parser.ypp" // lalr1.cc:856
1492 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1493 #line 1494 "parser.tab.cpp" // lalr1.cc:856
1494 break;
1495
1496 case 5:
1497 #line 305 "parser.ypp" // lalr1.cc:856
1498 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1499 #line 1500 "parser.tab.cpp" // lalr1.cc:856
1500 break;
1501
1502 case 6:
1503 #line 306 "parser.ypp" // lalr1.cc:856
1504 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1505 #line 1506 "parser.tab.cpp" // lalr1.cc:856
1506 break;
1507
1508 case 7:
1509 #line 307 "parser.ypp" // lalr1.cc:856
1510 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1511 #line 1512 "parser.tab.cpp" // lalr1.cc:856
1512 break;
1513
1514 case 8:
1515 #line 308 "parser.ypp" // lalr1.cc:856
1516 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1517 #line 1518 "parser.tab.cpp" // lalr1.cc:856
1518 break;
1519
1520 case 9:
1521 #line 309 "parser.ypp" // lalr1.cc:856
1522 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1523 #line 1524 "parser.tab.cpp" // lalr1.cc:856
1524 break;
1525
1526 case 10:
1527 #line 310 "parser.ypp" // lalr1.cc:856
1528 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1529 #line 1530 "parser.tab.cpp" // lalr1.cc:856
1530 break;
1531
1532 case 11:
1533 #line 311 "parser.ypp" // lalr1.cc:856
1534 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1535 #line 1536 "parser.tab.cpp" // lalr1.cc:856
1536 break;
1537
1538 case 12:
1539 #line 312 "parser.ypp" // lalr1.cc:856
1540 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1541 #line 1542 "parser.tab.cpp" // lalr1.cc:856
1542 break;
1543
1544 case 13:
1545 #line 313 "parser.ypp" // lalr1.cc:856
1546 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1547 #line 1548 "parser.tab.cpp" // lalr1.cc:856
1548 break;
1549
1550 case 14:
1551 #line 314 "parser.ypp" // lalr1.cc:856
1552 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1553 #line 1554 "parser.tab.cpp" // lalr1.cc:856
1554 break;
1555
1556 case 15:
1557 #line 315 "parser.ypp" // lalr1.cc:856
1558 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1559 #line 1560 "parser.tab.cpp" // lalr1.cc:856
1560 break;
1561
1562 case 16:
1563 #line 316 "parser.ypp" // lalr1.cc:856
1564 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1565 #line 1566 "parser.tab.cpp" // lalr1.cc:856
1566 break;
1567
1568 case 17:
1569 #line 317 "parser.ypp" // lalr1.cc:856
1570 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1571 #line 1572 "parser.tab.cpp" // lalr1.cc:856
1572 break;
1573
1574 case 18:
1575 #line 318 "parser.ypp" // lalr1.cc:856
1576 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1577 #line 1578 "parser.tab.cpp" // lalr1.cc:856
1578 break;
1579
1580 case 19:
1581 #line 319 "parser.ypp" // lalr1.cc:856
1582 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1583 #line 1584 "parser.tab.cpp" // lalr1.cc:856
1584 break;
1585
1586 case 20:
1587 #line 320 "parser.ypp" // lalr1.cc:856
1588 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1589 #line 1590 "parser.tab.cpp" // lalr1.cc:856
1590 break;
1591
1592 case 22:
1593 #line 324 "parser.ypp" // lalr1.cc:856
1594 { (yylhs.value.name) = new Name(yystack_[0].location, strdup((yystack_[0].value.str))); }
1595 #line 1596 "parser.tab.cpp" // lalr1.cc:856
1596 break;
1597
1598 case 23:
1599 #line 328 "parser.ypp" // lalr1.cc:856
1600 {(yylhs.value.name) = nullptr;}
1601 #line 1602 "parser.tab.cpp" // lalr1.cc:856
1602 break;
1603
1604 case 25:
1605 #line 334 "parser.ypp" // lalr1.cc:856
1606 { (yylhs.value.document) = new Document(yylhs.location, (yystack_[0].value.definitionList)); }
1607 #line 1608 "parser.tab.cpp" // lalr1.cc:856
1608 break;
1609
1610 case 26:
1611 #line 337 "parser.ypp" // lalr1.cc:856
1612 { (yylhs.value.definitionList) = new std::vector<std::unique_ptr<Definition>>(); (yylhs.value.definitionList)->emplace_back((yystack_[0].value.definition)); }
1613 #line 1614 "parser.tab.cpp" // lalr1.cc:856
1614 break;
1615
1616 case 27:
1617 #line 338 "parser.ypp" // lalr1.cc:856
1618 { (yystack_[1].value.definitionList)->emplace_back((yystack_[0].value.definition)); (yylhs.value.definitionList) = (yystack_[1].value.definitionList); }
1619 #line 1620 "parser.tab.cpp" // lalr1.cc:856
1620 break;
1621
1622 case 28:
1623 #line 341 "parser.ypp" // lalr1.cc:856
1624 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.operationDefinition)); }
1625 #line 1626 "parser.tab.cpp" // lalr1.cc:856
1626 break;
1627
1628 case 29:
1629 #line 342 "parser.ypp" // lalr1.cc:856
1630 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.fragmentDefinition)); }
1631 #line 1632 "parser.tab.cpp" // lalr1.cc:856
1632 break;
1633
1634 case 30:
1635 #line 343 "parser.ypp" // lalr1.cc:856
1636 {
1637 if (!enableSchema) {
1638 error(yylhs.location, "schema support disabled");
1639 // %destructor doesn't work with YYERROR. See
1640 // https://www.gnu.org/software/bison/manual/html_node/Destructor-Decl.html
1641 delete (yylhs.value.definition);
1642 YYERROR;
1643 }
1644 (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.definition));
1645 }
1646 #line 1647 "parser.tab.cpp" // lalr1.cc:856
1647 break;
1648
1649 case 31:
1650 #line 355 "parser.ypp" // lalr1.cc:856
1651 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.schemaDefinition)); }
1652 #line 1653 "parser.tab.cpp" // lalr1.cc:856
1653 break;
1654
1655 case 32:
1656 #line 356 "parser.ypp" // lalr1.cc:856
1657 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.scalarTypeDefinition)); }
1658 #line 1659 "parser.tab.cpp" // lalr1.cc:856
1659 break;
1660
1661 case 33:
1662 #line 357 "parser.ypp" // lalr1.cc:856
1663 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.objectTypeDefinition)); }
1664 #line 1665 "parser.tab.cpp" // lalr1.cc:856
1665 break;
1666
1667 case 34:
1668 #line 358 "parser.ypp" // lalr1.cc:856
1669 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.interfaceTypeDefinition)); }
1670 #line 1671 "parser.tab.cpp" // lalr1.cc:856
1671 break;
1672
1673 case 35:
1674 #line 359 "parser.ypp" // lalr1.cc:856
1675 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.unionTypeDefinition)); }
1676 #line 1677 "parser.tab.cpp" // lalr1.cc:856
1677 break;
1678
1679 case 36:
1680 #line 360 "parser.ypp" // lalr1.cc:856
1681 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.enumTypeDefinition)); }
1682 #line 1683 "parser.tab.cpp" // lalr1.cc:856
1683 break;
1684
1685 case 37:
1686 #line 361 "parser.ypp" // lalr1.cc:856
1687 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.inputObjectTypeDefinition)); }
1688 #line 1689 "parser.tab.cpp" // lalr1.cc:856
1689 break;
1690
1691 case 38:
1692 #line 362 "parser.ypp" // lalr1.cc:856
1693 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.typeExtensionDefinition)); }
1694 #line 1695 "parser.tab.cpp" // lalr1.cc:856
1695 break;
1696
1697 case 39:
1698 #line 363 "parser.ypp" // lalr1.cc:856
1699 { (yylhs.value.definition) = static_cast<Definition *>((yystack_[0].value.directiveDefinition)); }
1700 #line 1701 "parser.tab.cpp" // lalr1.cc:856
1701 break;
1702
1703 case 40:
1704 #line 369 "parser.ypp" // lalr1.cc:856
1705 { (yylhs.value.operationDefinition) = new OperationDefinition(yylhs.location, strdup("query"), nullptr, nullptr, nullptr, (yystack_[0].value.selectionSet)); }
1706 #line 1707 "parser.tab.cpp" // lalr1.cc:856
1707 break;
1708
1709 case 41:
1710 #line 370 "parser.ypp" // lalr1.cc:856
1711 { (yylhs.value.operationDefinition) = new OperationDefinition(yylhs.location, (yystack_[2].value.heapStr), (yystack_[1].value.name), nullptr, nullptr, (yystack_[0].value.selectionSet)); }
1712 #line 1713 "parser.tab.cpp" // lalr1.cc:856
1713 break;
1714
1715 case 42:
1716 #line 371 "parser.ypp" // lalr1.cc:856
1717 { (yylhs.value.operationDefinition) = new OperationDefinition(yylhs.location, (yystack_[3].value.heapStr), (yystack_[2].value.name), (yystack_[1].value.variableDefinitionList), nullptr, (yystack_[0].value.selectionSet)); }
1718 #line 1719 "parser.tab.cpp" // lalr1.cc:856
1719 break;
1720
1721 case 43:
1722 #line 372 "parser.ypp" // lalr1.cc:856
1723 { (yylhs.value.operationDefinition) = new OperationDefinition(yylhs.location, (yystack_[3].value.heapStr), (yystack_[2].value.name), nullptr, (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1724 #line 1725 "parser.tab.cpp" // lalr1.cc:856
1725 break;
1726
1727 case 44:
1728 #line 373 "parser.ypp" // lalr1.cc:856
1729 { (yylhs.value.operationDefinition) = new OperationDefinition(yylhs.location, (yystack_[4].value.heapStr), (yystack_[3].value.name), (yystack_[2].value.variableDefinitionList), (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1730 #line 1731 "parser.tab.cpp" // lalr1.cc:856
1731 break;
1732
1733 case 45:
1734 #line 376 "parser.ypp" // lalr1.cc:856
1735 { (yylhs.value.heapStr) = strdup((yystack_[0].value.str)); }
1736 #line 1737 "parser.tab.cpp" // lalr1.cc:856
1737 break;
1738
1739 case 46:
1740 #line 377 "parser.ypp" // lalr1.cc:856
1741 { (yylhs.value.heapStr) = strdup((yystack_[0].value.str)); }
1742 #line 1743 "parser.tab.cpp" // lalr1.cc:856
1743 break;
1744
1745 case 47:
1746 #line 378 "parser.ypp" // lalr1.cc:856
1747 { (yylhs.value.heapStr) = strdup((yystack_[0].value.str)); }
1748 #line 1749 "parser.tab.cpp" // lalr1.cc:856
1749 break;
1750
1751 case 48:
1752 #line 382 "parser.ypp" // lalr1.cc:856
1753 { (yylhs.value.variableDefinitionList) = (yystack_[1].value.variableDefinitionList); }
1754 #line 1755 "parser.tab.cpp" // lalr1.cc:856
1755 break;
1756
1757 case 49:
1758 #line 386 "parser.ypp" // lalr1.cc:856
1759 { (yylhs.value.variableDefinitionList) = new std::vector<std::unique_ptr<VariableDefinition>>(); (yylhs.value.variableDefinitionList)->emplace_back((yystack_[0].value.variableDefinition)); }
1760 #line 1761 "parser.tab.cpp" // lalr1.cc:856
1761 break;
1762
1763 case 50:
1764 #line 387 "parser.ypp" // lalr1.cc:856
1765 { (yystack_[1].value.variableDefinitionList)->emplace_back((yystack_[0].value.variableDefinition)); (yylhs.value.variableDefinitionList) = (yystack_[1].value.variableDefinitionList); }
1766 #line 1767 "parser.tab.cpp" // lalr1.cc:856
1767 break;
1768
1769 case 51:
1770 #line 390 "parser.ypp" // lalr1.cc:856
1771 { (yylhs.value.variable) = new Variable(yylhs.location, new Name(yystack_[0].location, strdup((yystack_[0].value.str)))); }
1772 #line 1773 "parser.tab.cpp" // lalr1.cc:856
1773 break;
1774
1775 case 52:
1776 #line 394 "parser.ypp" // lalr1.cc:856
1777 { (yylhs.value.variableDefinition) = new VariableDefinition(yylhs.location, (yystack_[3].value.variable), (yystack_[1].value.type), (yystack_[0].value.value)); }
1778 #line 1779 "parser.tab.cpp" // lalr1.cc:856
1779 break;
1780
1781 case 53:
1782 #line 398 "parser.ypp" // lalr1.cc:856
1783 { (yylhs.value.value) = nullptr; }
1784 #line 1785 "parser.tab.cpp" // lalr1.cc:856
1785 break;
1786
1787 case 55:
1788 #line 402 "parser.ypp" // lalr1.cc:856
1789 { (yylhs.value.value) = (yystack_[0].value.value); }
1790 #line 1791 "parser.tab.cpp" // lalr1.cc:856
1791 break;
1792
1793 case 56:
1794 #line 406 "parser.ypp" // lalr1.cc:856
1795 { (yylhs.value.selectionSet) = new SelectionSet(yylhs.location, (yystack_[1].value.selectionList)); }
1796 #line 1797 "parser.tab.cpp" // lalr1.cc:856
1797 break;
1798
1799 case 57:
1800 #line 410 "parser.ypp" // lalr1.cc:856
1801 { (yylhs.value.selectionSet) = nullptr; }
1802 #line 1803 "parser.tab.cpp" // lalr1.cc:856
1803 break;
1804
1805 case 59:
1806 #line 413 "parser.ypp" // lalr1.cc:856
1807 { (yylhs.value.selectionList) = new std::vector<std::unique_ptr<Selection>>(); (yylhs.value.selectionList)->emplace_back((yystack_[0].value.selection)); }
1808 #line 1809 "parser.tab.cpp" // lalr1.cc:856
1809 break;
1810
1811 case 60:
1812 #line 414 "parser.ypp" // lalr1.cc:856
1813 { (yystack_[1].value.selectionList)->emplace_back((yystack_[0].value.selection)); (yylhs.value.selectionList) = (yystack_[1].value.selectionList); }
1814 #line 1815 "parser.tab.cpp" // lalr1.cc:856
1815 break;
1816
1817 case 61:
1818 #line 417 "parser.ypp" // lalr1.cc:856
1819 { (yylhs.value.selection) = static_cast<Selection *>((yystack_[0].value.field)); }
1820 #line 1821 "parser.tab.cpp" // lalr1.cc:856
1821 break;
1822
1823 case 62:
1824 #line 418 "parser.ypp" // lalr1.cc:856
1825 { (yylhs.value.selection) = static_cast<Selection *>((yystack_[0].value.fragmentSpread)); }
1826 #line 1827 "parser.tab.cpp" // lalr1.cc:856
1827 break;
1828
1829 case 63:
1830 #line 419 "parser.ypp" // lalr1.cc:856
1831 { (yylhs.value.selection) = static_cast<Selection *>((yystack_[0].value.inlineFragment)); }
1832 #line 1833 "parser.tab.cpp" // lalr1.cc:856
1833 break;
1834
1835 case 64:
1836 #line 422 "parser.ypp" // lalr1.cc:856
1837 { (yylhs.value.field) = new Field(yylhs.location, nullptr, (yystack_[3].value.name), (yystack_[2].value.argumentList), (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1838 #line 1839 "parser.tab.cpp" // lalr1.cc:856
1839 break;
1840
1841 case 65:
1842 #line 423 "parser.ypp" // lalr1.cc:856
1843 { (yylhs.value.field) = new Field(yylhs.location, (yystack_[5].value.name), (yystack_[3].value.name), (yystack_[2].value.argumentList), (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1844 #line 1845 "parser.tab.cpp" // lalr1.cc:856
1845 break;
1846
1847 case 66:
1848 #line 426 "parser.ypp" // lalr1.cc:856
1849 { (yylhs.value.argumentList) = (yystack_[1].value.argumentList); }
1850 #line 1851 "parser.tab.cpp" // lalr1.cc:856
1851 break;
1852
1853 case 67:
1854 #line 429 "parser.ypp" // lalr1.cc:856
1855 { (yylhs.value.argumentList) = nullptr; }
1856 #line 1857 "parser.tab.cpp" // lalr1.cc:856
1857 break;
1858
1859 case 68:
1860 #line 430 "parser.ypp" // lalr1.cc:856
1861 { (yylhs.value.argumentList) = (yystack_[0].value.argumentList); }
1862 #line 1863 "parser.tab.cpp" // lalr1.cc:856
1863 break;
1864
1865 case 69:
1866 #line 433 "parser.ypp" // lalr1.cc:856
1867 { (yylhs.value.argumentList) = new std::vector<std::unique_ptr<Argument>>(); (yylhs.value.argumentList)->emplace_back((yystack_[0].value.argument)); }
1868 #line 1869 "parser.tab.cpp" // lalr1.cc:856
1869 break;
1870
1871 case 70:
1872 #line 434 "parser.ypp" // lalr1.cc:856
1873 { (yystack_[1].value.argumentList)->emplace_back((yystack_[0].value.argument)); (yylhs.value.argumentList) = (yystack_[1].value.argumentList); }
1874 #line 1875 "parser.tab.cpp" // lalr1.cc:856
1875 break;
1876
1877 case 71:
1878 #line 437 "parser.ypp" // lalr1.cc:856
1879 { (yylhs.value.argument) = new Argument(yylhs.location, (yystack_[2].value.name), (yystack_[0].value.value)); }
1880 #line 1881 "parser.tab.cpp" // lalr1.cc:856
1881 break;
1882
1883 case 72:
1884 #line 442 "parser.ypp" // lalr1.cc:856
1885 { (yylhs.value.fragmentSpread) = new FragmentSpread(yylhs.location, (yystack_[1].value.name), (yystack_[0].value.directiveList)); }
1886 #line 1887 "parser.tab.cpp" // lalr1.cc:856
1887 break;
1888
1889 case 73:
1890 #line 446 "parser.ypp" // lalr1.cc:856
1891 { (yylhs.value.inlineFragment) = new InlineFragment(yylhs.location, (yystack_[2].value.namedType), (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1892 #line 1893 "parser.tab.cpp" // lalr1.cc:856
1893 break;
1894
1895 case 74:
1896 #line 447 "parser.ypp" // lalr1.cc:856
1897 { (yylhs.value.inlineFragment) = new InlineFragment(yylhs.location, nullptr, (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1898 #line 1899 "parser.tab.cpp" // lalr1.cc:856
1899 break;
1900
1901 case 75:
1902 #line 451 "parser.ypp" // lalr1.cc:856
1903 { (yylhs.value.fragmentDefinition) = new FragmentDefinition(yylhs.location, (yystack_[4].value.name), (yystack_[2].value.namedType), (yystack_[1].value.directiveList), (yystack_[0].value.selectionSet)); }
1904 #line 1905 "parser.tab.cpp" // lalr1.cc:856
1905 break;
1906
1907 case 77:
1908 #line 458 "parser.ypp" // lalr1.cc:856
1909 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.variable)); }
1910 #line 1911 "parser.tab.cpp" // lalr1.cc:856
1911 break;
1912
1913 case 78:
1914 #line 459 "parser.ypp" // lalr1.cc:856
1915 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.intValue)); }
1916 #line 1917 "parser.tab.cpp" // lalr1.cc:856
1917 break;
1918
1919 case 79:
1920 #line 460 "parser.ypp" // lalr1.cc:856
1921 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.floatValue)); }
1922 #line 1923 "parser.tab.cpp" // lalr1.cc:856
1923 break;
1924
1925 case 80:
1926 #line 461 "parser.ypp" // lalr1.cc:856
1927 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.stringValue)); }
1928 #line 1929 "parser.tab.cpp" // lalr1.cc:856
1929 break;
1930
1931 case 81:
1932 #line 462 "parser.ypp" // lalr1.cc:856
1933 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.booleanValue)); }
1934 #line 1935 "parser.tab.cpp" // lalr1.cc:856
1935 break;
1936
1937 case 82:
1938 #line 463 "parser.ypp" // lalr1.cc:856
1939 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.nullValue)); }
1940 #line 1941 "parser.tab.cpp" // lalr1.cc:856
1941 break;
1942
1943 case 83:
1944 #line 464 "parser.ypp" // lalr1.cc:856
1945 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.enumValue)); }
1946 #line 1947 "parser.tab.cpp" // lalr1.cc:856
1947 break;
1948
1949 case 84:
1950 #line 465 "parser.ypp" // lalr1.cc:856
1951 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.arrayValue)); }
1952 #line 1953 "parser.tab.cpp" // lalr1.cc:856
1953 break;
1954
1955 case 85:
1956 #line 466 "parser.ypp" // lalr1.cc:856
1957 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.objectValue)); }
1958 #line 1959 "parser.tab.cpp" // lalr1.cc:856
1959 break;
1960
1961 case 86:
1962 #line 469 "parser.ypp" // lalr1.cc:856
1963 { (yylhs.value.intValue) = new IntValue(yylhs.location, strdup((yystack_[0].value.str))); }
1964 #line 1965 "parser.tab.cpp" // lalr1.cc:856
1965 break;
1966
1967 case 87:
1968 #line 472 "parser.ypp" // lalr1.cc:856
1969 { (yylhs.value.floatValue) = new FloatValue(yylhs.location, strdup((yystack_[0].value.str))); }
1970 #line 1971 "parser.tab.cpp" // lalr1.cc:856
1971 break;
1972
1973 case 88:
1974 #line 475 "parser.ypp" // lalr1.cc:856
1975 { (yylhs.value.stringValue) = new StringValue(yylhs.location, strdup((yystack_[0].value.str))); }
1976 #line 1977 "parser.tab.cpp" // lalr1.cc:856
1977 break;
1978
1979 case 89:
1980 #line 478 "parser.ypp" // lalr1.cc:856
1981 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.intValue)); }
1982 #line 1983 "parser.tab.cpp" // lalr1.cc:856
1983 break;
1984
1985 case 90:
1986 #line 479 "parser.ypp" // lalr1.cc:856
1987 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.floatValue)); }
1988 #line 1989 "parser.tab.cpp" // lalr1.cc:856
1989 break;
1990
1991 case 91:
1992 #line 480 "parser.ypp" // lalr1.cc:856
1993 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.stringValue)); }
1994 #line 1995 "parser.tab.cpp" // lalr1.cc:856
1995 break;
1996
1997 case 92:
1998 #line 481 "parser.ypp" // lalr1.cc:856
1999 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.booleanValue)); }
2000 #line 2001 "parser.tab.cpp" // lalr1.cc:856
2001 break;
2002
2003 case 93:
2004 #line 482 "parser.ypp" // lalr1.cc:856
2005 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.nullValue)); }
2006 #line 2007 "parser.tab.cpp" // lalr1.cc:856
2007 break;
2008
2009 case 94:
2010 #line 483 "parser.ypp" // lalr1.cc:856
2011 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.enumValue)); }
2012 #line 2013 "parser.tab.cpp" // lalr1.cc:856
2013 break;
2014
2015 case 95:
2016 #line 484 "parser.ypp" // lalr1.cc:856
2017 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.arrayValue)); }
2018 #line 2019 "parser.tab.cpp" // lalr1.cc:856
2019 break;
2020
2021 case 96:
2022 #line 485 "parser.ypp" // lalr1.cc:856
2023 { (yylhs.value.value) = static_cast<Value *>((yystack_[0].value.objectValue)); }
2024 #line 2025 "parser.tab.cpp" // lalr1.cc:856
2025 break;
2026
2027 case 97:
2028 #line 488 "parser.ypp" // lalr1.cc:856
2029 { (yylhs.value.booleanValue) = new BooleanValue(yylhs.location, true); }
2030 #line 2031 "parser.tab.cpp" // lalr1.cc:856
2031 break;
2032
2033 case 98:
2034 #line 489 "parser.ypp" // lalr1.cc:856
2035 { (yylhs.value.booleanValue) = new BooleanValue(yylhs.location, false); }
2036 #line 2037 "parser.tab.cpp" // lalr1.cc:856
2037 break;
2038
2039 case 99:
2040 #line 492 "parser.ypp" // lalr1.cc:856
2041 { (yylhs.value.nullValue) = new NullValue(yylhs.location); }
2042 #line 2043 "parser.tab.cpp" // lalr1.cc:856
2043 break;
2044
2045 case 100:
2046 #line 495 "parser.ypp" // lalr1.cc:856
2047 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2048 #line 2049 "parser.tab.cpp" // lalr1.cc:856
2049 break;
2050
2051 case 101:
2052 #line 496 "parser.ypp" // lalr1.cc:856
2053 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2054 #line 2055 "parser.tab.cpp" // lalr1.cc:856
2055 break;
2056
2057 case 102:
2058 #line 497 "parser.ypp" // lalr1.cc:856
2059 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2060 #line 2061 "parser.tab.cpp" // lalr1.cc:856
2061 break;
2062
2063 case 103:
2064 #line 498 "parser.ypp" // lalr1.cc:856
2065 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2066 #line 2067 "parser.tab.cpp" // lalr1.cc:856
2067 break;
2068
2069 case 104:
2070 #line 499 "parser.ypp" // lalr1.cc:856
2071 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2072 #line 2073 "parser.tab.cpp" // lalr1.cc:856
2073 break;
2074
2075 case 105:
2076 #line 500 "parser.ypp" // lalr1.cc:856
2077 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2078 #line 2079 "parser.tab.cpp" // lalr1.cc:856
2079 break;
2080
2081 case 106:
2082 #line 501 "parser.ypp" // lalr1.cc:856
2083 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2084 #line 2085 "parser.tab.cpp" // lalr1.cc:856
2085 break;
2086
2087 case 107:
2088 #line 502 "parser.ypp" // lalr1.cc:856
2089 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2090 #line 2091 "parser.tab.cpp" // lalr1.cc:856
2091 break;
2092
2093 case 108:
2094 #line 503 "parser.ypp" // lalr1.cc:856
2095 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2096 #line 2097 "parser.tab.cpp" // lalr1.cc:856
2097 break;
2098
2099 case 109:
2100 #line 504 "parser.ypp" // lalr1.cc:856
2101 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2102 #line 2103 "parser.tab.cpp" // lalr1.cc:856
2103 break;
2104
2105 case 110:
2106 #line 505 "parser.ypp" // lalr1.cc:856
2107 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2108 #line 2109 "parser.tab.cpp" // lalr1.cc:856
2109 break;
2110
2111 case 111:
2112 #line 506 "parser.ypp" // lalr1.cc:856
2113 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2114 #line 2115 "parser.tab.cpp" // lalr1.cc:856
2115 break;
2116
2117 case 112:
2118 #line 507 "parser.ypp" // lalr1.cc:856
2119 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2120 #line 2121 "parser.tab.cpp" // lalr1.cc:856
2121 break;
2122
2123 case 113:
2124 #line 508 "parser.ypp" // lalr1.cc:856
2125 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2126 #line 2127 "parser.tab.cpp" // lalr1.cc:856
2127 break;
2128
2129 case 114:
2130 #line 509 "parser.ypp" // lalr1.cc:856
2131 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2132 #line 2133 "parser.tab.cpp" // lalr1.cc:856
2133 break;
2134
2135 case 115:
2136 #line 510 "parser.ypp" // lalr1.cc:856
2137 { (yylhs.value.enumValue) = new EnumValue(yylhs.location, strdup((yystack_[0].value.str))); }
2138 #line 2139 "parser.tab.cpp" // lalr1.cc:856
2139 break;
2140
2141 case 116:
2142 #line 517 "parser.ypp" // lalr1.cc:856
2143 { (yylhs.value.arrayValue) = new ListValue(yylhs.location, new std::vector<std::unique_ptr<Value>>()); }
2144 #line 2145 "parser.tab.cpp" // lalr1.cc:856
2145 break;
2146
2147 case 117:
2148 #line 518 "parser.ypp" // lalr1.cc:856
2149 { (yylhs.value.arrayValue) = new ListValue(yylhs.location, (yystack_[1].value.valueList)); }
2150 #line 2151 "parser.tab.cpp" // lalr1.cc:856
2151 break;
2152
2153 case 118:
2154 #line 521 "parser.ypp" // lalr1.cc:856
2155 { (yylhs.value.valueList) = new std::vector<std::unique_ptr<Value>>(); (yylhs.value.valueList)->emplace_back((yystack_[0].value.value)); }
2156 #line 2157 "parser.tab.cpp" // lalr1.cc:856
2157 break;
2158
2159 case 119:
2160 #line 522 "parser.ypp" // lalr1.cc:856
2161 { (yystack_[1].value.valueList)->emplace_back((yystack_[0].value.value)); (yylhs.value.valueList) = (yystack_[1].value.valueList); }
2162 #line 2163 "parser.tab.cpp" // lalr1.cc:856
2163 break;
2164
2165 case 120:
2166 #line 526 "parser.ypp" // lalr1.cc:856
2167 { (yylhs.value.arrayValue) = new ListValue(yylhs.location, new std::vector<std::unique_ptr<Value>>()); }
2168 #line 2169 "parser.tab.cpp" // lalr1.cc:856
2169 break;
2170
2171 case 121:
2172 #line 527 "parser.ypp" // lalr1.cc:856
2173 { (yylhs.value.arrayValue) = new ListValue(yylhs.location, (yystack_[1].value.valueList)); }
2174 #line 2175 "parser.tab.cpp" // lalr1.cc:856
2175 break;
2176
2177 case 122:
2178 #line 531 "parser.ypp" // lalr1.cc:856
2179 { (yylhs.value.valueList) = new std::vector<std::unique_ptr<Value>>(); (yylhs.value.valueList)->emplace_back((yystack_[0].value.value)); }
2180 #line 2181 "parser.tab.cpp" // lalr1.cc:856
2181 break;
2182
2183 case 123:
2184 #line 532 "parser.ypp" // lalr1.cc:856
2185 { (yystack_[1].value.valueList)->emplace_back((yystack_[0].value.value)); (yylhs.value.valueList) = (yystack_[1].value.valueList); }
2186 #line 2187 "parser.tab.cpp" // lalr1.cc:856
2187 break;
2188
2189 case 124:
2190 #line 537 "parser.ypp" // lalr1.cc:856
2191 { (yylhs.value.objectValue) = new ObjectValue(yylhs.location, new std::vector<std::unique_ptr<ObjectField>>()); }
2192 #line 2193 "parser.tab.cpp" // lalr1.cc:856
2193 break;
2194
2195 case 125:
2196 #line 538 "parser.ypp" // lalr1.cc:856
2197 { (yylhs.value.objectValue) = new ObjectValue(yylhs.location, (yystack_[1].value.objectFieldList)); }
2198 #line 2199 "parser.tab.cpp" // lalr1.cc:856
2199 break;
2200
2201 case 126:
2202 #line 542 "parser.ypp" // lalr1.cc:856
2203 { (yylhs.value.objectFieldList) = new std::vector<std::unique_ptr<ObjectField>>(); (yylhs.value.objectFieldList)->emplace_back((yystack_[0].value.objectField)); }
2204 #line 2205 "parser.tab.cpp" // lalr1.cc:856
2205 break;
2206
2207 case 127:
2208 #line 543 "parser.ypp" // lalr1.cc:856
2209 { (yystack_[1].value.objectFieldList)->emplace_back((yystack_[0].value.objectField)); (yylhs.value.objectFieldList) = (yystack_[1].value.objectFieldList); }
2210 #line 2211 "parser.tab.cpp" // lalr1.cc:856
2211 break;
2212
2213 case 128:
2214 #line 546 "parser.ypp" // lalr1.cc:856
2215 { (yylhs.value.objectField) = new ObjectField(yylhs.location, (yystack_[2].value.name), (yystack_[0].value.value)); }
2216 #line 2217 "parser.tab.cpp" // lalr1.cc:856
2217 break;
2218
2219 case 129:
2220 #line 550 "parser.ypp" // lalr1.cc:856
2221 { (yylhs.value.objectValue) = new ObjectValue(yylhs.location, new std::vector<std::unique_ptr<ObjectField>>()); }
2222 #line 2223 "parser.tab.cpp" // lalr1.cc:856
2223 break;
2224
2225 case 130:
2226 #line 551 "parser.ypp" // lalr1.cc:856
2227 { (yylhs.value.objectValue) = new ObjectValue(yylhs.location, (yystack_[1].value.objectFieldList)); }
2228 #line 2229 "parser.tab.cpp" // lalr1.cc:856
2229 break;
2230
2231 case 131:
2232 #line 555 "parser.ypp" // lalr1.cc:856
2233 { (yylhs.value.objectFieldList) = new std::vector<std::unique_ptr<ObjectField>>(); (yylhs.value.objectFieldList)->emplace_back((yystack_[0].value.objectField)); }
2234 #line 2235 "parser.tab.cpp" // lalr1.cc:856
2235 break;
2236
2237 case 132:
2238 #line 556 "parser.ypp" // lalr1.cc:856
2239 { (yystack_[1].value.objectFieldList)->emplace_back((yystack_[0].value.objectField)); (yylhs.value.objectFieldList) = (yystack_[1].value.objectFieldList); }
2240 #line 2241 "parser.tab.cpp" // lalr1.cc:856
2241 break;
2242
2243 case 133:
2244 #line 559 "parser.ypp" // lalr1.cc:856
2245 { (yylhs.value.objectField) = new ObjectField(yylhs.location, (yystack_[2].value.name), (yystack_[0].value.value)); }
2246 #line 2247 "parser.tab.cpp" // lalr1.cc:856
2247 break;
2248
2249 case 135:
2250 #line 567 "parser.ypp" // lalr1.cc:856
2251 { (yylhs.value.directiveList) = nullptr; }
2252 #line 2253 "parser.tab.cpp" // lalr1.cc:856
2253 break;
2254
2255 case 137:
2256 #line 571 "parser.ypp" // lalr1.cc:856
2257 { (yylhs.value.directiveList) = new std::vector<std::unique_ptr<Directive>>(); (yylhs.value.directiveList)->emplace_back((yystack_[0].value.directive)); }
2258 #line 2259 "parser.tab.cpp" // lalr1.cc:856
2259 break;
2260
2261 case 138:
2262 #line 572 "parser.ypp" // lalr1.cc:856
2263 { (yystack_[1].value.directiveList)->emplace_back((yystack_[0].value.directive)); (yylhs.value.directiveList) = (yystack_[1].value.directiveList); }
2264 #line 2265 "parser.tab.cpp" // lalr1.cc:856
2265 break;
2266
2267 case 139:
2268 #line 575 "parser.ypp" // lalr1.cc:856
2269 { (yylhs.value.directive) = new Directive(yylhs.location, (yystack_[1].value.name), (yystack_[0].value.argumentList)); }
2270 #line 2271 "parser.tab.cpp" // lalr1.cc:856
2271 break;
2272
2273 case 140:
2274 #line 580 "parser.ypp" // lalr1.cc:856
2275 { (yylhs.value.type) = static_cast<Type *>((yystack_[0].value.namedType)); }
2276 #line 2277 "parser.tab.cpp" // lalr1.cc:856
2277 break;
2278
2279 case 141:
2280 #line 581 "parser.ypp" // lalr1.cc:856
2281 { (yylhs.value.type) = static_cast<Type *>((yystack_[0].value.listType)); }
2282 #line 2283 "parser.tab.cpp" // lalr1.cc:856
2283 break;
2284
2285 case 142:
2286 #line 582 "parser.ypp" // lalr1.cc:856
2287 { (yylhs.value.type) = static_cast<Type *>((yystack_[0].value.nonNullType)); }
2288 #line 2289 "parser.tab.cpp" // lalr1.cc:856
2289 break;
2290
2291 case 143:
2292 #line 585 "parser.ypp" // lalr1.cc:856
2293 { (yylhs.value.namedType) = new NamedType(yylhs.location, (yystack_[0].value.name)); }
2294 #line 2295 "parser.tab.cpp" // lalr1.cc:856
2295 break;
2296
2297 case 144:
2298 #line 588 "parser.ypp" // lalr1.cc:856
2299 { (yylhs.value.listType) = new ListType(yylhs.location, (yystack_[1].value.type)); }
2300 #line 2301 "parser.tab.cpp" // lalr1.cc:856
2301 break;
2302
2303 case 145:
2304 #line 591 "parser.ypp" // lalr1.cc:856
2305 { (yylhs.value.nonNullType) = new NonNullType(yylhs.location, (yystack_[1].value.namedType)); }
2306 #line 2307 "parser.tab.cpp" // lalr1.cc:856
2307 break;
2308
2309 case 146:
2310 #line 592 "parser.ypp" // lalr1.cc:856
2311 { (yylhs.value.nonNullType) = new NonNullType(yylhs.location, (yystack_[1].value.listType)); }
2312 #line 2313 "parser.tab.cpp" // lalr1.cc:856
2313 break;
2314
2315 case 147:
2316 #line 597 "parser.ypp" // lalr1.cc:856
2317 { (yylhs.value.schemaDefinition) = new SchemaDefinition(yylhs.location, (yystack_[3].value.directiveList), (yystack_[1].value.operationTypeDefinitionList)); }
2318 #line 2319 "parser.tab.cpp" // lalr1.cc:856
2319 break;
2320
2321 case 148:
2322 #line 601 "parser.ypp" // lalr1.cc:856
2323 { (yylhs.value.operationTypeDefinitionList) = new std::vector<std::unique_ptr<OperationTypeDefinition>>(); (yylhs.value.operationTypeDefinitionList)->emplace_back((yystack_[0].value.operationTypeDefinition)); }
2324 #line 2325 "parser.tab.cpp" // lalr1.cc:856
2325 break;
2326
2327 case 149:
2328 #line 602 "parser.ypp" // lalr1.cc:856
2329 { (yystack_[1].value.operationTypeDefinitionList)->emplace_back((yystack_[0].value.operationTypeDefinition)); (yylhs.value.operationTypeDefinitionList) = (yystack_[1].value.operationTypeDefinitionList); }
2330 #line 2331 "parser.tab.cpp" // lalr1.cc:856
2331 break;
2332
2333 case 150:
2334 #line 606 "parser.ypp" // lalr1.cc:856
2335 { (yylhs.value.operationTypeDefinition) = new OperationTypeDefinition(yylhs.location, (yystack_[2].value.heapStr), (yystack_[0].value.namedType)); }
2336 #line 2337 "parser.tab.cpp" // lalr1.cc:856
2337 break;
2338
2339 case 151:
2340 #line 609 "parser.ypp" // lalr1.cc:856
2341 { (yylhs.value.scalarTypeDefinition) = new ScalarTypeDefinition(yylhs.location, (yystack_[1].value.name), (yystack_[0].value.directiveList)); }
2342 #line 2343 "parser.tab.cpp" // lalr1.cc:856
2343 break;
2344
2345 case 152:
2346 #line 612 "parser.ypp" // lalr1.cc:856
2347 { (yylhs.value.objectTypeDefinition) = new ObjectTypeDefinition(yylhs.location, (yystack_[5].value.name), (yystack_[4].value.typeNameList), (yystack_[3].value.directiveList), (yystack_[1].value.fieldDefinitionList)); }
2348 #line 2349 "parser.tab.cpp" // lalr1.cc:856
2349 break;
2350
2351 case 153:
2352 #line 615 "parser.ypp" // lalr1.cc:856
2353 { (yylhs.value.typeNameList) = nullptr; }
2354 #line 2355 "parser.tab.cpp" // lalr1.cc:856
2355 break;
2356
2357 case 154:
2358 #line 616 "parser.ypp" // lalr1.cc:856
2359 { (yylhs.value.typeNameList) = (yystack_[0].value.typeNameList); }
2360 #line 2361 "parser.tab.cpp" // lalr1.cc:856
2361 break;
2362
2363 case 155:
2364 #line 619 "parser.ypp" // lalr1.cc:856
2365 { (yylhs.value.typeNameList) = new std::vector<std::unique_ptr<NamedType>>(); (yylhs.value.typeNameList)->emplace_back((yystack_[0].value.namedType)); }
2366 #line 2367 "parser.tab.cpp" // lalr1.cc:856
2367 break;
2368
2369 case 156:
2370 #line 620 "parser.ypp" // lalr1.cc:856
2371 { (yystack_[1].value.typeNameList)->emplace_back((yystack_[0].value.namedType)); (yylhs.value.typeNameList) = (yystack_[1].value.typeNameList); }
2372 #line 2373 "parser.tab.cpp" // lalr1.cc:856
2373 break;
2374
2375 case 157:
2376 #line 623 "parser.ypp" // lalr1.cc:856
2377 { (yylhs.value.fieldDefinition) = new FieldDefinition(yylhs.location, (yystack_[4].value.name), (yystack_[3].value.inputValueDefinitionList), (yystack_[1].value.type), (yystack_[0].value.directiveList)); }
2378 #line 2379 "parser.tab.cpp" // lalr1.cc:856
2379 break;
2380
2381 case 158:
2382 #line 627 "parser.ypp" // lalr1.cc:856
2383 { (yylhs.value.fieldDefinitionList) = new std::vector<std::unique_ptr<FieldDefinition>>(); (yylhs.value.fieldDefinitionList)->emplace_back((yystack_[0].value.fieldDefinition)); }
2384 #line 2385 "parser.tab.cpp" // lalr1.cc:856
2385 break;
2386
2387 case 159:
2388 #line 628 "parser.ypp" // lalr1.cc:856
2389 { (yystack_[1].value.fieldDefinitionList)->emplace_back((yystack_[0].value.fieldDefinition)); (yylhs.value.fieldDefinitionList) = (yystack_[1].value.fieldDefinitionList); }
2390 #line 2391 "parser.tab.cpp" // lalr1.cc:856
2391 break;
2392
2393 case 160:
2394 #line 631 "parser.ypp" // lalr1.cc:856
2395 { (yylhs.value.inputValueDefinitionList) = nullptr; }
2396 #line 2397 "parser.tab.cpp" // lalr1.cc:856
2397 break;
2398
2399 case 161:
2400 #line 632 "parser.ypp" // lalr1.cc:856
2401 { (yylhs.value.inputValueDefinitionList) = (yystack_[0].value.inputValueDefinitionList); }
2402 #line 2403 "parser.tab.cpp" // lalr1.cc:856
2403 break;
2404
2405 case 162:
2406 #line 635 "parser.ypp" // lalr1.cc:856
2407 { (yylhs.value.inputValueDefinitionList) = (yystack_[1].value.inputValueDefinitionList); }
2408 #line 2409 "parser.tab.cpp" // lalr1.cc:856
2409 break;
2410
2411 case 163:
2412 #line 638 "parser.ypp" // lalr1.cc:856
2413 { (yylhs.value.inputValueDefinitionList) = new std::vector<std::unique_ptr<InputValueDefinition>>(); (yylhs.value.inputValueDefinitionList)->emplace_back((yystack_[0].value.inputValueDefinition)); }
2414 #line 2415 "parser.tab.cpp" // lalr1.cc:856
2415 break;
2416
2417 case 164:
2418 #line 639 "parser.ypp" // lalr1.cc:856
2419 { (yystack_[1].value.inputValueDefinitionList)->emplace_back((yystack_[0].value.inputValueDefinition)); (yylhs.value.inputValueDefinitionList) = (yystack_[1].value.inputValueDefinitionList); }
2420 #line 2421 "parser.tab.cpp" // lalr1.cc:856
2421 break;
2422
2423 case 165:
2424 #line 642 "parser.ypp" // lalr1.cc:856
2425 { (yylhs.value.inputValueDefinition) = new InputValueDefinition(yylhs.location, (yystack_[4].value.name), (yystack_[2].value.type), (yystack_[1].value.value), (yystack_[0].value.directiveList)); }
2426 #line 2427 "parser.tab.cpp" // lalr1.cc:856
2427 break;
2428
2429 case 166:
2430 #line 644 "parser.ypp" // lalr1.cc:856
2431 { (yylhs.value.interfaceTypeDefinition) = new InterfaceTypeDefinition(yylhs.location, (yystack_[4].value.name), (yystack_[3].value.directiveList), (yystack_[1].value.fieldDefinitionList)); }
2432 #line 2433 "parser.tab.cpp" // lalr1.cc:856
2433 break;
2434
2435 case 167:
2436 #line 647 "parser.ypp" // lalr1.cc:856
2437 { (yylhs.value.unionTypeDefinition) = new UnionTypeDefinition(yylhs.location, (yystack_[3].value.name), (yystack_[2].value.directiveList), (yystack_[0].value.typeNameList)); }
2438 #line 2439 "parser.tab.cpp" // lalr1.cc:856
2439 break;
2440
2441 case 168:
2442 #line 650 "parser.ypp" // lalr1.cc:856
2443 { (yylhs.value.typeNameList) = new std::vector<std::unique_ptr<NamedType>>(); (yylhs.value.typeNameList)->emplace_back((yystack_[0].value.namedType)); }
2444 #line 2445 "parser.tab.cpp" // lalr1.cc:856
2445 break;
2446
2447 case 169:
2448 #line 651 "parser.ypp" // lalr1.cc:856
2449 { (yystack_[2].value.typeNameList)->emplace_back((yystack_[0].value.namedType)); (yylhs.value.typeNameList) = (yystack_[2].value.typeNameList); }
2450 #line 2451 "parser.tab.cpp" // lalr1.cc:856
2451 break;
2452
2453 case 170:
2454 #line 654 "parser.ypp" // lalr1.cc:856
2455 { (yylhs.value.enumTypeDefinition) = new EnumTypeDefinition(yylhs.location, (yystack_[4].value.name), (yystack_[3].value.directiveList), (yystack_[1].value.enumValueDefinitionList)); }
2456 #line 2457 "parser.tab.cpp" // lalr1.cc:856
2457 break;
2458
2459 case 171:
2460 #line 657 "parser.ypp" // lalr1.cc:856
2461 { (yylhs.value.enumValueDefinition) = new EnumValueDefinition(yylhs.location, (yystack_[1].value.name), (yystack_[0].value.directiveList)); }
2462 #line 2463 "parser.tab.cpp" // lalr1.cc:856
2463 break;
2464
2465 case 172:
2466 #line 661 "parser.ypp" // lalr1.cc:856
2467 { (yylhs.value.enumValueDefinitionList) = new std::vector<std::unique_ptr<EnumValueDefinition>>(); (yylhs.value.enumValueDefinitionList)->emplace_back((yystack_[0].value.enumValueDefinition)); }
2468 #line 2469 "parser.tab.cpp" // lalr1.cc:856
2469 break;
2470
2471 case 173:
2472 #line 662 "parser.ypp" // lalr1.cc:856
2473 { (yystack_[1].value.enumValueDefinitionList)->emplace_back((yystack_[0].value.enumValueDefinition)); (yylhs.value.enumValueDefinitionList) = (yystack_[1].value.enumValueDefinitionList); }
2474 #line 2475 "parser.tab.cpp" // lalr1.cc:856
2475 break;
2476
2477 case 174:
2478 #line 665 "parser.ypp" // lalr1.cc:856
2479 { (yylhs.value.inputObjectTypeDefinition) = new InputObjectTypeDefinition(yylhs.location, (yystack_[4].value.name), (yystack_[3].value.directiveList), (yystack_[1].value.inputValueDefinitionList)); }
2480 #line 2481 "parser.tab.cpp" // lalr1.cc:856
2481 break;
2482
2483 case 175:
2484 #line 668 "parser.ypp" // lalr1.cc:856
2485 { (yylhs.value.typeExtensionDefinition) = new TypeExtensionDefinition(yylhs.location, (yystack_[0].value.objectTypeDefinition)); }
2486 #line 2487 "parser.tab.cpp" // lalr1.cc:856
2487 break;
2488
2489 case 176:
2490 #line 671 "parser.ypp" // lalr1.cc:856
2491 { (yylhs.value.directiveDefinition) = new DirectiveDefinition(yylhs.location, (yystack_[3].value.name), (yystack_[2].value.inputValueDefinitionList), (yystack_[0].value.nameList)); }
2492 #line 2493 "parser.tab.cpp" // lalr1.cc:856
2493 break;
2494
2495 case 177:
2496 #line 675 "parser.ypp" // lalr1.cc:856
2497 { (yylhs.value.nameList) = new std::vector<std::unique_ptr<Name>>(); (yylhs.value.nameList)->emplace_back((yystack_[0].value.name)); }
2498 #line 2499 "parser.tab.cpp" // lalr1.cc:856
2499 break;
2500
2501 case 178:
2502 #line 676 "parser.ypp" // lalr1.cc:856
2503 { (yystack_[2].value.nameList)->emplace_back((yystack_[0].value.name)); (yylhs.value.nameList) = (yystack_[2].value.nameList); }
2504 #line 2505 "parser.tab.cpp" // lalr1.cc:856
2505 break;
2506
2507
2508 #line 2509 "parser.tab.cpp" // lalr1.cc:856
2509 default:
2510 break;
2511 }
2512 }
2513 catch (const syntax_error& yyexc)
2514 {
2515 error (yyexc);
2516 YYERROR;
2517 }
2518 YY_SYMBOL_PRINT ("-> $$ =", yylhs);
2519 yypop_ (yylen);
2520 yylen = 0;
2521 YY_STACK_PRINT ();
2522
2523 // Shift the result of the reduction.
2524 yypush_ (YY_NULLPTR, yylhs);
2525 }
2526 goto yynewstate;
2527
2528 /*--------------------------------------.
2529 | yyerrlab -- here on detecting error. |
2530 `--------------------------------------*/
2531 yyerrlab:
2532 // If not already recovering from an error, report this error.
2533 if (!yyerrstatus_)
2534 {
2535 ++yynerrs_;
2536 error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla));
2537 }
2538
2539
2540 yyerror_range[1].location = yyla.location;
2541 if (yyerrstatus_ == 3)
2542 {
2543 /* If just tried and failed to reuse lookahead token after an
2544 error, discard it. */
2545
2546 // Return failure if at end of input.
2547 if (yyla.type_get () == yyeof_)
2548 YYABORT;
2549 else if (!yyla.empty ())
2550 {
2551 yy_destroy_ ("Error: discarding", yyla);
2552 yyla.clear ();
2553 }
2554 }
2555
2556 // Else will try to reuse lookahead token after shifting the error token.
2557 goto yyerrlab1;
2558
2559
2560 /*---------------------------------------------------.
2561 | yyerrorlab -- error raised explicitly by YYERROR. |
2562 `---------------------------------------------------*/
2563 yyerrorlab:
2564
2565 /* Pacify compilers like GCC when the user code never invokes
2566 YYERROR and the label yyerrorlab therefore never appears in user
2567 code. */
2568 if (false)
2569 goto yyerrorlab;
2570 /* Do not reclaim the symbols of the rule whose action triggered
2571 this YYERROR. */
2572 yypop_ (yylen);
2573 yylen = 0;
2574 goto yyerrlab1;
2575
2576 /*-------------------------------------------------------------.
2577 | yyerrlab1 -- common code for both syntax error and YYERROR. |
2578 `-------------------------------------------------------------*/
2579 yyerrlab1:
2580 yyerrstatus_ = 3; // Each real token shifted decrements this.
2581 {
2582 stack_symbol_type error_token;
2583 for (;;)
2584 {
2585 yyn = yypact_[yystack_[0].state];
2586 if (!yy_pact_value_is_default_ (yyn))
2587 {
2588 yyn += yyterror_;
2589 if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
2590 {
2591 yyn = yytable_[yyn];
2592 if (0 < yyn)
2593 break;
2594 }
2595 }
2596
2597 // Pop the current state because it cannot handle the error token.
2598 if (yystack_.size () == 1)
2599 YYABORT;
2600
2601 yyerror_range[1].location = yystack_[0].location;
2602 yy_destroy_ ("Error: popping", yystack_[0]);
2603 yypop_ ();
2604 YY_STACK_PRINT ();
2605 }
2606
2607 yyerror_range[2].location = yyla.location;
2608 YYLLOC_DEFAULT (error_token.location, yyerror_range, 2);
2609
2610 // Shift the error token.
2611 error_token.state = yyn;
2612 yypush_ ("Shifting", error_token);
2613 }
2614 goto yynewstate;
2615
2616 // Accept.
2617 yyacceptlab:
2618 yyresult = 0;
2619 goto yyreturn;
2620
2621 // Abort.
2622 yyabortlab:
2623 yyresult = 1;
2624 goto yyreturn;
2625
2626 yyreturn:
2627 if (!yyla.empty ())
2628 yy_destroy_ ("Cleanup: discarding lookahead", yyla);
2629
2630 /* Do not reclaim the symbols of the rule whose action triggered
2631 this YYABORT or YYACCEPT. */
2632 yypop_ (yylen);
2633 while (1 < yystack_.size ())
2634 {
2635 yy_destroy_ ("Cleanup: popping", yystack_[0]);
2636 yypop_ ();
2637 }
2638
2639 return yyresult;
2640 }
2641 catch (...)
2642 {
2643 YYCDEBUG << "Exception caught: cleaning lookahead and stack\n";
2644 // Do not try to display the values of the reclaimed symbols,
2645 // as their printer might throw an exception.
2646 if (!yyla.empty ())
2647 yy_destroy_ (YY_NULLPTR, yyla);
2648
2649 while (1 < yystack_.size ())
2650 {
2651 yy_destroy_ (YY_NULLPTR, yystack_[0]);
2652 yypop_ ();
2653 }
2654 throw;
2655 }
2656 }
2657
2658 void
error(const syntax_error & yyexc)2659 GraphQLParserImpl::error (const syntax_error& yyexc)
2660 {
2661 error (yyexc.location, yyexc.what ());
2662 }
2663
2664 // Generate an error message.
2665 std::string
yysyntax_error_(state_type yystate,const symbol_type & yyla) const2666 GraphQLParserImpl::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const
2667 {
2668 // Number of reported tokens (one for the "unexpected", one per
2669 // "expected").
2670 size_t yycount = 0;
2671 // Its maximum.
2672 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2673 // Arguments of yyformat.
2674 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2675
2676 /* There are many possibilities here to consider:
2677 - If this state is a consistent state with a default action, then
2678 the only way this function was invoked is if the default action
2679 is an error action. In that case, don't check for expected
2680 tokens because there are none.
2681 - The only way there can be no lookahead present (in yyla) is
2682 if this state is a consistent state with a default action.
2683 Thus, detecting the absence of a lookahead is sufficient to
2684 determine that there is no unexpected or expected token to
2685 report. In that case, just report a simple "syntax error".
2686 - Don't assume there isn't a lookahead just because this state is
2687 a consistent state with a default action. There might have
2688 been a previous inconsistent state, consistent state with a
2689 non-default action, or user semantic action that manipulated
2690 yyla. (However, yyla is currently not documented for users.)
2691 - Of course, the expected token list depends on states to have
2692 correct lookahead information, and it depends on the parser not
2693 to perform extra reductions after fetching a lookahead from the
2694 scanner and before detecting a syntax error. Thus, state
2695 merging (from LALR or IELR) and default reductions corrupt the
2696 expected token list. However, the list is correct for
2697 canonical LR with one exception: it will still contain any
2698 token that will not be accepted due to an error action in a
2699 later state.
2700 */
2701 if (!yyla.empty ())
2702 {
2703 int yytoken = yyla.type_get ();
2704 yyarg[yycount++] = yytname_[yytoken];
2705 int yyn = yypact_[yystate];
2706 if (!yy_pact_value_is_default_ (yyn))
2707 {
2708 /* Start YYX at -YYN if negative to avoid negative indexes in
2709 YYCHECK. In other words, skip the first -YYN actions for
2710 this state because they are default actions. */
2711 int yyxbegin = yyn < 0 ? -yyn : 0;
2712 // Stay within bounds of both yycheck and yytname.
2713 int yychecklim = yylast_ - yyn + 1;
2714 int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
2715 for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
2716 if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
2717 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
2718 {
2719 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2720 {
2721 yycount = 1;
2722 break;
2723 }
2724 else
2725 yyarg[yycount++] = yytname_[yyx];
2726 }
2727 }
2728 }
2729
2730 char const* yyformat = YY_NULLPTR;
2731 switch (yycount)
2732 {
2733 #define YYCASE_(N, S) \
2734 case N: \
2735 yyformat = S; \
2736 break
2737 default: // Avoid compiler warnings.
2738 YYCASE_ (0, YY_("syntax error"));
2739 YYCASE_ (1, YY_("syntax error, unexpected %s"));
2740 YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s"));
2741 YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2742 YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2743 YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2744 #undef YYCASE_
2745 }
2746
2747 std::string yyres;
2748 // Argument number.
2749 size_t yyi = 0;
2750 for (char const* yyp = yyformat; *yyp; ++yyp)
2751 if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
2752 {
2753 yyres += yytnamerr_ (yyarg[yyi++]);
2754 ++yyp;
2755 }
2756 else
2757 yyres += *yyp;
2758 return yyres;
2759 }
2760
2761
2762 const short int GraphQLParserImpl::yypact_ninf_ = -228;
2763
2764 const signed char GraphQLParserImpl::yytable_ninf_ = -1;
2765
2766 const short int
2767 GraphQLParserImpl::yypact_[] =
2768 {
2769 198, -11, 895, 6, 918, 895, 895, -228, -228, 895,
2770 13, -228, 895, 895, 440, 50, -228, 198, -228, -228,
2771 -228, 895, -228, -228, -228, -228, -228, -228, -228, -228,
2772 -228, -228, -228, 895, -228, -228, -228, -228, -228, -228,
2773 -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
2774 -228, -228, -228, -228, 13, -228, 58, 13, 13, 13,
2775 895, -228, 44, 13, -228, 79, 13, 475, 74, 405,
2776 -228, -228, -228, -228, -228, -228, -228, 76, 54, 52,
2777 895, 65, 67, -228, 94, 100, -228, 895, 13, 84,
2778 895, 13, 89, 895, 895, -228, 13, -228, -228, 87,
2779 88, -228, 89, 895, 109, -228, 895, -228, 13, -228,
2780 895, 895, -228, 99, 68, -228, -228, 895, 95, 895,
2781 13, -228, -228, 101, 510, -228, 94, 89, -228, -9,
2782 103, -228, -228, 89, -228, 104, 545, -228, 895, 13,
2783 -228, 580, 89, 615, 54, -228, 650, 895, -228, -228,
2784 -228, 895, -228, 102, 89, 265, -228, -228, 13, -228,
2785 -228, -228, -228, 685, -228, 685, -228, -228, -228, 106,
2786 -228, -228, -228, -228, -228, 105, -228, -228, -228, 720,
2787 895, -228, -228, -228, -228, -228, -228, -228, -228, -228,
2788 -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
2789 150, 755, -228, -228, -228, -228, -228, -228, -228, -228,
2790 -228, -228, -228, -228, -228, -228, 89, 685, 112, 110,
2791 111, -228, 112, 895, 685, -228, -228, -228, -228, 228,
2792 -228, 115, 790, -228, -228, 113, 370, -228, -228, -228,
2793 -228, 13, -228, 13, -228, -228, 265, -228, -228, -228,
2794 300, 825, -228, -228, -228, -228, -228, -228, -228, -228,
2795 -228, -228, -228, -228, -228, -228, 335, -228, 118, 860,
2796 -228, -228, -228, 370, -228, -228, -228
2797 };
2798
2799 const unsigned char
2800 GraphQLParserImpl::yydefact_[] =
2801 {
2802 0, 0, 0, 0, 0, 0, 0, 46, 45, 0,
2803 135, 47, 0, 0, 0, 0, 2, 25, 26, 30,
2804 28, 23, 40, 29, 31, 32, 33, 34, 35, 36,
2805 37, 38, 39, 0, 3, 4, 5, 6, 7, 9,
2806 10, 11, 12, 13, 14, 22, 15, 16, 17, 18,
2807 19, 20, 8, 21, 135, 175, 0, 135, 135, 135,
2808 0, 136, 0, 134, 137, 153, 135, 135, 67, 0,
2809 59, 61, 62, 63, 1, 27, 24, 0, 160, 0,
2810 0, 0, 0, 151, 67, 0, 138, 0, 135, 0,
2811 0, 135, 0, 0, 0, 68, 135, 56, 60, 0,
2812 0, 41, 0, 0, 0, 161, 0, 143, 135, 76,
2813 0, 0, 139, 0, 0, 148, 155, 154, 0, 0,
2814 135, 72, 74, 0, 0, 69, 67, 57, 51, 0,
2815 0, 49, 42, 0, 43, 0, 0, 163, 0, 135,
2816 172, 0, 0, 0, 160, 158, 0, 0, 147, 149,
2817 156, 0, 168, 167, 0, 0, 66, 70, 135, 58,
2818 64, 48, 50, 0, 44, 0, 162, 164, 177, 176,
2819 171, 170, 173, 75, 174, 0, 166, 159, 150, 0,
2820 0, 73, 100, 101, 102, 98, 103, 105, 106, 107,
2821 108, 99, 110, 109, 111, 112, 113, 97, 114, 115,
2822 0, 0, 86, 87, 88, 104, 77, 71, 78, 79,
2823 80, 81, 82, 83, 84, 85, 57, 0, 53, 140,
2824 141, 142, 53, 0, 0, 152, 169, 116, 118, 0,
2825 124, 0, 0, 126, 65, 0, 0, 52, 54, 145,
2826 146, 135, 178, 135, 117, 119, 0, 125, 127, 144,
2827 0, 0, 89, 90, 91, 55, 92, 93, 94, 95,
2828 96, 165, 157, 128, 120, 122, 0, 129, 0, 0,
2829 131, 121, 123, 0, 130, 132, 133
2830 };
2831
2832 const short int
2833 GraphQLParserImpl::yypgoto_[] =
2834 {
2835 -228, -228, 1, -2, -228, -228, -228, 128, -228, -228,
2836 -52, -228, -228, -84, 17, -87, -228, -64, -69, -228,
2837 81, -228, -228, -82, -228, 24, -228, -228, -228, 61,
2838 -194, -227, -218, -193, -224, -189, -180, -161, -228, -228,
2839 -228, -228, -228, -228, -61, -228, -228, -97, -12, -37,
2840 -228, 119, -164, -53, -228, -228, -228, -228, 59, -228,
2841 171, -228, -228, -138, 25, 31, -228, 71, -29, -228,
2842 -228, -228, -228, 47, -228, -228, -228, -228, -228
2843 };
2844
2845 const short int
2846 GraphQLParserImpl::yydefgoto_[] =
2847 {
2848 -1, 15, 53, 107, 77, 16, 17, 18, 19, 20,
2849 21, 100, 129, 206, 131, 237, 238, 22, 160, 69,
2850 70, 71, 95, 96, 124, 125, 72, 73, 23, 108,
2851 207, 208, 209, 210, 255, 211, 212, 213, 214, 229,
2852 259, 266, 215, 232, 233, 260, 269, 270, 61, 62,
2853 63, 64, 218, 219, 220, 221, 24, 114, 115, 25,
2854 26, 88, 117, 145, 146, 104, 105, 136, 137, 27,
2855 28, 153, 29, 140, 141, 30, 31, 32, 169
2856 };
2857
2858 const unsigned short int
2859 GraphQLParserImpl::yytable_[] =
2860 {
2861 54, 222, 112, 57, 58, 56, 228, 59, 177, 252,
2862 65, 66, 68, 101, 161, 130, 33, 79, 253, 76,
2863 81, 82, 83, 252, 128, 12, 265, 109, 122, 89,
2864 92, 78, 253, 113, 116, 245, 132, 109, 134, 252,
2865 60, 177, 272, 254, 158, 130, 252, 256, 253, 276,
2866 74, 118, 263, 235, 121, 253, 257, 254, 84, 127,
2867 243, 256, 113, 159, 150, 102, 152, 68, 91, 164,
2868 257, 142, 80, 254, 85, 258, 103, 256, 173, 7,
2869 254, 8, 106, 154, 256, 11, 257, 87, 133, 258,
2870 181, 123, 126, 257, 178, 110, 93, 111, 99, 94,
2871 148, 135, 170, 60, 139, 258, 14, 167, 135, 144,
2872 119, 7, 258, 8, 167, 60, 93, 11, 14, 14,
2873 128, 216, 123, 138, 147, 151, 155, 226, 163, 165,
2874 224, 239, 240, 180, 135, 241, 168, 223, 236, 139,
2875 246, 135, 249, 273, 144, 75, 162, 234, 157, 144,
2876 98, 120, 159, 182, 183, 184, 185, 186, 187, 188,
2877 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2878 199, 248, 275, 149, 55, 175, 179, 144, 200, 227,
2879 201, 143, 86, 128, 202, 203, 204, 205, 172, 0,
2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 231,
2881 0, 1, 2, 3, 261, 4, 262, 5, 6, 7,
2882 0, 8, 0, 9, 10, 11, 0, 12, 13, 0,
2883 0, 242, 0, 0, 0, 0, 0, 0, 14, 0,
2884 231, 182, 183, 184, 185, 186, 187, 188, 189, 190,
2885 191, 192, 193, 194, 195, 196, 197, 198, 199, 268,
2886 0, 0, 0, 0, 0, 0, 200, 244, 201, 0,
2887 0, 128, 202, 203, 204, 205, 0, 268, 182, 183,
2888 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2889 194, 195, 196, 197, 198, 199, 0, 0, 0, 0,
2890 0, 0, 0, 200, 0, 201, 0, 0, 128, 202,
2891 203, 204, 205, 182, 183, 184, 185, 186, 187, 188,
2892 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2893 199, 0, 0, 0, 0, 0, 0, 0, 250, 264,
2894 251, 0, 0, 0, 202, 203, 204, 205, 182, 183,
2895 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
2896 194, 195, 196, 197, 198, 199, 0, 0, 0, 0,
2897 0, 0, 0, 250, 271, 251, 0, 0, 0, 202,
2898 203, 204, 205, 182, 183, 184, 185, 186, 187, 188,
2899 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
2900 199, 0, 0, 0, 0, 0, 0, 0, 250, 0,
2901 251, 0, 0, 0, 202, 203, 204, 205, 34, 35,
2902 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2903 46, 47, 48, 49, 50, 51, 0, 0, 0, 67,
2904 0, 0, 0, 0, 0, 0, 0, 97, 0, 0,
2905 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2906 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2907 51, 0, 0, 0, 67, 0, 0, 0, 0, 0,
2908 0, 0, 0, 0, 0, 0, 0, 52, 34, 35,
2909 36, 37, 38, 39, 40, 41, 42, 43, 44, 90,
2910 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
2911 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
2912 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2913 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2914 51, 0, 0, 156, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 52, 34, 35,
2916 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2917 46, 47, 48, 49, 50, 51, 0, 0, 166, 0,
2918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2920 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2921 51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922 0, 0, 171, 0, 0, 0, 0, 52, 34, 35,
2923 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2924 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
2925 0, 0, 0, 0, 0, 0, 0, 174, 0, 0,
2926 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2927 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2928 51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 176, 0, 0, 0, 0, 52, 34, 35,
2930 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2931 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
2932 0, 0, 0, 217, 0, 0, 0, 0, 0, 0,
2933 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2934 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2935 51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 0, 0, 225, 0, 0, 0, 0, 52, 34, 35,
2937 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2938 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 230, 0, 0,
2940 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2941 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2942 51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 247, 0, 0, 0, 0, 52, 34, 35,
2944 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2945 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
2946 0, 0, 0, 0, 0, 0, 0, 267, 0, 0,
2947 0, 0, 52, 34, 35, 36, 37, 38, 39, 40,
2948 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2949 51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 274, 0, 0, 0, 0, 52, 34, 35,
2951 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2952 46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
2953 0, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2954 43, 44, 52, 46, 47, 48, 49, 50, 51, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956 0, 0, 0, 0, 0, 52
2957 };
2958
2959 const short int
2960 GraphQLParserImpl::yycheck_[] =
2961 {
2962 2, 165, 84, 5, 6, 4, 200, 9, 146, 236,
2963 12, 13, 14, 77, 23, 99, 27, 54, 236, 21,
2964 57, 58, 59, 250, 33, 19, 250, 80, 92, 66,
2965 67, 33, 250, 85, 87, 229, 100, 90, 102, 266,
2966 27, 179, 266, 236, 126, 129, 273, 236, 266, 273,
2967 0, 88, 246, 217, 91, 273, 236, 250, 60, 96,
2968 224, 250, 114, 127, 117, 77, 119, 69, 67, 133,
2969 250, 108, 14, 266, 30, 236, 22, 266, 142, 11,
2970 273, 13, 30, 120, 273, 17, 266, 8, 100, 250,
2971 154, 93, 94, 273, 147, 30, 22, 30, 22, 25,
2972 32, 103, 139, 27, 106, 266, 30, 136, 110, 111,
2973 26, 11, 273, 13, 143, 27, 22, 17, 30, 30,
2974 33, 158, 124, 14, 25, 30, 25, 180, 25, 25,
2975 25, 21, 21, 31, 136, 222, 138, 31, 26, 141,
2976 25, 143, 29, 25, 146, 17, 129, 216, 124, 151,
2977 69, 90, 216, 3, 4, 5, 6, 7, 8, 9,
2978 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2979 20, 232, 269, 114, 3, 144, 151, 179, 28, 29,
2980 30, 110, 63, 33, 34, 35, 36, 37, 141, -1,
2981 -1, -1, -1, -1, -1, -1, -1, -1, -1, 201,
2982 -1, 3, 4, 5, 241, 7, 243, 9, 10, 11,
2983 -1, 13, -1, 15, 16, 17, -1, 19, 20, -1,
2984 -1, 223, -1, -1, -1, -1, -1, -1, 30, -1,
2985 232, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2986 12, 13, 14, 15, 16, 17, 18, 19, 20, 251,
2987 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
2988 -1, 33, 34, 35, 36, 37, -1, 269, 3, 4,
2989 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2990 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
2991 -1, -1, -1, 28, -1, 30, -1, -1, 33, 34,
2992 35, 36, 37, 3, 4, 5, 6, 7, 8, 9,
2993 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2994 20, -1, -1, -1, -1, -1, -1, -1, 28, 29,
2995 30, -1, -1, -1, 34, 35, 36, 37, 3, 4,
2996 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2997 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
2998 -1, -1, -1, 28, 29, 30, -1, -1, -1, 34,
2999 35, 36, 37, 3, 4, 5, 6, 7, 8, 9,
3000 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3001 20, -1, -1, -1, -1, -1, -1, -1, 28, -1,
3002 30, -1, -1, -1, 34, 35, 36, 37, 3, 4,
3003 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3004 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
3005 -1, -1, -1, -1, -1, -1, -1, 32, -1, -1,
3006 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3007 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3008 20, -1, -1, -1, 24, -1, -1, -1, -1, -1,
3009 -1, -1, -1, -1, -1, -1, -1, 37, 3, 4,
3010 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3011 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
3012 -1, -1, 27, -1, -1, -1, -1, -1, -1, -1,
3013 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3014 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3015 20, -1, -1, 23, -1, -1, -1, -1, -1, -1,
3016 -1, -1, -1, -1, -1, -1, -1, 37, 3, 4,
3017 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3018 15, 16, 17, 18, 19, 20, -1, -1, 23, -1,
3019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3020 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3021 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3022 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3023 -1, -1, 32, -1, -1, -1, -1, 37, 3, 4,
3024 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3025 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
3026 -1, -1, -1, -1, -1, -1, -1, 32, -1, -1,
3027 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3028 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3029 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3030 -1, -1, 32, -1, -1, -1, -1, 37, 3, 4,
3031 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3032 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
3033 -1, -1, -1, 28, -1, -1, -1, -1, -1, -1,
3034 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3035 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3036 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3037 -1, -1, 32, -1, -1, -1, -1, 37, 3, 4,
3038 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3039 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
3040 -1, -1, -1, -1, -1, -1, -1, 32, -1, -1,
3041 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3042 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3043 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3044 -1, -1, 32, -1, -1, -1, -1, 37, 3, 4,
3045 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3046 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
3047 -1, -1, -1, -1, -1, -1, -1, 32, -1, -1,
3048 -1, -1, 37, 3, 4, 5, 6, 7, 8, 9,
3049 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
3050 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3051 -1, -1, 32, -1, -1, -1, -1, 37, 3, 4,
3052 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3053 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
3054 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3055 12, 13, 37, 15, 16, 17, 18, 19, 20, -1,
3056 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3057 -1, -1, -1, -1, -1, 37
3058 };
3059
3060 const unsigned char
3061 GraphQLParserImpl::yystos_[] =
3062 {
3063 0, 3, 4, 5, 7, 9, 10, 11, 13, 15,
3064 16, 17, 19, 20, 30, 39, 43, 44, 45, 46,
3065 47, 48, 55, 66, 94, 97, 98, 107, 108, 110,
3066 113, 114, 115, 27, 3, 4, 5, 6, 7, 8,
3067 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3068 19, 20, 37, 40, 41, 98, 40, 41, 41, 41,
3069 27, 86, 87, 88, 89, 41, 41, 24, 41, 57,
3070 58, 59, 64, 65, 0, 45, 41, 42, 41, 87,
3071 14, 87, 87, 87, 41, 30, 89, 8, 99, 87,
3072 14, 40, 87, 22, 25, 60, 61, 32, 58, 22,
3073 49, 55, 86, 22, 103, 104, 30, 41, 67, 91,
3074 30, 30, 61, 48, 95, 96, 91, 100, 87, 26,
3075 67, 87, 55, 41, 62, 63, 41, 87, 33, 50,
3076 51, 52, 55, 86, 55, 41, 105, 106, 14, 41,
3077 111, 112, 87, 105, 41, 101, 102, 25, 32, 96,
3078 91, 30, 91, 109, 87, 25, 23, 63, 61, 55,
3079 56, 23, 52, 25, 55, 25, 23, 106, 41, 116,
3080 87, 32, 111, 55, 32, 103, 32, 101, 91, 102,
3081 31, 55, 3, 4, 5, 6, 7, 8, 9, 10,
3082 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
3083 28, 30, 34, 35, 36, 37, 51, 68, 69, 70,
3084 71, 73, 74, 75, 76, 80, 87, 28, 90, 91,
3085 92, 93, 90, 31, 25, 32, 91, 29, 68, 77,
3086 32, 41, 81, 82, 56, 90, 26, 53, 54, 21,
3087 21, 53, 41, 90, 29, 68, 25, 32, 82, 29,
3088 28, 30, 69, 70, 71, 72, 73, 74, 75, 78,
3089 83, 87, 87, 68, 29, 72, 79, 32, 41, 84,
3090 85, 29, 72, 25, 32, 85, 72
3091 };
3092
3093 const unsigned char
3094 GraphQLParserImpl::yyr1_[] =
3095 {
3096 0, 38, 39, 40, 40, 40, 40, 40, 40, 40,
3097 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
3098 40, 41, 41, 42, 42, 43, 44, 44, 45, 45,
3099 45, 46, 46, 46, 46, 46, 46, 46, 46, 46,
3100 47, 47, 47, 47, 47, 48, 48, 48, 49, 50,
3101 50, 51, 52, 53, 53, 54, 55, 56, 56, 57,
3102 57, 58, 58, 58, 59, 59, 60, 61, 61, 62,
3103 62, 63, 64, 65, 65, 66, 67, 68, 68, 68,
3104 68, 68, 68, 68, 68, 68, 69, 70, 71, 72,
3105 72, 72, 72, 72, 72, 72, 72, 73, 73, 74,
3106 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
3107 75, 75, 75, 75, 75, 75, 76, 76, 77, 77,
3108 78, 78, 79, 79, 80, 80, 81, 81, 82, 83,
3109 83, 84, 84, 85, 86, 87, 87, 88, 88, 89,
3110 90, 90, 90, 91, 92, 93, 93, 94, 95, 95,
3111 96, 97, 98, 99, 99, 100, 100, 101, 102, 102,
3112 103, 103, 104, 105, 105, 106, 107, 108, 109, 109,
3113 110, 111, 112, 112, 113, 114, 115, 116, 116
3114 };
3115
3116 const unsigned char
3117 GraphQLParserImpl::yyr2_[] =
3118 {
3119 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
3120 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3121 1, 1, 1, 0, 1, 1, 1, 2, 1, 1,
3122 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3123 1, 3, 4, 4, 5, 1, 1, 1, 3, 1,
3124 2, 1, 4, 0, 1, 2, 3, 0, 1, 1,
3125 2, 1, 1, 1, 4, 6, 3, 0, 1, 1,
3126 2, 3, 3, 5, 3, 6, 1, 1, 1, 1,
3127 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3128 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3129 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3130 1, 1, 1, 1, 1, 1, 2, 3, 1, 2,
3131 2, 3, 1, 2, 2, 3, 1, 2, 3, 2,
3132 3, 1, 2, 3, 1, 0, 1, 1, 2, 3,
3133 1, 1, 1, 1, 3, 2, 2, 5, 1, 2,
3134 3, 3, 7, 0, 2, 1, 2, 5, 1, 2,
3135 0, 1, 3, 1, 2, 5, 6, 5, 1, 3,
3136 6, 2, 1, 2, 6, 2, 6, 1, 3
3137 };
3138
3139
3140
3141 // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
3142 // First, the terminals, then, starting at \a yyntokens_, nonterminals.
3143 const char*
3144 const GraphQLParserImpl::yytname_[] =
3145 {
3146 "EOF", "error", "$undefined", "\"directive\"", "\"enum\"", "\"extend\"",
3147 "\"false\"", "\"fragment\"", "\"implements\"", "\"input\"",
3148 "\"interface\"", "\"mutation\"", "\"null\"", "\"query\"", "\"on\"",
3149 "\"scalar\"", "\"schema\"", "\"subscription\"", "\"true\"", "\"type\"",
3150 "\"union\"", "\"!\"", "\"(\"", "\")\"", "\"...\"", "\":\"", "\"=\"",
3151 "\"@\"", "\"[\"", "\"]\"", "\"{\"", "\"|\"", "\"}\"", "VARIABLE",
3152 "INTEGER", "FLOAT", "STRING", "IDENTIFIER", "$accept", "start",
3153 "fragment_name", "name", "name_opt", "document", "definition_list",
3154 "definition", "schema_gate", "operation_definition", "operation_type",
3155 "variable_definitions", "variable_definition_list", "variable",
3156 "variable_definition", "default_value_opt", "default_value",
3157 "selection_set", "selection_set_opt", "selection_list", "selection",
3158 "field", "arguments", "arguments_opt", "argument_list", "argument",
3159 "fragment_spread", "inline_fragment", "fragment_definition",
3160 "type_condition", "value", "int_value", "float_value", "string_value",
3161 "value_const", "boolean_value", "null_value", "enum_value", "list_value",
3162 "value_list", "list_value_const", "value_const_list", "object_value",
3163 "object_field_list", "object_field", "object_value_const",
3164 "object_field_const_list", "object_field_const", "directives",
3165 "directives_opt", "directive_list", "directive", "type", "type_name",
3166 "list_type", "non_null_type", "schema_definition",
3167 "operation_type_definition_list", "operation_type_definition",
3168 "scalar_type_definition", "object_type_definition",
3169 "implements_interfaces_opt", "type_name_list", "field_definition",
3170 "field_definition_list", "arguments_definition_opt",
3171 "arguments_definition", "input_value_definition_list",
3172 "input_value_definition", "interface_type_definition",
3173 "union_type_definition", "union_members", "enum_type_definition",
3174 "enum_value_definition", "enum_value_definition_list",
3175 "input_object_type_definition", "type_extension_definition",
3176 "directive_definition", "directive_locations", YY_NULLPTR
3177 };
3178
3179 #if YYDEBUG
3180 const unsigned short int
3181 GraphQLParserImpl::yyrline_[] =
3182 {
3183 0, 298, 298, 303, 304, 305, 306, 307, 308, 309,
3184 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
3185 320, 323, 324, 328, 329, 334, 337, 338, 341, 342,
3186 343, 355, 356, 357, 358, 359, 360, 361, 362, 363,
3187 369, 370, 371, 372, 373, 376, 377, 378, 382, 386,
3188 387, 390, 394, 398, 399, 402, 406, 410, 411, 413,
3189 414, 417, 418, 419, 422, 423, 426, 429, 430, 433,
3190 434, 437, 442, 446, 447, 451, 454, 458, 459, 460,
3191 461, 462, 463, 464, 465, 466, 469, 472, 475, 478,
3192 479, 480, 481, 482, 483, 484, 485, 488, 489, 492,
3193 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
3194 505, 506, 507, 508, 509, 510, 517, 518, 521, 522,
3195 526, 527, 531, 532, 537, 538, 542, 543, 546, 550,
3196 551, 555, 556, 559, 564, 567, 568, 571, 572, 575,
3197 580, 581, 582, 585, 588, 591, 592, 597, 601, 602,
3198 606, 609, 612, 615, 616, 619, 620, 623, 627, 628,
3199 631, 632, 635, 638, 639, 642, 644, 647, 650, 651,
3200 654, 657, 661, 662, 665, 668, 671, 675, 676
3201 };
3202
3203 // Print the state stack on the debug stream.
3204 void
yystack_print_()3205 GraphQLParserImpl::yystack_print_ ()
3206 {
3207 *yycdebug_ << "Stack now";
3208 for (stack_type::const_iterator
3209 i = yystack_.begin (),
3210 i_end = yystack_.end ();
3211 i != i_end; ++i)
3212 *yycdebug_ << ' ' << i->state;
3213 *yycdebug_ << '\n';
3214 }
3215
3216 // Report on the debug stream that the rule \a yyrule is going to be reduced.
3217 void
yy_reduce_print_(int yyrule)3218 GraphQLParserImpl::yy_reduce_print_ (int yyrule)
3219 {
3220 unsigned yylno = yyrline_[yyrule];
3221 int yynrhs = yyr2_[yyrule];
3222 // Print the symbols being reduced, and their result.
3223 *yycdebug_ << "Reducing stack by rule " << yyrule - 1
3224 << " (line " << yylno << "):\n";
3225 // The symbols being reduced.
3226 for (int yyi = 0; yyi < yynrhs; yyi++)
3227 YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
3228 yystack_[(yynrhs) - (yyi + 1)]);
3229 }
3230 #endif // YYDEBUG
3231
3232 // Symbol number corresponding to token number t.
3233 GraphQLParserImpl::token_number_type
yytranslate_(int t)3234 GraphQLParserImpl::yytranslate_ (int t)
3235 {
3236 static
3237 const token_number_type
3238 translate_table[] =
3239 {
3240 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3241 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3243 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3244 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3245 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3247 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3249 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3251 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3252 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3253 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3254 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3256 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3257 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3258 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3259 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3260 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3261 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3262 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3263 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3264 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3265 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
3266 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3267 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3268 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
3269 35, 36, 37
3270 };
3271 const unsigned user_token_number_max_ = 292;
3272 const token_number_type undef_token_ = 2;
3273
3274 if (static_cast<int> (t) <= yyeof_)
3275 return yyeof_;
3276 else if (static_cast<unsigned> (t) <= user_token_number_max_)
3277 return translate_table[t];
3278 else
3279 return undef_token_;
3280 }
3281
3282
3283 } // yy
3284 #line 3285 "parser.tab.cpp" // lalr1.cc:1163
3285 #line 679 "parser.ypp" // lalr1.cc:1164
3286
3287
error(const yy::location & loc,const std::string & str)3288 void yy::GraphQLParserImpl::error(const yy::location &loc, const std::string &str) {
3289 std::ostringstream out;
3290 out << loc << ": " << str;
3291 if (outError) {
3292 *outError = strdup(out.str().c_str());
3293 }
3294 }
3295
3296 /* Workaround for syntax_error ctor being marked inline, which causes link
3297 errors if used from lexer.lpp. */
make_error(const yy::location & loc,const std::string & str)3298 yy::GraphQLParserImpl::syntax_error make_error(const yy::location &loc, const std::string &str) {
3299 return yy::GraphQLParserImpl::syntax_error(loc, str);
3300 }
3301