~ubuntu-branches/ubuntu/saucy/gengetopt/saucy-proposed

« back to all changes in this revision

Viewing changes to src/parser.cc

  • Committer: Package Import Robot
  • Author(s): Alessio Treglia
  • Date: 2013-05-09 12:48:17 UTC
  • mfrom: (16.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130509124817-ex5jkvyh7cu8o22c
Tags: 2.22.6-2
* Upload to unstable.
* Fix VCS URLs.
* Bump Standards.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
/* A Bison parser, made by GNU Bison 2.4.1.  */
3
 
 
4
 
/* Skeleton implementation for Bison's Yacc-like parsers in C
 
1
/* A Bison parser, made by GNU Bison 2.5.  */
 
2
 
 
3
/* Bison implementation for Yacc-like parsers in C
5
4
   
6
 
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7
 
   Free Software Foundation, Inc.
 
5
      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
8
6
   
9
7
   This program is free software: you can redistribute it and/or modify
10
8
   it under the terms of the GNU General Public License as published by
46
44
#define YYBISON 1
47
45
 
48
46
/* Bison version.  */
49
 
#define YYBISON_VERSION "2.4.1"
 
47
#define YYBISON_VERSION "2.5"
50
48
 
51
49
/* Skeleton name.  */
52
50
#define YYSKELETON_NAME "yacc.c"
67
65
 
68
66
/* Copy the first part of user declarations.  */
69
67
 
70
 
/* Line 189 of yacc.c  */
71
 
#line 22 "../../src/parser.yy"
 
68
/* Line 268 of yacc.c  */
 
69
#line 22 "./parser.yy"
72
70
 
73
71
 
74
72
#ifdef HAVE_CONFIG_H
96
94
static int gengetopt_package_given = 0;
97
95
static int gengetopt_version_given = 0;
98
96
static int gengetopt_purpose_given = 0;
 
97
static int gengetopt_versiontext_given = 0;
99
98
static int gengetopt_usage_given = 0;
100
99
static int gengetopt_description_given = 0;
101
100
 
196
195
 
197
196
 
198
197
 
199
 
/* Line 189 of yacc.c  */
200
 
#line 201 "../../src/parser.cc"
 
198
/* Line 268 of yacc.c  */
 
199
#line 200 "./parser.cc"
201
200
 
202
201
/* Enabling traces.  */
203
202
#ifndef YYDEBUG
251
250
     TOK_DETAILS = 282,
252
251
     TOK_SECTIONDESC = 283,
253
252
     TOK_TEXT = 284,
254
 
     TOK_ARGS = 285,
255
 
     TOK_VALUES = 286,
256
 
     TOK_HIDDEN = 287,
257
 
     TOK_DEPENDON = 288,
258
 
     TOK_STRING = 289,
259
 
     TOK_CHAR = 290,
260
 
     TOK_ARGTYPE = 291,
261
 
     TOK_SIZE = 292
 
253
     TOK_VERSIONTEXT = 285,
 
254
     TOK_ARGS = 286,
 
255
     TOK_VALUES = 287,
 
256
     TOK_HIDDEN = 288,
 
257
     TOK_DEPENDON = 289,
 
258
     TOK_STRING = 290,
 
259
     TOK_CHAR = 291,
 
260
     TOK_ARGTYPE = 292,
 
261
     TOK_SIZE = 293
262
262
   };
263
263
#endif
264
264
/* Tokens.  */
289
289
#define TOK_DETAILS 282
290
290
#define TOK_SECTIONDESC 283
291
291
#define TOK_TEXT 284
292
 
#define TOK_ARGS 285
293
 
#define TOK_VALUES 286
294
 
#define TOK_HIDDEN 287
295
 
#define TOK_DEPENDON 288
296
 
#define TOK_STRING 289
297
 
#define TOK_CHAR 290
298
 
#define TOK_ARGTYPE 291
299
 
#define TOK_SIZE 292
 
292
#define TOK_VERSIONTEXT 285
 
293
#define TOK_ARGS 286
 
294
#define TOK_VALUES 287
 
295
#define TOK_HIDDEN 288
 
296
#define TOK_DEPENDON 289
 
297
#define TOK_STRING 290
 
298
#define TOK_CHAR 291
 
299
#define TOK_ARGTYPE 292
 
300
#define TOK_SIZE 293
300
301
 
301
302
 
302
303
 
305
306
typedef union YYSTYPE
306
307
{
307
308
 
308
 
/* Line 214 of yacc.c  */
309
 
#line 149 "../../src/parser.yy"
 
309
/* Line 293 of yacc.c  */
 
310
#line 150 "./parser.yy"
310
311
 
311
312
    char   *str;
312
313
    char    chr;
318
319
 
319
320
 
320
321
 
321
 
/* Line 214 of yacc.c  */
322
 
#line 323 "../../src/parser.cc"
 
322
/* Line 293 of yacc.c  */
 
323
#line 324 "./parser.cc"
323
324
} YYSTYPE;
324
325
# define YYSTYPE_IS_TRIVIAL 1
325
326
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
343
344
/* Copy the second part of user declarations.  */
344
345
 
345
346
 
346
 
/* Line 264 of yacc.c  */
347
 
#line 348 "../../src/parser.cc"
 
347
/* Line 343 of yacc.c  */
 
348
#line 349 "./parser.cc"
348
349
 
349
350
#ifdef short
350
351
# undef short
394
395
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
395
396
 
396
397
#ifndef YY_
397
 
# if YYENABLE_NLS
 
398
# if defined YYENABLE_NLS && YYENABLE_NLS
398
399
#  if ENABLE_NLS
399
400
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
400
401
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
447
448
#    define alloca _alloca
448
449
#   else
449
450
#    define YYSTACK_ALLOC alloca
450
 
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
 
451
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
451
452
     || defined __cplusplus || defined _MSC_VER)
452
453
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
453
 
#     ifndef _STDLIB_H
454
 
#      define _STDLIB_H 1
 
454
#     ifndef EXIT_SUCCESS
 
455
#      define EXIT_SUCCESS 0
455
456
#     endif
456
457
#    endif
457
458
#   endif
474
475
#  ifndef YYSTACK_ALLOC_MAXIMUM
475
476
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
476
477
#  endif
477
 
#  if (defined __cplusplus && ! defined _STDLIB_H \
 
478
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
478
479
       && ! ((defined YYMALLOC || defined malloc) \
479
480
             && (defined YYFREE || defined free)))
480
481
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
481
 
#   ifndef _STDLIB_H
482
 
#    define _STDLIB_H 1
 
482
#   ifndef EXIT_SUCCESS
 
483
#    define EXIT_SUCCESS 0
483
484
#   endif
484
485
#  endif
485
486
#  ifndef YYMALLOC
486
487
#   define YYMALLOC malloc
487
 
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
 
488
#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
488
489
     || defined __cplusplus || defined _MSC_VER)
489
490
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
490
491
#   endif
491
492
#  endif
492
493
#  ifndef YYFREE
493
494
#   define YYFREE free
494
 
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
 
495
#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
495
496
     || defined __cplusplus || defined _MSC_VER)
496
497
void free (void *); /* INFRINGES ON USER NAME SPACE */
497
498
#   endif
522
523
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
523
524
      + 2 * YYSTACK_GAP_MAXIMUM)
524
525
 
 
526
# define YYCOPY_NEEDED 1
 
527
 
 
528
/* Relocate STACK from its old location to the new one.  The
 
529
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 
530
   elements in the stack, and YYPTR gives the new location of the
 
531
   stack.  Advance YYPTR to a properly aligned location for the next
 
532
   stack.  */
 
533
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
 
534
    do                                                                  \
 
535
      {                                                                 \
 
536
        YYSIZE_T yynewbytes;                                            \
 
537
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
 
538
        Stack = &yyptr->Stack_alloc;                                    \
 
539
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 
540
        yyptr += yynewbytes / sizeof (*yyptr);                          \
 
541
      }                                                                 \
 
542
    while (YYID (0))
 
543
 
 
544
#endif
 
545
 
 
546
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
525
547
/* Copy COUNT objects from FROM to TO.  The source and destination do
526
548
   not overlap.  */
527
549
# ifndef YYCOPY
539
561
      while (YYID (0))
540
562
#  endif
541
563
# endif
542
 
 
543
 
/* Relocate STACK from its old location to the new one.  The
544
 
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
545
 
   elements in the stack, and YYPTR gives the new location of the
546
 
   stack.  Advance YYPTR to a properly aligned location for the next
547
 
   stack.  */
548
 
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
549
 
    do                                                                  \
550
 
      {                                                                 \
551
 
        YYSIZE_T yynewbytes;                                            \
552
 
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
553
 
        Stack = &yyptr->Stack_alloc;                                    \
554
 
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
555
 
        yyptr += yynewbytes / sizeof (*yyptr);                          \
556
 
      }                                                                 \
557
 
    while (YYID (0))
558
 
 
559
 
#endif
 
564
#endif /* !YYCOPY_NEEDED */
560
565
 
561
566
/* YYFINAL -- State number of the termination state.  */
562
 
#define YYFINAL  43
 
567
#define YYFINAL  46
563
568
/* YYLAST -- Last index in YYTABLE.  */
564
 
#define YYLAST   92
 
569
#define YYLAST   91
565
570
 
566
571
/* YYNTOKENS -- Number of terminals.  */
567
 
#define YYNTOKENS  43
 
572
#define YYNTOKENS  44
568
573
/* YYNNTS -- Number of nonterminals.  */
569
 
#define YYNNTS  27
 
574
#define YYNNTS  28
570
575
/* YYNRULES -- Number of rules.  */
571
 
#define YYNRULES  66
 
576
#define YYNRULES  68
572
577
/* YYNRULES -- Number of states.  */
573
 
#define YYNSTATES  116
 
578
#define YYNSTATES  119
574
579
 
575
580
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
576
581
#define YYUNDEFTOK  2
577
 
