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