#define YYMAXUTOK   292
 
582
#define YYMAXUTOK   293
578
583
 
579
584
#define YYTRANSLATE(YYX)                                                \
580
585
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
586
591
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
587
592
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
588
593
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
589
 
      40,    41,     2,     2,    39,    42,     2,     2,     2,     2,
 
594
      41,    42,     2,     2,    40,    43,     2,     2,     2,     2,
590
595
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
591
 
       2,    38,     2,     2,     2,     2,     2,     2,     2,     2,
 
596
       2,    39,     2,     2,     2,     2,     2,     2,     2,     2,
592
597
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
593
598
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
594
599
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
611
616
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
612
617
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
613
618
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
614
 
      35,    36,    37
 
619
      35,    36,    37,    38
615
620
};
616
621
 
617
622
#if YYDEBUG
620
625
static const yytype_uint8 yyprhs[] =
621
626
{
622
627
       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
623
 
      19,    21,    23,    25,    27,    29,    31,    33,    36,    39,
624
 
      42,    45,    48,    52,    55,    58,    63,    67,    73,    79,
625
 
      85,    87,    90,    93,    98,   103,   108,   113,   118,   123,
626
 
     128,   131,   135,   138,   141,   144,   145,   147,   149,   150,
627
 
     152,   154,   156,   158,   159,   163,   164,   168,   169,   173,
628
 
     175,   179,   181,   182,   186,   191,   196
 
628
      19,    21,    23,    25,    27,    29,    31,    33,    35,    38,
 
629
      41,    44,    47,    50,    54,    57,    60,    63,    68,    72,
 
630
      78,    84,    90,    92,    95,    98,   103,   108,   113,   118,
 
631
     123,   128,   133,   136,   140,   143,   146,   149,   150,   152,
 
632
     154,   155,   157,   159,   161,   163,   164,   168,   169,   173,
 
633
     174,   178,   180,   184,   186,   187,   191,   196,   201
629
634
};
630
635
 
631
636
/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
632
637
static const yytype_int8 yyrhs[] =
633
638
{
634
 
      44,     0,    -1,    -1,    45,    44,    -1,    46,    -1,    47,
635
 
      -1,    53,    -1,    48,    -1,    49,    -1,    50,    -1,    51,
636
 
      -1,    56,    -1,    52,    -1,    57,    -1,    54,    -1,    58,
637
 
      -1,    55,    -1,     3,    34,    -1,     4,    34,    -1,    15,
638
 
      59,    -1,    16,    59,    -1,    17,    59,    -1,    26,    59,
639
 
      66,    -1,    29,    59,    -1,    30,    34,    -1,     6,    34,
640
 
      64,    62,    -1,     8,    34,    65,    -1,     5,    34,    35,
641
 
      59,    60,    -1,     7,    34,    35,    59,    60,    -1,     9,
642
 
      34,    35,    59,    60,    -1,    34,    -1,    60,    63,    -1,
643
 
      60,    36,    -1,    60,    25,    38,    34,    -1,    60,    27,
644
 
      38,    59,    -1,    60,    31,    38,    67,    -1,    60,    18,
645
 
      38,    34,    -1,    60,    19,    38,    34,    -1,    60,    21,
646
 
      38,    34,    -1,    60,    33,    38,    34,    -1,    60,    24,
647
 
      -1,    60,    23,    69,    -1,    60,    14,    -1,    60,    32,
648
 
      -1,    60,    61,    -1,    -1,    12,    -1,    13,    -1,    -1,
649
 
      10,    -1,    11,    -1,    10,    -1,    11,    -1,    -1,    20,
650
 
      38,    34,    -1,    -1,    22,    38,    34,    -1,    -1,    28,
651
 
      38,    34,    -1,    68,    -1,    67,    39,    68,    -1,    34,
652
 
      -1,    -1,    40,    37,    41,    -1,    40,    37,    42,    41,
653
 
      -1,    40,    42,    37,    41,    -1,    40,    37,    42,    37,
654
 
      41,    -1
 
639
      45,     0,    -1,    -1,    46,    45,    -1,    47,    -1,    48,
 
640
      -1,    55,    -1,    49,    -1,    50,    -1,    51,    -1,    52,
 
641
      -1,    58,    -1,    53,    -1,    54,    -1,    59,    -1,    56,
 
642
      -1,    60,    -1,    57,    -1,     3,    35,    -1,     4,    35,
 
643
      -1,    15,    61,    -1,    16,    61,    -1,    17,    61,    -1,
 
644
      26,    61,    68,    -1,    29,    61,    -1,    30,    61,    -1,
 
645
      31,    35,    -1,     6,    35,    66,    64,    -1,     8,    35,
 
646
      67,    -1,     5,    35,    36,    61,    62,    -1,     7,    35,
 
647
      36,    61,    62,    -1,     9,    35,    36,    61,    62,    -1,
 
648
      35,    -1,    62,    65,    -1,    62,    37,    -1,    62,    25,
 
649
      39,    35,    -1,    62,    27,    39,    61,    -1,    62,    32,
 
650
      39,    69,    -1,    62,    18,    39,    35,    -1,    62,    19,
 
651
      39,    35,    -1,    62,    21,    39,    35,    -1,    62,    34,
 
652
      39,    35,    -1,    62,    24,    -1,    62,    23,    71,    -1,
 
653
      62,    14,    -1,    62,    33,    -1,    62,    63,    -1,    -1,
 
654
      12,    -1,    13,    -1,    -1,    10,    -1,    11,    -1,    10,
 
655
      -1,    11,    -1,    -1,    20,    39,    35,    -1,    -1,    22,
 
656
      39,    35,    -1,    -1,    28,    39,    35,    -1,    70,    -1,
 
657
      69,    40,    70,    -1,    35,    -1,    -1,    41,    38,    42,
 
658
      -1,    41,    38,    43,    42,    -1,    41,    43,    38,    42,
 
659
      -1,    41,    38,    43,    38,    42,    -1
655
660
};
656
661
 
657
662
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
658
663
static const yytype_uint16 yyrline[] =
659
664
{
660
 
       0,   210,   210,   212,   217,   218,   219,   220,   221,   222,
661
 
     223,   224,   225,   226,   227,   228,   229,   234,   254,   274,
662
 
     294,   314,   335,   342,   359,   366,   377,   388,   408,   427,
663
 
     449,   452,   458,   463,   468,   473,   478,   483,   488,   493,
664
 
     498,   503,   511,   516,   521,   526,   530,   531,   535,   536,
665
 
     537,   541,   542,   546,   547,   551,   552,   556,   557,   561,
666
 
     562,   566,   570,   571,   572,   573,   574
 
665
       0,   212,   212,   214,   219,   220,   221,   222,   223,   224,
 
666
     225,   226,   227,   228,   229,   230,   231,   232,   237,   257,
 
667
     277,   297,   317,   338,   345,   362,   382,   389,   400,   411,
 
668
     431,   450,   472,   475,   481,   486,   491,   496,   501,   506,
 
669
     511,   516,   521,   526,   534,   539,   544,   549,   553,   554,
 
670
     558,   559,   560,   564,   565,   569,   570,   574,   575,   579,
 
671
     580,   584,   585,   589,   593,   594,   595,   596,   597
667
672
};
668
673
#endif
669
674
 
678
683
  "\"purpose\"", "\"description\"", "\"usage\"", "\"default\"",
679
684
  "\"group\"", "\"groupdesc\"", "\"mode\"", "\"modedesc\"", "\"multiple\"",
680
685
  "\"argoptional\"", "\"typestr\"", "\"section\"", "\"details\"",
681
 
  "\"sectiondesc\"", "\"text\"", "\"args\"", "\"values\"", "\"hidden\"",
682
 
  "\"dependon\"", "TOK_STRING", "TOK_CHAR", "TOK_ARGTYPE", "TOK_SIZE",
683
 
  "'='", "','", "'('", "')'", "'-'", "$accept", "input", "statement",
684
 
  "package", "version", "purpose", "description", "usage", "sectiondef",
685
 
  "text", "args", "groupdef", "modedef", "option", "groupoption",
686
 
  "modeoption", "quoted_string", "option_parts", "req_onoff",
687
 
  "optional_yesno", "opt_yesno", "opt_groupdesc", "opt_modedesc",
688
 
  "opt_sectiondesc", "listofvalues", "acceptedvalue", "multiple_size", 0
 
686
  "\"sectiondesc\"", "\"text\"", "\"versiontext\"", "\"args\"",
 
687
  "\"values\"", "\"hidden\"", "\"dependon\"", "TOK_STRING", "TOK_CHAR",
 
688
  "TOK_ARGTYPE", "TOK_SIZE", "'='", "','", "'('", "')'", "'-'", "$accept",
 
689
  "input", "statement", "package", "version", "purpose", "description",
 
690
  "usage", "sectiondef", "text", "versiontext", "args", "groupdef",
 
691
  "modedef", "option", "groupoption", "modeoption", "quoted_string",
 
692
  "option_parts", "req_onoff", "optional_yesno", "opt_yesno",
 
693
  "opt_groupdesc", "opt_modedesc", "opt_sectiondesc", "listofvalues",
 
694
  "acceptedvalue", "multiple_size", 0
689
695
};
690
696
#endif
691
697
 
697
703
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
698
704
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
699
705
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
700
 
     285,   286,   287,   288,   289,   290,   291,   292,    61,    44,
701
 
      40,    41,    45
 
706
     285,   286,   287,   288,   289,   290,   291,   292,   293,    61,
 
707
      44,    40,    41,    45
702
708
};
703
709
# endif
704
710
 
705
711
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
706
712
static const yytype_uint8 yyr1[] =
707
713
{
708
 
       0,    43,    44,    44,    45,    45,    45,    45,    45,    45,
709
 
      45,    45,    45,    45,    45,    45,    45,    46,    47,    48,
 
714
       0,    44,    45,    45,    46,    46,    46,    46,    46,    46,
 
715
      46,    46,    46,    46,    46,    46,    46,    46,    47,    48,
710
716
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
711
 
      59,    60,    60,    60,    60,    60,    60,    60,    60,    60,
712
 
      60,    60,    60,    60,    60,    60,    61,    61,    62,    62,
713
 
      62,    63,    63,    64,    64,    65,    65,    66,    66,    67,
714
 
      67,    68,    69,    69,    69,    69,    69
 
717
      59,    60,    61,    62,    62,    62,    62,    62,    62,    62,
 
718
      62,    62,    62,    62,    62,    62,    62,    62,    63,    63,
 
719
      64,    64,    64,    65,    65,    66,    66,    67,    67,    68,
 
720
      68,    69,    69,    70,    71,    71,    71,    71,    71
715
721
};
716
722
 
717
723
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
718
724
static const yytype_uint8 yyr2[] =
719
725
{
720
726
       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
721
 
       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
722
 
       2,     2,     3,     2,     2,     4,     3,     5,     5,     5,
723
 
       1,     2,     2,     4,     4,     4,     4,     4,     4,     4,
724
 
       2,     3,     2,     2,     2,     0,     1,     1,     0,     1,
725
 
       1,     1,     1,     0,     3,     0,     3,     0,     3,     1,
726
 
       3,     1,     0,     3,     4,     4,     5
 
727
       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
 
728
       2,     2,     2,     3,     2,     2,     2,     4,     3,     5,
 
729
       5,     5,     1,     2,     2,     4,     4,     4,     4,     4,
 
730
       4,     4,     2,     3,     2,     2,     2,     0,     1,     1,
 
731
       0,     1,     1,     1,     1,     0,     3,     0,     3,     0,
 
732
       3,     1,     3,     1,     0,     3,     4,     4,     5
727
733
};
728
734
 
729
 
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
730
 
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
 
735
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
 
736
   Performed when YYTABLE doesn't specify something else to do.  Zero
731
737
   means the default is an error.  */
732
738
static const yytype_uint8 yydefact[] =
733
739
{
734
740
       2,     0,     0,     0,     0,     0,     0,     0,     0,     0,
735
 
       0,     0,     0,     0,     0,     2,     4,     5,     7,     8,
736
 
       9,    10,    12,     6,    14,    16,    11,    13,    15,    17,
737
 
      18,     0,    53,     0,    55,     0,    30,    19,    20,    21,
738
 
      57,    23,    24,     1,     3,     0,     0,    48,     0,     0,
739
 
      26,     0,     0,    22,    45,     0,    49,    50,    25,    45,
740
 
       0,    45,     0,    27,    54,    28,    56,    29,    58,    51,
741
 
      52,    46,    47,    42,     0,     0,     0,    62,    40,     0,
742
 
       0,     0,    43,     0,    32,    44,    31,     0,     0,     0,
743
 
       0,    41,     0,     0,     0,     0,    36,    37,    38,     0,
744
 
       0,    33,    34,    61,    35,    59,    39,    63,     0,     0,
745
 
       0,     0,    64,    65,    60,    66
 
741
       0,     0,     0,     0,     0,     0,     2,     4,     5,     7,
 
742
       8,     9,    10,    12,    13,     6,    15,    17,    11,    14,
 
743
      16,    18,    19,     0,    55,     0,    57,     0,    32,    20,
 
744
      21,    22,    59,    24,    25,    26,     1,     3,     0,     0,
 
745
      50,     0,     0,    28,     0,     0,    23,    47,     0,    51,
 
746
      52,    27,    47,     0,    47,     0,    29,    56,    30,    58,
 
747
      31,    60,    53,    54,    48,    49,    44,     0,     0,     0,
 
748
      64,    42,     0,     0,     0,    45,     0,    34,    46,    33,
 
749
       0,     0,     0,     0,    43,     0,     0,     0,     0,    38,
 
750
      39,    40,     0,     0,    35,    36,    63,    37,    61,    41,
 
751
      65,     0,     0,     0,     0,    66,    67,    62,    68
746
752
};
747
753
 
748
754
/* YYDEFGOTO[NTERM-NUM].  */
749
755
static const yytype_int8 yydefgoto[] =
750
756
{
751
 
      -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
752
 
      23,    24,    25,    26,    27,    28,    37,    63,    85,    58,
753
 
      86,    47,    50,    53,   104,   105,    91
 
757
      -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
 
758
      24,    25,    26,    27,    28,    29,    30,    39,    66,    88,
 
759
      61,    89,    50,    53,    56,   107,   108,    94
754
760
};
755
761
 
756
762
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
757
763
   STATE-NUM.  */
758
 
#define YYPACT_NINF -40
 
764
#define YYPACT_NINF -42
759
765
static const yytype_int8 yypact[] =
760
766
{
761
 
       1,   -13,    -8,    -6,    -5,    -2,    -1,     0,     3,     3,
762
 
       3,     3,     3,     4,    25,     1,   -40,   -40,   -40,   -40,
763
 
     -40,   -40,   -40,   -40,   -40,   -40,   -40,   -40,   -40,   -40,
764
 
     -40,     5,    15,     6,    26,    14,   -40,   -40,   -40,   -40,
765
 
      22,   -40,   -40,   -40,   -40,     3,    17,     2,     3,    21,
766
 
     -40,     3,    23,   -40,   -40,    19,   -40,   -40,   -40,   -40,
767
 
      28,   -40,    29,    33,   -40,    33,   -40,    33,   -40,   -40,
768
 
     -40,   -40,   -40,   -40,    30,    32,    34,    27,   -40,    35,
769
 
      36,    37,   -40,    38,   -40,   -40,   -40,    43,    44,    45,
770
 
     -23,   -40,    46,     3,    47,    48,   -40,   -40,   -40,   -18,
771
 
      49,   -40,   -40,   -40,    50,   -40,   -40,   -40,   -26,    42,
772
 
      47,    51,   -40,   -40,   -40,   -40
 
767
       2,   -13,    -8,    -6,    -5,    -1,     0,     1,     5,     5,
 
768
       5,     5,     5,     5,     6,    26,     2,   -42,   -42,   -42,
 
769
     -42,   -42,   -42,   -42,   -42,   -42,   -42,   -42,   -42,   -42,
 
770
     -42,   -42,   -42,     7,    17,     8,    16,    15,   -42,   -42,
 
771
     -42,   -42,    24,   -42,   -42,   -42,   -42,   -42,     5,    14,
 
772
       3,     5,    19,   -42,     5,    23,   -42,   -42,    21,   -42,
 
773
     -42,   -42,   -42,    29,   -42,    30,    36,   -42,    36,   -42,
 
774
      36,   -42,   -42,   -42,   -42,   -42,   -42,    27,    28,    32,
 
775
      31,   -42,    35,    37,    38,   -42,    39,   -42,   -42,   -42,
 
776
      40,    44,    45,   -23,   -42,    46,     5,    47,    48,   -42,
 
777
     -42,   -42,   -18,    50,   -42,   -42,   -42,    49,   -42,   -42,
 
778
     -42,   -26,    42,    47,    43,   -42,   -42,   -42,   -42
773
779
};
774
780
 
775
781
/* YYPGOTO[NTERM-NUM].  */
776
782
static const yytype_int8 yypgoto[] =
777
783
{
778
 
     -40,    56,   -40,   -40,   -40,   -40,   -40,   -40,   -40,   -40,
779
 
     -40,   -40,   -40,   -40,   -40,   -40,    -9,   -39,   -40,   -40,
780
 
     -40,   -40,   -40,   -40,   -40,   -25,   -40
 
784
     -42,    70,   -42,   -42,   -42,   -42,   -42,   -42,   -42,   -42,
 
785
     -42,   -42,   -42,   -42,   -42,   -42,   -42,    -9,   -41,   -42,
 
786
     -42,   -42,   -42,   -42,   -42,   -42,   -22,   -42
781
787
};
782
788
 
783
789
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
784
790
   positive, shift that token.  If negative, reduce the rule which
785
 
   number is the opposite.  If zero, do what YYDEFACT says.
786
 
   If YYTABLE_NINF, syntax error.  */
 
791
   number is the opposite.  If YYTABLE_NINF, syntax error.  */
787
792
#define YYTABLE_NINF -1
788
793
static const yytype_uint8 yytable[] =
789
794
{
790
 
      38,    39,    40,    41,     1,     2,     3,     4,     5,     6,
791
 
       7,   111,    56,    57,    99,   112,     8,     9,    10,   100,
792
 
      65,    29,    67,   107,   108,    43,    30,    11,    31,    32,
793
 
      12,    13,    33,    34,    35,    46,    54,    36,    42,    59,
794
 
      45,    48,    61,    69,    70,    71,    72,    73,    49,    51,
795
 
      52,    74,    75,    64,    76,    55,    77,    78,    79,    60,
796
 
      80,    62,    66,    68,    81,    82,    83,    90,    87,    84,
797
 
      88,    44,    89,    92,    93,    94,    95,    96,    97,    98,
798
 
     101,   103,   106,   113,   102,   114,   109,     0,     0,   110,
799
 
       0,     0,   115
 
795
      40,    41,    42,    43,    44,     1,     2,     3,     4,     5,
 
796
       6,     7,   114,    59,    60,   102,   115,     8,     9,    10,
 
797
     103,    68,    31,    70,   110,   111,    46,    32,    11,    33,
 
798
      34,    12,    13,    14,    35,    36,    37,    49,    52,    57,
 
799
      38,    45,    62,    48,    51,    64,    72,    73,    74,    75,
 
800
      76,    54,    55,    58,    77,    78,    67,    79,    63,    80,
 
801
      81,    82,    65,    83,    69,    71,    90,    91,    84,    85,
 
802
      86,    92,    93,    87,    95,    99,    96,    97,    98,   100,
 
803
     101,   104,   106,   109,   116,   118,    47,   105,   112,   113,
 
804
       0,   117
800
805
};
801
806
 
 
807
#define yypact_value_is_default(yystate) \
 
808
  ((yystate) == (-42))
 
809
 
 
810
#define yytable_value_is_error(yytable_value) \
 
811
  YYID (0)
 
812
 
802
813
static const yytype_int8 yycheck[] =
803
814
{
804
 
       9,    10,    11,    12,     3,     4,     5,     6,     7,     8,
805
 
       9,    37,    10,    11,    37,    41,    15,    16,    17,    42,
806
 
      59,    34,    61,    41,    42,     0,    34,    26,    34,    34,
807
 
      29,    30,    34,    34,    34,    20,    45,    34,    34,    48,
808
 
      35,    35,    51,    10,    11,    12,    13,    14,    22,    35,
809
 
      28,    18,    19,    34,    21,    38,    23,    24,    25,    38,
810
 
      27,    38,    34,    34,    31,    32,    33,    40,    38,    36,
811
 
      38,    15,    38,    38,    38,    38,    38,    34,    34,    34,
812
 
      34,    34,    34,    41,    93,   110,    37,    -1,    -1,    39,
813
 
      -1,    -1,    41
 
815
       9,    10,    11,    12,    13,     3,     4,     5,     6,     7,
 
816
       8,     9,    38,    10,    11,    38,    42,    15,    16,    17,
 
817
      43,    62,    35,    64,    42,    43,     0,    35,    26,    35,
 
818
      35,    29,    30,    31,    35,    35,    35,    20,    22,    48,
 
819
      35,    35,    51,    36,    36,    54,    10,    11,    12,    13,
 
820
      14,    36,    28,    39,    18,    19,    35,    21,    39,    23,
 
821
      24,    25,    39,    27,    35,    35,    39,    39,    32,    33,
 
822
      34,    39,    41,    37,    39,    35,    39,    39,    39,    35,
 
823
      35,    35,    35,    35,    42,    42,    16,    96,    38,    40,
 
824
      -1,   113
814
825
};
815
826
 
816
827
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
818
829
static const yytype_uint8 yystos[] =
819
830
{
820
831
       0,     3,     4,     5,     6,     7,     8,     9,    15,    16,
821
 
      17,    26,    29,    30,    44,    45,    46,    47,    48,    49,
822
 
      50,    51,    52,    53,    54,    55,    56,    57,    58,    34,
823
 
      34,    34,    34,    34,    34,    34,    34,    59,    59,    59,
824
 
      59,    59,    34,     0,    44,    35,    20,    64,    35,    22,
825
 
      65,    35,    28,    66,    59,    38,    10,    11,    62,    59,
826
 
      38,    59,    38,    60,    34,    60,    34,    60,    34,    10,
827
 
      11,    12,    13,    14,    18,    19,    21,    23,    24,    25,
828
 
      27,    31,    32,    33,    36,    61,    63,    38,    38,    38,
829
 
      40,    69,    38,    38,    38,    38,    34,    34,    34,    37,
830
 
      42,    34,    59,    34,    67,    68,    34,    41,    42,    37,
831
 
      39,    37,    41,    41,    68,    41
 
832
      17,    26,    29,    30,    31,    45,    46,    47,    48,    49,
 
833
      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
 
834
      60,    35,    35,    35,    35,    35,    35,    35,    35,    61,
 
835
      61,    61,    61,    61,    61,    35,     0,    45,    36,    20,
 
836
      66,    36,    22,    67,    36,    28,    68,    61,    39,    10,
 
837
      11,    64,    61,    39,    61,    39,    62,    35,    62,    35,
 
838
      62,    35,    10,    11,    12,    13,    14,    18,    19,    21,
 
839
      23,    24,    25,    27,    32,    33,    34,    37,    63,    65,
 
840
      39,    39,    39,    41,    71,    39,    39,    39,    39,    35,
 
841
      35,    35,    38,    43,    35,    61,    35,    69,    70,    35,
 
842
      42,    43,    38,    40,    38,    42,    42,    70,    42
832
843
};
833
844
 
834
845
#define yyerrok         (yyerrstatus = 0)
843
854
 
844
855
/* Like YYERROR except do call yyerror.  This remains here temporarily
845
856
   to ease the transition to the new meaning of YYERROR, for GCC.
846
 
   Once GCC version 2 has supplanted version 1, this can go.  */
 
857
   Once GCC version 2 has supplanted version 1, this can go.  However,
 
858
   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
 
859
   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
 
860
   discussed.  */
847
861
 
848
862
#define YYFAIL          goto yyerrlab
 
863
#if defined YYFAIL
 
864
  /* This is here to suppress warnings from the GCC cpp's
 
865
     -Wunused-macros.  Normally we don't worry about that warning, but
 
866
     some users do, and we want to make it easy for users to remove
 
867
     YYFAIL uses, which will produce warnings from Bison 2.5.  */
 
868
#endif
849
869
 
850
870
#define YYRECOVERING()  (!!yyerrstatus)
851
871
 
855
875
    {                                                           \
856
876
      yychar = (Token);                                         \
857
877
      yylval = (Value);                                         \
858
 
      yytoken = YYTRANSLATE (yychar);                           \
859
878
      YYPOPSTACK (1);                                           \
860
879
      goto yybackup;                                            \
861
880
    }                                                           \
902
921
   we won't break user code: when these are the locations we know.  */
903
922
 
904
923
#ifndef YY_LOCATION_PRINT
905
 
# if YYLTYPE_IS_TRIVIAL
 
924
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
906
925
#  define YY_LOCATION_PRINT(File, Loc)                  \
907
926
     fprintf (File, "%d.%d-%d.%d",                      \
908
927
              (Loc).first_line, (Loc).first_column,     \
1107
1126
# define YYMAXDEPTH 10000
1108
1127
#endif
1109
1128
 
1110
 
 
1111
1129
 
1112
1130
#if YYERROR_VERBOSE
1113
1131
 
1210
1228
}
1211
1229
# endif
1212
1230
 
1213
 
/* Copy into YYRESULT an error message about the unexpected token
1214
 
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
1215
 
   including the terminating null byte.  If YYRESULT is null, do not
1216
 
   copy anything; just return the number of bytes that would be
1217
 
   copied.  As a special case, return 0 if an ordinary "syntax error"
1218
 
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
1219
 
   size calculation.  */
1220
 
static YYSIZE_T
1221
 
yysyntax_error (char *yyresult, int yystate, int yychar)
 
1231
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
 
1232
   about the unexpected token YYTOKEN for the state stack whose top is
 
1233
   YYSSP.
 
1234
 
 
1235
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
 
1236
   not large enough to hold the message.  In that case, also set
 
1237
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
 
1238
   required number of bytes is too large to store.  */
 
1239
static int
 
1240
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 
1241
                yytype_int16 *yyssp, int yytoken)
1222
1242
{
1223
 
  int yyn = yypact[yystate];
1224
 
 
1225
 
  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1226
 
    return 0;
1227
 
  else
1228
 
    {
1229
 
      int yytype = YYTRANSLATE (yychar);
1230
 
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1231
 
      YYSIZE_T yysize = yysize0;
1232
 
      YYSIZE_T yysize1;
1233
 
      int yysize_overflow = 0;
1234
 
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1235
 
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1236
 
      int yyx;
1237
 
 
1238
 
# if 0
1239
 
      /* This is so xgettext sees the translatable formats that are
1240
 
         constructed on the fly.  */
1241
 
      YY_("syntax error, unexpected %s");
1242
 
      YY_("syntax error, unexpected %s, expecting %s");
1243
 
      YY_("syntax error, unexpected %s, expecting %s or %s");
1244
 
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1245
 
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1246
 
# endif
1247
 
      char *yyfmt;
1248
 
      char const *yyf;
1249
 
      static char const yyunexpected[] = "syntax error, unexpected %s";
1250
 
      static char const yyexpecting[] = ", expecting %s";
1251
 
      static char const yyor[] = " or %s";
1252
 
      char yyformat[sizeof yyunexpected
1253
 
                    + sizeof yyexpecting - 1
1254
 
                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1255
 
                       * (sizeof yyor - 1))];
1256
 
      char const *yyprefix = yyexpecting;
1257
 
 
1258
 
      /* Start YYX at -YYN if negative to avoid negative indexes in
1259
 
         YYCHECK.  */
1260
 
      int yyxbegin = yyn < 0 ? -yyn : 0;
1261
 
 
1262
 
      /* Stay within bounds of both yycheck and yytname.  */
1263
 
      int yychecklim = YYLAST - yyn + 1;
1264
 
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1265
 
      int yycount = 1;
1266
 
 
1267
 
      yyarg[0] = yytname[yytype];
1268
 
      yyfmt = yystpcpy (yyformat, yyunexpected);
1269
 
 
1270
 
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1271
 
        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1272
 
          {
1273
 
            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1274
 
              {
1275
 
                yycount = 1;
1276
 
                yysize = yysize0;
1277
 
                yyformat[sizeof yyunexpected - 1] = '\0';
1278
 
                break;
1279
 
              }
1280
 
            yyarg[yycount++] = yytname[yyx];
1281
 
            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1282
 
            yysize_overflow |= (yysize1 < yysize);
1283
 
            yysize = yysize1;
1284
 
            yyfmt = yystpcpy (yyfmt, yyprefix);
1285
 
            yyprefix = yyor;
1286
 
          }
1287
 
 
1288
 
      yyf = YY_(yyformat);
1289
 
      yysize1 = yysize + yystrlen (yyf);
1290
 
      yysize_overflow |= (yysize1 < yysize);
1291
 
      yysize = yysize1;
1292
 
 
1293
 
      if (yysize_overflow)
1294
 
        return YYSIZE_MAXIMUM;
1295
 
 
1296
 
      if (yyresult)
1297
 
        {
1298
 
          /* Avoid sprintf, as that infringes on the user's name space.
1299
 
             Don't have undefined behavior even if the translation
1300
 
             produced a string with the wrong number of "%s"s.  */
1301
 
          char *yyp = yyresult;
1302
 
          int yyi = 0;
1303
 
          while ((*yyp = *yyf) != '\0')
1304
 
            {
1305
 
              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1306
 
                {
1307
 
                  yyp += yytnamerr (yyp, yyarg[yyi++]);
1308
 
                  yyf += 2;
1309
 
                }
1310
 
              else
1311
 
                {
1312
 
                  yyp++;
1313
 
                  yyf++;
1314
 
                }
1315
 
            }
1316
 
        }
1317
 
      return yysize;
1318
 
    }
 
1243
  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
 
1244
  YYSIZE_T yysize = yysize0;
 
1245
  YYSIZE_T yysize1;
 
1246
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
 
1247
  /* Internationalized format string. */
 
1248
  const char *yyformat = 0;
 
1249
  /* Arguments of yyformat. */
 
1250
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
 
1251
  /* Number of reported tokens (one for the "unexpected", one per
 
1252
     "expected"). */
 
1253
  int yycount = 0;
 
1254
 
 
1255
  /* There are many possibilities here to consider:
 
1256
     - Assume YYFAIL is not used.  It's too flawed to consider.  See
 
1257
       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
 
1258
       for details.  YYERROR is fine as it does not invoke this
 
1259
       function.
 
1260
     - If this state is a consistent state with a default action, then
 
1261
       the only way this function was invoked is if the default action
 
1262
       is an error action.  In that case, don't check for expected
 
1263
       tokens because there are none.
 
1264
     - The only way there can be no lookahead present (in yychar) is if
 
1265
       this state is a consistent state with a default action.  Thus,
 
1266
       detecting the absence of a lookahead is sufficient to determine
 
1267
       that there is no unexpected or expected token to report.  In that
 
1268
       case, just report a simple "syntax error".
 
1269
     - Don't assume there isn't a lookahead just because this state is a
 
1270
       consistent state with a default action.  There might have been a
 
1271
       previous inconsistent state, consistent state with a non-default
 
1272
       action, or user semantic action that manipulated yychar.
 
1273
     - Of course, the expected token list depends on states to have
 
1274
       correct lookahead information, and it depends on the parser not
 
1275
       to perform extra reductions after fetching a lookahead from the
 
1276
       scanner and before detecting a syntax error.  Thus, state merging
 
1277
       (from LALR or IELR) and default reductions corrupt the expected
 
1278
       token list.  However, the list is correct for canonical LR with
 
1279
       one exception: it will still contain any token that will not be
 
1280
       accepted due to an error action in a later state.
 
1281
  */
 
1282
  if (yytoken != YYEMPTY)
 
1283
    {
 
1284
      int yyn = yypact[*yyssp];
 
1285
      yyarg[yycount++] = yytname[yytoken];
 
1286
      if (!yypact_value_is_default (yyn))
 
1287
        {
 
1288
          /* Start YYX at -YYN if negative to avoid negative indexes in
 
1289
             YYCHECK.  In other words, skip the first -YYN actions for
 
1290
             this state because they are default actions.  */
 
1291
          int yyxbegin = yyn < 0 ? -yyn : 0;
 
1292
          /* Stay within bounds of both yycheck and yytname.  */
 
1293
          int yychecklim = YYLAST - yyn + 1;
 
1294
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
 
1295
          int yyx;
 
1296
 
 
1297
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 
1298
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
 
1299
                && !yytable_value_is_error (yytable[yyx + yyn]))
 
1300
              {
 
1301
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
 
1302
                  {
 
1303
                    yycount = 1;
 
1304
                    yysize = yysize0;
 
1305
                    break;
 
1306
                  }
 
1307
                yyarg[yycount++] = yytname[yyx];
 
1308
                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
 
1309
                if (! (yysize <= yysize1
 
1310
                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
 
1311
                  return 2;
 
1312
                yysize = yysize1;
 
1313
              }
 
1314
        }
 
1315
    }
 
1316
 
 
1317
  switch (yycount)
 
1318
    {
 
1319
# define YYCASE_(N, S)                      \
 
1320
      case N:                               \
 
1321
        yyformat = S;                       \
 
1322
      break
 
1323
      YYCASE_(0, YY_("syntax error"));
 
1324
      YYCASE_(1, YY_("syntax error, unexpected %s"));
 
1325
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
 
1326
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
 
1327
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
 
1328
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
 
1329
# undef YYCASE_
 
1330
    }
 
1331
 
 
1332
  yysize1 = yysize + yystrlen (yyformat);
 
1333
  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
 
1334
    return 2;
 
1335
  yysize = yysize1;
 
1336
 
 
1337
  if (*yymsg_alloc < yysize)
 
1338
    {
 
1339
      *yymsg_alloc = 2 * yysize;
 
1340
      if (! (yysize <= *yymsg_alloc
 
1341
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
 
1342
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
 
1343
      return 1;
 
1344
    }
 
1345
 
 
1346
  /* Avoid sprintf, as that infringes on the user's name space.
 
1347
     Don't have undefined behavior even if the translation
 
1348
     produced a string with the wrong number of "%s"s.  */
 
1349
  {
 
1350
    char *yyp = *yymsg;
 
1351
    int yyi = 0;
 
1352
    while ((*yyp = *yyformat) != '\0')
 
1353
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
 
1354
        {
 
1355
          yyp += yytnamerr (yyp, yyarg[yyi++]);
 
1356
          yyformat += 2;
 
1357
        }
 
1358
      else
 
1359
        {
 
1360
          yyp++;
 
1361
          yyformat++;
 
1362
        }
 
1363
  }
 
1364
  return 0;
1319
1365
}
1320
1366
#endif /* YYERROR_VERBOSE */
1321
 
 
1322
1367
 
1323
1368
/*-----------------------------------------------.
1324
1369
| Release the memory associated to this symbol.  |
1353
1398
    }
1354
1399
}
1355
1400
 
 
1401
 
1356
1402
/* Prevent warnings from -Wmissing-prototypes.  */
1357
1403
#ifdef YYPARSE_PARAM
1358
1404
#if defined __STDC__ || defined __cplusplus
1382
1428
int yynerrs;
1383
1429
 
1384
1430
 
1385
 
 
1386
 
/*-------------------------.
1387
 
| yyparse or yypush_parse.  |
1388
 
`-------------------------*/
 
1431
/*----------.
 
1432
| yyparse.  |
 
1433
`----------*/
1389
1434
 
1390
1435
#ifdef YYPARSE_PARAM
1391
1436
#if (defined __STDC__ || defined __C99__FUNC__ \
1409
1454
#endif
1410
1455
#endif
1411
1456
{
1412
 
 
1413
 
 
1414
1457
    int yystate;
1415
1458
    /* Number of tokens to shift before error messages enabled.  */
1416
1459
    int yyerrstatus;
1439
1482
    YYLTYPE *yylsp;
1440
1483
 
1441
1484
    /* The locations where the error started and ended.  */
1442
 
    YYLTYPE yyerror_range[2];
 
1485
    YYLTYPE yyerror_range[3];
1443
1486
 
1444
1487
    YYSIZE_T yystacksize;
1445
1488
 
1486
1529
  yyvsp = yyvs;
1487
1530
  yylsp = yyls;
1488
1531
 
1489
 
#if YYLTYPE_IS_TRIVIAL
 
1532
#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1490
1533
  /* Initialize the default location before parsing starts.  */
1491
1534
  yylloc.first_line   = yylloc.last_line   = 1;
1492
1535
  yylloc.first_column = yylloc.last_column = 1;
1588
1631
 
1589
1632
  /* First try to decide what to do without reference to lookahead token.  */
1590
1633
  yyn = yypact[yystate];
1591
 
  if (yyn == YYPACT_NINF)
 
1634
  if (yypact_value_is_default (yyn))
1592
1635
    goto yydefault;
1593
1636
 
1594
1637
  /* Not known => get a lookahead token if don't already have one.  */
1619
1662
  yyn = yytable[yyn];
1620
1663
  if (yyn <= 0)
1621
1664
    {
1622
 
      if (yyn == 0 || yyn == YYTABLE_NINF)
1623
 
        goto yyerrlab;
 
1665
      if (yytable_value_is_error (yyn))
 
1666
        goto yyerrlab;
1624
1667
      yyn = -yyn;
1625
1668
      goto yyreduce;
1626
1669
    }
1674
1717
  YY_REDUCE_PRINT (yyn);
1675
1718
  switch (yyn)
1676
1719
    {
1677
 
        case 17:
 
1720
        case 18:
1678
1721
 
1679
 
/* Line 1455 of yacc.c  */
1680
 
#line 235 "../../src/parser.yy"
 
1722
/* Line 1806 of yacc.c  */
 
1723
#line 238 "./parser.yy"
1681
1724
    {
1682
1725
              if (gengetopt_package_given)
1683
1726
                {
1696
1739
            }
1697
1740
    break;
1698
1741
 
1699
 
  case 18:
 
1742
  case 19:
1700
1743
 
1701
 
/* Line 1455 of yacc.c  */
1702
 
#line 255 "../../src/parser.yy"
 
1744
/* Line 1806 of yacc.c  */
 
1745
#line 258 "./parser.yy"
1703
1746
    {
1704
1747
              if (gengetopt_version_given)
1705
1748
                {
1718
1761
            }
1719
1762
    break;
1720
1763
 
1721
 
  case 19:
 
1764
  case 20:
1722
1765
 
1723
 
/* Line 1455 of yacc.c  */
1724
 
#line 275 "../../src/parser.yy"
 
1766
/* Line 1806 of yacc.c  */
 
1767
#line 278 "./parser.yy"
1725
1768
    {
1726
1769
              if (gengetopt_purpose_given)
1727
1770
                {
1740
1783
            }
1741
1784
    break;
1742
1785
 
1743
 
  case 20:
 
1786
  case 21:
1744
1787
 
1745
 
/* Line 1455 of yacc.c  */
1746
 
#line 295 "../../src/parser.yy"
 
1788
/* Line 1806 of yacc.c  */
 
1789
#line 298 "./parser.yy"
1747
1790
    {
1748
1791
              if (gengetopt_description_given)
1749
1792
                {
1762
1805
            }
1763
1806
    break;
1764
1807
 
1765
 
  case 21:
 
1808
  case 22:
1766
1809
 
1767
 
/* Line 1455 of yacc.c  */
1768
 
#line 315 "../../src/parser.yy"
 
1810
/* Line 1806 of yacc.c  */
 
1811
#line 318 "./parser.yy"
1769
1812
    {
1770
1813
      if (gengetopt_usage_given)
1771
1814
      {
1784
1827
  }
1785
1828
    break;
1786
1829
 
1787
 
  case 22:
 
1830
  case 23:
1788
1831
 
1789
 
/* Line 1455 of yacc.c  */
1790
 
#line 336 "../../src/parser.yy"
 
1832
/* Line 1806 of yacc.c  */
 
1833
#line 339 "./parser.yy"
1791
1834
    {
1792
1835
                gengetopt_set_section ((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str));
1793
1836
              }
1794
1837
    break;
1795
1838
 
1796
 
  case 23:
 
1839
  case 24:
1797
1840
 
1798
 
/* Line 1455 of yacc.c  */
1799
 
#line 343 "../../src/parser.yy"
 
1841
/* Line 1806 of yacc.c  */
 
1842
#line 346 "./parser.yy"
1800
1843
    {
1801
1844
                if (current_option) {
1802
1845
                        std::string current_option_text;
1812
1855
            }
1813
1856
    break;
1814
1857
 
1815
 
  case 24:
1816
 
 
1817
 
/* Line 1455 of yacc.c  */
1818
 
#line 360 "../../src/parser.yy"
 
1858
  case 25:
 
1859
 
 
1860
/* Line 1806 of yacc.c  */
 
1861
#line 363 "./parser.yy"
 
1862
    {
 
1863
                if (gengetopt_versiontext_given)
 
1864
                {
 
1865
                    yyerror ("versiontext redefined");
 
1866
                    YYERROR;
 
1867
                }
 
1868
                else
 
1869
                {
 
1870
                    gengetopt_versiontext_given = 1;
 
1871
                    if (gengetopt_define_versiontext ((yyvsp[(2) - (2)].str)))
 
1872
                    {
 
1873
                        yyerror ("not enough memory");
 
1874
                        YYERROR;
 
1875
                    }
 
1876
                }
 
1877
            }
 
1878
    break;
 
1879
 
 
1880
  case 26:
 
1881
 
 
1882
/* Line 1806 of yacc.c  */
 
1883
#line 383 "./parser.yy"
1819
1884
    {
1820
1885
  gengetopt_set_args((yyvsp[(2) - (2)].str));
1821
1886
            }
1822
1887
    break;
1823
1888
 
1824
 
  case 25:
 
1889
  case 27:
1825
1890
 
1826
 
/* Line 1455 of yacc.c  */
1827
 
#line 367 "../../src/parser.yy"
 
1891
/* Line 1806 of yacc.c  */
 
1892
#line 390 "./parser.yy"
1828
1893
    {
1829
1894
              if (gengetopt_add_group ((yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].boolean)))
1830
1895
                {
1834
1899
            }
1835
1900
    break;
1836
1901
 
1837
 
  case 26:
 
1902
  case 28:
1838
1903
 
1839
 
/* Line 1455 of yacc.c  */
1840
 
#line 378 "../../src/parser.yy"
 
1904
/* Line 1806 of yacc.c  */
 
1905
#line 401 "./parser.yy"
1841
1906
    {
1842
1907
              if (gengetopt_add_mode ((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)))
1843
1908
                {
1847
1912
            }
1848
1913
    break;
1849
1914
 
1850
 
  case 27:
 
1915
  case 29:
1851
1916
 
1852
 
/* Line 1455 of yacc.c  */
1853
 
#line 390 "../../src/parser.yy"
 
1917
/* Line 1806 of yacc.c  */
 
1918
#line 413 "./parser.yy"
1854
1919
    {
1855
1920
          (yyvsp[(5) - (5)].gengetopt_option)->filename = gengetopt_input_filename;
1856
1921
          (yyvsp[(5) - (5)].gengetopt_option)->linenum = (yylsp[(1) - (5)]).first_line;
1868
1933
            }
1869
1934
    break;
1870
1935
 
1871
 
  case 28:
 
1936
  case 30:
1872
1937
 
1873
 
/* Line 1455 of yacc.c  */
1874
 
#line 410 "../../src/parser.yy"
 
1938
/* Line 1806 of yacc.c  */
 
1939
#line 433 "./parser.yy"
1875
1940
    {
1876
1941
          (yyvsp[(5) - (5)].gengetopt_option)->filename = gengetopt_input_filename;
1877
1942
          (yyvsp[(5) - (5)].gengetopt_option)->linenum = (yylsp[(1) - (5)]).first_line;
1888
1953
            }
1889
1954
    break;
1890
1955
 
1891
 
  case 29:
 
1956
  case 31:
1892
1957
 
1893
 
/* Line 1455 of yacc.c  */
1894
 
#line 429 "../../src/parser.yy"
 
1958
/* Line 1806 of yacc.c  */
 
1959
#line 452 "./parser.yy"
1895
1960
    {
1896
1961
          (yyvsp[(5) - (5)].gengetopt_option)->filename = gengetopt_input_filename;
1897
1962
          (yyvsp[(5) - (5)].gengetopt_option)->linenum = (yylsp[(1) - (5)]).first_line;
1908
1973
            }
1909
1974
    break;
1910
1975
 
1911
 
  case 31:
 
1976
  case 33:
1912
1977
 
1913
 
/* Line 1455 of yacc.c  */
1914
 
#line 453 "../../src/parser.yy"
 
1978
/* Line 1806 of yacc.c  */
 
1979
#line 476 "./parser.yy"
1915
1980
    {
1916
1981
                                (yyval.gengetopt_option) = (yyvsp[(1) - (2)].gengetopt_option);
1917
1982
                                (yyval.gengetopt_option)->required = (yyvsp[(2) - (2)].boolean);
1919
1984
                          }
1920
1985
    break;
1921
1986
 
1922
 
  case 32:
 
1987
  case 34:
1923
1988
 
1924
 
/* Line 1455 of yacc.c  */
1925
 
#line 459 "../../src/parser.yy"
 
1989
/* Line 1806 of yacc.c  */
 
1990
#line 482 "./parser.yy"
1926
1991
    {
1927
1992
                                (yyval.gengetopt_option) = (yyvsp[(1) - (2)].gengetopt_option);
1928
1993
                                (yyval.gengetopt_option)->type = (yyvsp[(2) - (2)].argtype);
1929
1994
                          }
1930
1995
    break;
1931
1996
 
1932
 
  case 33:
 
1997
  case 35:
1933
1998
 
1934
 
/* Line 1455 of yacc.c  */
1935
 
#line 464 "../../src/parser.yy"
 
1999
/* Line 1806 of yacc.c  */
 
2000
#line 487 "./parser.yy"
1936
2001
    {
1937
2002
                                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1938
2003
                                (yyval.gengetopt_option)->type_str = strdup((yyvsp[(4) - (4)].str));
1939
2004
                          }
1940
2005
    break;
1941
2006
 
1942
 
  case 34:
 
2007
  case 36:
1943
2008
 
1944
 
/* Line 1455 of yacc.c  */
1945
 
#line 469 "../../src/parser.yy"
 
2009
/* Line 1806 of yacc.c  */
 
2010
#line 492 "./parser.yy"
1946
2011
    {
1947
2012
                                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1948
2013
                                (yyval.gengetopt_option)->details = strdup((yyvsp[(4) - (4)].str));
1949
2014
                          }
1950
2015
    break;
1951
2016
 
1952
 
  case 35:
 
2017
  case 37:
1953
2018
 
1954
 
/* Line 1455 of yacc.c  */
1955
 
#line 474 "../../src/parser.yy"
 
2019
/* Line 1806 of yacc.c  */
 
2020
#line 497 "./parser.yy"
1956
2021
    {
1957
2022
                                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1958
2023
                                (yyval.gengetopt_option)->acceptedvalues = (yyvsp[(4) - (4)].ValueList);
1959
2024
                          }
1960
2025
    break;
1961
2026
 
1962
 
  case 36:
 
2027
  case 38:
1963
2028
 
1964
 
/* Line 1455 of yacc.c  */
1965
 
#line 479 "../../src/parser.yy"
 
2029
/* Line 1806 of yacc.c  */
 
2030
#line 502 "./parser.yy"
1966
2031
    {
1967
2032
                                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1968
2033
                                (yyval.gengetopt_option)->default_string = strdup((yyvsp[(4) - (4)].str));
1969
2034
                          }
1970
2035
    break;
1971
2036
 
1972
 
  case 37:
 
2037
  case 39:
1973
2038
 
1974
 
/* Line 1455 of yacc.c  */
1975
 
#line 484 "../../src/parser.yy"
 
2039
/* Line 1806 of yacc.c  */
 
2040
#line 507 "./parser.yy"
1976
2041
    {
1977
2042
                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1978
2043
                (yyval.gengetopt_option)->group_value = strdup((yyvsp[(4) - (4)].str));
1979
2044
              }
1980
2045
    break;
1981
2046
 
1982
 
  case 38:
 
2047
  case 40:
1983
2048
 
1984
 
/* Line 1455 of yacc.c  */
1985
 
#line 489 "../../src/parser.yy"
 
2049
/* Line 1806 of yacc.c  */
 
2050
#line 512 "./parser.yy"
1986
2051
    {
1987
2052
                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1988
2053
                (yyval.gengetopt_option)->mode_value = strdup((yyvsp[(4) - (4)].str));
1989
2054
              }
1990
2055
    break;
1991
2056
 
1992
 
  case 39:
 
2057
  case 41:
1993
2058
 
1994
 
/* Line 1455 of yacc.c  */
1995
 
#line 494 "../../src/parser.yy"
 
2059
/* Line 1806 of yacc.c  */
 
2060
#line 517 "./parser.yy"
1996
2061
    {
1997
2062
                (yyval.gengetopt_option) = (yyvsp[(1) - (4)].gengetopt_option);
1998
2063
                (yyval.gengetopt_option)->dependon = strdup((yyvsp[(4) - (4)].str));
1999
2064
              }
2000
2065
    break;
2001
2066
 
2002
 
  case 40:
 
2067
  case 42:
2003
2068
 
2004
 
/* Line 1455 of yacc.c  */
2005
 
#line 499 "../../src/parser.yy"
 
2069
/* Line 1806 of yacc.c  */
 
2070
#line 522 "./parser.yy"
2006
2071
    {
2007
2072
                                (yyval.gengetopt_option) = (yyvsp[(1) - (2)].gengetopt_option);
2008
2073
                                (yyval.gengetopt_option)->arg_is_optional = true;
2009
2074
                          }
2010
2075
    break;
2011
2076
 
2012
 
  case 41:
 
2077
  case 43:
2013
2078
 
2014
 
/* Line 1455 of yacc.c  */
2015
 
#line 504 "../../src/parser.yy"
 
2079
/* Line 1806 of yacc.c  */
 
2080
#line 527 "./parser.yy"
2016
2081
    {
2017
2082
                                (yyval.gengetopt_option) = (yyvsp[(1) - (3)].gengetopt_option);
2018
2083
                                (yyval.gengetopt_option)->multiple = true;
2022
2087
                          }
2023
2088
    break;
2024
2089
 
2025
 
  case 42:
 
2090
  case 44:
2026
2091
 
2027
 
/* Line 1455 of yacc.c  */
2028
 
#line 512 "../../src/parser.yy"
 
2092
/* Line 1806 of yacc.c  */
 
2093
#line 535 "./parser.yy"
2029
2094
    {
2030
2095
          (yyval.gengetopt_option) = (yyvsp[(1) - (2)].gengetopt_option);
2031
2096
          (yyval.gengetopt_option)->type = ARG_FLAG;
2032
2097
        }
2033
2098
    break;
2034
2099
 
2035
 
  case 43:
 
2100
  case 45:
2036
2101
 
2037
 
/* Line 1455 of yacc.c  */
2038
 
#line 517 "../../src/parser.yy"
 
2102
/* Line 1806 of yacc.c  */
 
2103
#line 540 "./parser.yy"
2039
2104
    {
2040
2105
          (yyval.gengetopt_option) = (yyvsp[(1) - (2)].gengetopt_option);
2041
2106
          (yyval.gengetopt_option)->hidden = true;
2042
2107
        }
2043
2108
    break;
2044
2109
 
2045
 
  case 44:
 
2110
  case 46:
2046
2111
 
2047
 
/* Line 1455 of yacc.c  */
2048
 
#line 522 "../../src/parser.yy"
 
2112
/* Line 1806 of yacc.c  */
 
2113
#line 545 "./parser.yy"
2049
2114
    {
2050
2115
          (yyval.gengetopt_option) = (yyvsp[(1) - (2)].gengetopt_option);
2051
2116
          (yyval.gengetopt_option)->flagstat = (yyvsp[(2) - (2)].boolean);
2052
2117
        }
2053
2118
    break;
2054
2119
 
2055
 
  case 45:
 
2120
  case 47:
2056
2121
 
2057
 
/* Line 1455 of yacc.c  */
2058
 
#line 526 "../../src/parser.yy"
 
2122
/* Line 1806 of yacc.c  */
 
2123
#line 549 "./parser.yy"
2059
2124
    { (yyval.gengetopt_option) = new gengetopt_option; }
2060
2125
    break;
2061
2126
 
2062
 
  case 46:
2063
 
 
2064
 
/* Line 1455 of yacc.c  */
2065
 
#line 530 "../../src/parser.yy"
2066
 
    { (yyval.boolean) = 1; }
2067
 
    break;
2068
 
 
2069
 
  case 47:
2070
 
 
2071
 
/* Line 1455 of yacc.c  */
2072
 
#line 531 "../../src/parser.yy"
2073
 
    { (yyval.boolean) = 0; }
2074
 
    break;
2075
 
 
2076
2127
  case 48:
2077
2128
 
2078
 
/* Line 1455 of yacc.c  */
2079
 
#line 535 "../../src/parser.yy"
2080
 
    { (yyval.boolean) = 0; }
 
2129
/* Line 1806 of yacc.c  */
 
2130
#line 553 "./parser.yy"
 
2131
    { (yyval.boolean) = 1; }
2081
2132
    break;
2082
2133
 
2083
2134
  case 49:
2084
2135
 
2085
 
/* Line 1455 of yacc.c  */
2086
 
#line 536 "../../src/parser.yy"
2087
 
    { (yyval.boolean) = 1; }
 
2136
/* Line 1806 of yacc.c  */
 
2137
#line 554 "./parser.yy"
 
2138
    { (yyval.boolean) = 0; }
2088
2139
    break;
2089
2140
 
2090
2141
  case 50:
2091
2142
 
2092
 
/* Line 1455 of yacc.c  */
2093
 
#line 537 "../../src/parser.yy"
 
2143
/* Line 1806 of yacc.c  */
 
2144
#line 558 "./parser.yy"
2094
2145
    { (yyval.boolean) = 0; }
2095
2146
    break;
2096
2147
 
2097
2148
  case 51:
2098
2149
 
2099
 
/* Line 1455 of yacc.c  */
2100
 
#line 541 "../../src/parser.yy"
 
2150
/* Line 1806 of yacc.c  */
 
2151
#line 559 "./parser.yy"
2101
2152
    { (yyval.boolean) = 1; }
2102
2153
    break;
2103
2154
 
2104
2155
  case 52:
2105
2156
 
2106
 
/* Line 1455 of yacc.c  */
2107
 
#line 542 "../../src/parser.yy"
 
2157
/* Line 1806 of yacc.c  */
 
2158
#line 560 "./parser.yy"
2108
2159
    { (yyval.boolean) = 0; }
2109
2160
    break;
2110
2161
 
2111
2162
  case 53:
2112
2163
 
2113
 
/* Line 1455 of yacc.c  */
2114
 
#line 546 "../../src/parser.yy"
2115
 
    { (yyval.str) = 0; }
 
2164
/* Line 1806 of yacc.c  */
 
2165
#line 564 "./parser.yy"
 
2166
    { (yyval.boolean) = 1; }
2116
2167
    break;
2117
2168
 
2118
2169
  case 54:
2119
2170
 
2120
 
/* Line 1455 of yacc.c  */
2121
 
#line 547 "../../src/parser.yy"
2122
 
    { (yyval.str) = (yyvsp[(3) - (3)].str); }
 
2171
/* Line 1806 of yacc.c  */
 
2172
#line 565 "./parser.yy"
 
2173
    { (yyval.boolean) = 0; }
2123
2174
    break;
2124
2175
 
2125
2176
  case 55:
2126
2177
 
2127
 
/* Line 1455 of yacc.c  */
2128
 
#line 551 "../../src/parser.yy"
 
2178
/* Line 1806 of yacc.c  */
 
2179
#line 569 "./parser.yy"
2129
2180
    { (yyval.str) = 0; }
2130
2181
    break;
2131
2182
 
2132
2183
  case 56:
2133
2184
 
2134
 
/* Line 1455 of yacc.c  */
2135
 
#line 552 "../../src/parser.yy"
 
2185
/* Line 1806 of yacc.c  */
 
2186
#line 570 "./parser.yy"
2136
2187
    { (yyval.str) = (yyvsp[(3) - (3)].str); }
2137
2188
    break;
2138
2189
 
2139
2190
  case 57:
2140
2191
 
2141
 
/* Line 1455 of yacc.c  */
2142
 
#line 556 "../../src/parser.yy"
 
2192
/* Line 1806 of yacc.c  */
 
2193
#line 574 "./parser.yy"
2143
2194
    { (yyval.str) = 0; }
2144
2195
    break;
2145
2196
 
2146
2197
  case 58:
2147
2198
 
2148
 
/* Line 1455 of yacc.c  */
2149
 
#line 557 "../../src/parser.yy"
 
2199
/* Line 1806 of yacc.c  */
 
2200
#line 575 "./parser.yy"
2150
2201
    { (yyval.str) = (yyvsp[(3) - (3)].str); }
2151
2202
    break;
2152
2203
 
2153
2204
  case 59:
2154
2205
 
2155
 
/* Line 1455 of yacc.c  */
2156
 
#line 561 "../../src/parser.yy"
 
2206
/* Line 1806 of yacc.c  */
 
2207
#line 579 "./parser.yy"
 
2208
    { (yyval.str) = 0; }
 
2209
    break;
 
2210
 
 
2211
  case 60:
 
2212
 
 
2213
/* Line 1806 of yacc.c  */
 
2214
#line 580 "./parser.yy"
 
2215
    { (yyval.str) = (yyvsp[(3) - (3)].str); }
 
2216
    break;
 
2217
 
 
2218
  case 61:
 
2219
 
 
2220
/* Line 1806 of yacc.c  */
 
2221
#line 584 "./parser.yy"
2157
2222
    { (yyval.ValueList) = new AcceptedValues; (yyval.ValueList)->insert((yyvsp[(1) - (1)].str)); }
2158
2223
    break;
2159
2224
 
2160
 
  case 60:
 
2225
  case 62:
2161
2226
 
2162
 
/* Line 1455 of yacc.c  */
2163
 
#line 562 "../../src/parser.yy"
 
2227
/* Line 1806 of yacc.c  */
 
2228
#line 585 "./parser.yy"
2164
2229
    { (yyvsp[(1) - (3)].ValueList)->insert((yyvsp[(3) - (3)].str)); (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList); }
2165
2230
    break;
2166
2231
 
2167
 
  case 61:
 
2232
  case 63:
2168
2233
 
2169
 
/* Line 1455 of yacc.c  */
2170
 
#line 566 "../../src/parser.yy"
 
2234
/* Line 1806 of yacc.c  */
 
2235
#line 589 "./parser.yy"
2171
2236
    { (yyval.str) = (yyvsp[(1) - (1)].str); }
2172
2237
    break;
2173
2238
 
2174
 
  case 62:
 
2239
  case 64:
2175
2240
 
2176
 
/* Line 1455 of yacc.c  */
2177
 
#line 570 "../../src/parser.yy"
 
2241
/* Line 1806 of yacc.c  */
 
2242
#line 593 "./parser.yy"
2178
2243
    { (yyval.multiple_size) = new multiple_size; }
2179
2244
    break;
2180
2245
 
2181
 
  case 63:
 
2246
  case 65:
2182
2247
 
2183
 
/* Line 1455 of yacc.c  */
2184
 
#line 571 "../../src/parser.yy"
 
2248
/* Line 1806 of yacc.c  */
 
2249
#line 594 "./parser.yy"
2185
2250
    { (yyval.multiple_size) = new multiple_size((yyvsp[(2) - (3)].str), (yyvsp[(2) - (3)].str)); }
2186
2251
    break;
2187
2252
 
2188
 
  case 64:
 
2253
  case 66:
2189
2254
 
2190
 
/* Line 1455 of yacc.c  */
2191
 
#line 572 "../../src/parser.yy"
 
2255
/* Line 1806 of yacc.c  */
 
2256
#line 595 "./parser.yy"
2192
2257
    { (yyval.multiple_size) = new multiple_size((yyvsp[(2) - (4)].str), "0"); free((yyvsp[(2) - (4)].str)); }
2193
2258
    break;
2194
2259
 
2195
 
  case 65:
 
2260
  case 67:
2196
2261
 
2197
 
/* Line 1455 of yacc.c  */
2198
 
#line 573 "../../src/parser.yy"
 
2262
/* Line 1806 of yacc.c  */
 
2263
#line 596 "./parser.yy"
2199
2264
    { (yyval.multiple_size) = new multiple_size("0", (yyvsp[(3) - (4)].str)); free((yyvsp[(3) - (4)].str)); }
2200
2265
    break;
2201
2266
 
2202
 
  case 66:
 
2267
  case 68:
2203
2268
 
2204
 
/* Line 1455 of yacc.c  */
2205
 
#line 574 "../../src/parser.yy"
 
2269
/* Line 1806 of yacc.c  */
 
2270
#line 597 "./parser.yy"
2206
2271
    { (yyval.multiple_size) = new multiple_size((yyvsp[(2) - (5)].str), (yyvsp[(4) - (5)].str)); free((yyvsp[(2) - (5)].str)); free((yyvsp[(4) - (5)].str)); }
2207
2272
    break;
2208
2273
 
2209
2274
 
2210
2275
 
2211
 
/* Line 1455 of yacc.c  */
2212
 
#line 2213 "../../src/parser.cc"
 
2276
/* Line 1806 of yacc.c  */
 
2277
#line 2278 "./parser.cc"
2213
2278
      default: break;
2214
2279
    }
 
2280
  /* User semantic actions sometimes alter yychar, and that requires
 
2281
     that yytoken be updated with the new translation.  We take the
 
2282
     approach of translating immediately before every use of yytoken.
 
2283
     One alternative is translating here after every semantic action,
 
2284
     but that translation would be missed if the semantic action invokes
 
2285
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
 
2286
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
 
2287
     incorrect destructor might then be invoked immediately.  In the
 
2288
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
 
2289
     to an incorrect destructor call or verbose syntax error message
 
2290
     before the lookahead is translated.  */
2215
2291
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2216
2292
 
2217
2293
  YYPOPSTACK (yylen);
2240
2316
| yyerrlab -- here on detecting error |
2241
2317
`------------------------------------*/
2242
2318
yyerrlab:
 
2319
  /* Make sure we have latest lookahead translation.  See comments at
 
2320
     user semantic actions for why this is necessary.  */
 
2321
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
 
2322
 
2243
2323
  /* If not already recovering from an error, report this error.  */
2244
2324
  if (!yyerrstatus)
2245
2325
    {
2247
2327
#if ! YYERROR_VERBOSE
2248
2328
      yyerror (YY_("syntax error"));
2249
2329
#else
 
2330
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
 
2331
                                        yyssp, yytoken)
2250
2332
      {
2251
 
        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2252
 
        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2253
 
          {
2254
 
            YYSIZE_T yyalloc = 2 * yysize;
2255
 
            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2256
 
              yyalloc = YYSTACK_ALLOC_MAXIMUM;
2257
 
            if (yymsg != yymsgbuf)
2258
 
              YYSTACK_FREE (yymsg);
2259
 
            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2260
 
            if (yymsg)
2261
 
              yymsg_alloc = yyalloc;
2262
 
            else
2263
 
              {
2264
 
                yymsg = yymsgbuf;
2265
 
                yymsg_alloc = sizeof yymsgbuf;
2266
 
              }
2267
 
          }
2268
 
 
2269
 
        if (0 < yysize && yysize <= yymsg_alloc)
2270
 
          {
2271
 
            (void) yysyntax_error (yymsg, yystate, yychar);
2272
 
            yyerror (yymsg);
2273
 
          }
2274
 
        else
2275
 
          {
2276
 
            yyerror (YY_("syntax error"));
2277
 
            if (yysize != 0)
2278
 
              goto yyexhaustedlab;
2279
 
          }
 
2333
        char const *yymsgp = YY_("syntax error");
 
2334
        int yysyntax_error_status;
 
2335
        yysyntax_error_status = YYSYNTAX_ERROR;
 
2336
        if (yysyntax_error_status == 0)
 
2337
          yymsgp = yymsg;
 
2338
        else if (yysyntax_error_status == 1)
 
2339
          {
 
2340
            if (yymsg != yymsgbuf)
 
2341
              YYSTACK_FREE (yymsg);
 
2342
            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
 
2343
            if (!yymsg)
 
2344
              {
 
2345
                yymsg = yymsgbuf;
 
2346
                yymsg_alloc = sizeof yymsgbuf;
 
2347
                yysyntax_error_status = 2;
 
2348
              }
 
2349
            else
 
2350
              {
 
2351
                yysyntax_error_status = YYSYNTAX_ERROR;
 
2352
                yymsgp = yymsg;
 
2353
              }
 
2354
          }
 
2355
        yyerror (yymsgp);
 
2356
        if (yysyntax_error_status == 2)
 
2357
          goto yyexhaustedlab;
2280
2358
      }
 
2359
# undef YYSYNTAX_ERROR
2281
2360
#endif
2282
2361
    }
2283
2362
 
2284
 
  yyerror_range[0] = yylloc;
 
2363
  yyerror_range[1] = yylloc;
2285
2364
 
2286
2365
  if (yyerrstatus == 3)
2287
2366
    {
2318
2397
  if (/*CONSTCOND*/ 0)
2319
2398
     goto yyerrorlab;
2320
2399
 
2321
 
  yyerror_range[0] = yylsp[1-yylen];
 
2400
  yyerror_range[1] = yylsp[1-yylen];
2322
2401
  /* Do not reclaim the symbols of the rule which action triggered
2323
2402
     this YYERROR.  */
2324
2403
  YYPOPSTACK (yylen);
2337
2416
  for (;;)
2338
2417
    {
2339
2418
      yyn = yypact[yystate];
2340
 
      if (yyn != YYPACT_NINF)
 
2419
      if (!yypact_value_is_default (yyn))
2341
2420
        {
2342
2421
          yyn += YYTERROR;
2343
2422
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2352
2431
      if (yyssp == yyss)
2353
2432
        YYABORT;
2354
2433
 
2355
 
      yyerror_range[0] = *yylsp;
 
2434
      yyerror_range[1] = *yylsp;
2356
2435
      yydestruct ("Error: popping",
2357
2436
                  yystos[yystate], yyvsp, yylsp);
2358
2437
      YYPOPSTACK (1);
2362
2441
 
2363
2442
  *++yyvsp = yylval;
2364
2443
 
2365
 
  yyerror_range[1] = yylloc;
 
2444
  yyerror_range[2] = yylloc;
2366
2445
  /* Using YYLLOC is tempting, but would change the location of
2367
2446
     the lookahead.  YYLOC is available though.  */
2368
 
  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
 
2447
  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
2369
2448
  *++yylsp = yyloc;
2370
2449
 
2371
2450
  /* Shift the error token.  */
2401
2480
 
2402
2481
yyreturn:
2403
2482
  if (yychar != YYEMPTY)
2404
 
     yydestruct ("Cleanup: discarding lookahead",
2405
 
                 yytoken, &yylval, &yylloc);
 
2483
    {
 
2484
      /* Make sure we have latest lookahead translation.  See comments at
 
2485
         user semantic actions for why this is necessary.  */
 
2486
      yytoken = YYTRANSLATE (yychar);
 
2487
      yydestruct ("Cleanup: discarding lookahead",
 
2488
                  yytoken, &yylval, &yylloc);
 
2489
    }
2406
2490
  /* Do not reclaim the symbols of the rule which action triggered
2407
2491
     this YYABORT or YYACCEPT.  */
2408
2492
  YYPOPSTACK (yylen);
2427
2511
 
2428
2512
 
2429
2513
 
2430
 
/* Line 1675 of yacc.c  */
2431
 
#line 577 "../../src/parser.yy"
 
2514
/* Line 2067 of yacc.c  */
 
2515
#line 600 "./parser.yy"
2432
2516
 
2433
2517