/[bison]/bison/src/parse-gram.c
ViewVC logotype

Diff of /bison/src/parse-gram.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.47 by eggert, Tue Jun 17 08:24:00 2003 UTC revision 1.48 by akim, Mon Aug 25 15:16:24 2003 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.875b.  */  /* A Bison parser, made by GNU Bison 1.875c.  */
2    
3  /* Skeleton parser for Yacc-like parsing with Bison,  /* Skeleton parser for Yacc-like parsing with Bison,
4     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
# Line 84  Line 84 
84       PERCENT_EXPECT = 276,       PERCENT_EXPECT = 276,
85       PERCENT_FILE_PREFIX = 277,       PERCENT_FILE_PREFIX = 277,
86       PERCENT_GLR_PARSER = 278,       PERCENT_GLR_PARSER = 278,
87       PERCENT_LEX_PARAM = 279,       PERCENT_INITIAL_ACTION = 279,
88       PERCENT_LOCATIONS = 280,       PERCENT_LEX_PARAM = 280,
89       PERCENT_NAME_PREFIX = 281,       PERCENT_LOCATIONS = 281,
90       PERCENT_NO_LINES = 282,       PERCENT_NAME_PREFIX = 282,
91       PERCENT_NONDETERMINISTIC_PARSER = 283,       PERCENT_NO_LINES = 283,
92       PERCENT_OUTPUT = 284,       PERCENT_NONDETERMINISTIC_PARSER = 284,
93       PERCENT_PARSE_PARAM = 285,       PERCENT_OUTPUT = 285,
94       PERCENT_PURE_PARSER = 286,       PERCENT_PARSE_PARAM = 286,
95       PERCENT_SKELETON = 287,       PERCENT_PURE_PARSER = 287,
96       PERCENT_START = 288,       PERCENT_SKELETON = 288,
97       PERCENT_TOKEN_TABLE = 289,       PERCENT_START = 289,
98       PERCENT_VERBOSE = 290,       PERCENT_TOKEN_TABLE = 290,
99       PERCENT_YACC = 291,       PERCENT_VERBOSE = 291,
100       TYPE = 292,       PERCENT_YACC = 292,
101       EQUAL = 293,       TYPE = 293,
102       SEMICOLON = 294,       EQUAL = 294,
103       PIPE = 295,       SEMICOLON = 295,
104       ID = 296,       PIPE = 296,
105       ID_COLON = 297,       ID = 297,
106       PERCENT_PERCENT = 298,       ID_COLON = 298,
107       PROLOGUE = 299,       PERCENT_PERCENT = 299,
108       EPILOGUE = 300,       PROLOGUE = 300,
109       BRACED_CODE = 301       EPILOGUE = 301,
110         BRACED_CODE = 302
111     };     };
112  #endif  #endif
113  #define GRAM_EOF 0  #define GRAM_EOF 0
# Line 131  Line 132 
132  #define PERCENT_EXPECT 276  #define PERCENT_EXPECT 276
133  #define PERCENT_FILE_PREFIX 277  #define PERCENT_FILE_PREFIX 277
134  #define PERCENT_GLR_PARSER 278  #define PERCENT_GLR_PARSER 278
135  #define PERCENT_LEX_PARAM 279  #define PERCENT_INITIAL_ACTION 279
136  #define PERCENT_LOCATIONS 280  #define PERCENT_LEX_PARAM 280
137  #define PERCENT_NAME_PREFIX 281  #define PERCENT_LOCATIONS 281
138  #define PERCENT_NO_LINES 282  #define PERCENT_NAME_PREFIX 282
139  #define PERCENT_NONDETERMINISTIC_PARSER 283  #define PERCENT_NO_LINES 283
140  #define PERCENT_OUTPUT 284  #define PERCENT_NONDETERMINISTIC_PARSER 284
141  #define PERCENT_PARSE_PARAM 285  #define PERCENT_OUTPUT 285
142  #define PERCENT_PURE_PARSER 286  #define PERCENT_PARSE_PARAM 286
143  #define PERCENT_SKELETON 287  #define PERCENT_PURE_PARSER 287
144  #define PERCENT_START 288  #define PERCENT_SKELETON 288
145  #define PERCENT_TOKEN_TABLE 289  #define PERCENT_START 289
146  #define PERCENT_VERBOSE 290  #define PERCENT_TOKEN_TABLE 290
147  #define PERCENT_YACC 291  #define PERCENT_VERBOSE 291
148  #define TYPE 292  #define PERCENT_YACC 292
149  #define EQUAL 293  #define TYPE 293
150  #define SEMICOLON 294  #define EQUAL 294
151  #define PIPE 295  #define SEMICOLON 295
152  #define ID 296  #define PIPE 296
153  #define ID_COLON 297  #define ID 297
154  #define PERCENT_PERCENT 298  #define ID_COLON 298
155  #define PROLOGUE 299  #define PERCENT_PERCENT 299
156  #define EPILOGUE 300  #define PROLOGUE 300
157  #define BRACED_CODE 301  #define EPILOGUE 301
158    #define BRACED_CODE 302
159    
160    
161    
# Line 173  Line 175 
175  #include "reader.h"  #include "reader.h"
176  #include "symlist.h"  #include "symlist.h"
177    
 /* Produce verbose syntax errors.  */  
 #define YYERROR_VERBOSE 1  
   
178  #define YYLLOC_DEFAULT(Current, Rhs, N)  (Current) = lloc_default (Rhs, N)  #define YYLLOC_DEFAULT(Current, Rhs, N)  (Current) = lloc_default (Rhs, N)
179  static YYLTYPE lloc_default (YYLTYPE const *, int);  static YYLTYPE lloc_default (YYLTYPE const *, int);
180    
# Line 210  int current_prec = 0; Line 209  int current_prec = 0;
209  # undef YYERROR_VERBOSE  # undef YYERROR_VERBOSE
210  # define YYERROR_VERBOSE 1  # define YYERROR_VERBOSE 1
211  #else  #else
212  # define YYERROR_VERBOSE 0  # define YYERROR_VERBOSE 1
213  #endif  #endif
214    
215  #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)  #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
216  #line 75 "parse-gram.y"  #line 80 "parse-gram.y"
217  typedef union YYSTYPE {  typedef union YYSTYPE {
218    symbol *symbol;    symbol *symbol;
219    symbol_list *list;    symbol_list *list;
# Line 224  typedef union YYSTYPE { Line 223  typedef union YYSTYPE {
223    uniqstr uniqstr;    uniqstr uniqstr;
224  } YYSTYPE;  } YYSTYPE;
225  /* Line 191 of yacc.c.  */  /* Line 191 of yacc.c.  */
226  #line 228 "parse-gram.c"  #line 227 "parse-gram.c"
227  # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
228  # define YYSTYPE_IS_DECLARED 1  # define YYSTYPE_IS_DECLARED 1
229  # define YYSTYPE_IS_TRIVIAL 1  # define YYSTYPE_IS_TRIVIAL 1
# Line 248  typedef struct YYLTYPE Line 247  typedef struct YYLTYPE
247    
248    
249  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
250  #line 252 "parse-gram.c"  #line 251 "parse-gram.c"
251    
252  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
253    
254    # ifndef YYFREE
255    #  define YYFREE free
256    # endif
257    # ifndef YYMALLOC
258    #  define YYMALLOC malloc
259    # endif
260    
261  /* The parser invokes alloca or malloc; define the necessary symbols.  */  /* The parser invokes alloca or malloc; define the necessary symbols.  */
262    
263  # ifdef YYSTACK_USE_ALLOCA  # ifdef YYSTACK_USE_ALLOCA
# Line 276  typedef struct YYLTYPE Line 282  typedef struct YYLTYPE
282  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
283  #   define YYSIZE_T size_t  #   define YYSIZE_T size_t
284  #  endif  #  endif
285  #  define YYSTACK_ALLOC malloc  #  define YYSTACK_ALLOC YYMALLOC
286  #  define YYSTACK_FREE free  #  define YYSTACK_FREE YYFREE
287  # endif  # endif
288  #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */  #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
289    
# Line 349  union yyalloc Line 355  union yyalloc
355  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
356  #define YYFINAL  3  #define YYFINAL  3
357  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
358  #define YYLAST   148  #define YYLAST   150
359    
360  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
361  #define YYNTOKENS  47  #define YYNTOKENS  48
362  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
363  #define YYNNTS  25  #define YYNNTS  25
364  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
365  #define YYNRULES  75  #define YYNRULES  76
366  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
367  #define YYNSTATES  103  #define YYNSTATES  104
368    
369  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
370  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
371  #define YYMAXUTOK   301  #define YYMAXUTOK   302
372    
373  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
374    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 400  static const unsigned char yytranslate[] Line 406  static const unsigned char yytranslate[]
406        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
407        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
408        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
409        45,    46        45,    46,    47
410  };  };
411    
412  #if YYDEBUG  #if YYDEBUG
# Line 409  static const unsigned char yytranslate[] Line 415  static const unsigned char yytranslate[]
415  static const unsigned char yyprhs[] =  static const unsigned char yyprhs[] =
416  {  {
417         0,     0,     3,     8,     9,    12,    14,    16,    18,    22,         0,     0,     3,     8,     9,    12,    14,    16,    18,    22,
418        24,    26,    29,    33,    35,    37,    39,    43,    45,    47,        24,    26,    29,    33,    35,    37,    39,    41,    45,    47,
419        51,    53,    55,    58,    60,    62,    64,    66,    68,    70,        49,    53,    55,    57,    60,    62,    64,    66,    68,    70,
420        73,    75,    78,    81,    82,    86,    87,    91,    95,    99,        72,    75,    77,    80,    83,    84,    88,    89,    93,    97,
421       101,   103,   105,   106,   108,   110,   113,   115,   117,   120,       101,   103,   105,   107,   108,   110,   112,   115,   117,   119,
422       123,   127,   129,   132,   134,   137,   139,   142,   145,   146,       122,   125,   129,   131,   134,   136,   139,   141,   144,   147,
423       150,   152,   156,   159,   160,   163,   166,   170,   174,   178,       148,   152,   154,   158,   161,   162,   165,   168,   172,   176,
424       180,   182,   184,   186,   188,   189       180,   182,   184,   186,   188,   190,   191
425  };  };
426    
427  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
428  static const yysigned_char yyrhs[] =  static const yysigned_char yyrhs[] =
429  {  {
430        48,     0,    -1,    49,    43,    61,    71,    -1,    -1,    49,        49,     0,    -1,    50,    44,    62,    72,    -1,    -1,    50,
431        50,    -1,    51,    -1,    44,    -1,    17,    -1,    18,    70,        51,    -1,    52,    -1,    45,    -1,    17,    -1,    18,    71,
432        70,    -1,    19,    -1,    20,    -1,    21,     4,    -1,    22,        71,    -1,    19,    -1,    20,    -1,    21,     4,    -1,    22,
433        38,    70,    -1,    23,    -1,    24,    -1,    25,    -1,    26,        39,    71,    -1,    23,    -1,    24,    -1,    25,    -1,    26,
434        38,    70,    -1,    27,    -1,    28,    -1,    29,    38,    70,        -1,    27,    39,    71,    -1,    28,    -1,    29,    -1,    30,
435        -1,    30,    -1,    31,    -1,    32,    70,    -1,    34,    -1,        39,    71,    -1,    31,    -1,    32,    -1,    33,    71,    -1,
436        35,    -1,    36,    -1,    39,    -1,    55,    -1,    52,    -1,        35,    -1,    36,    -1,    37,    -1,    40,    -1,    56,    -1,
437        33,    67,    -1,    10,    -1,     8,    58,    -1,     9,    58,        53,    -1,    34,    68,    -1,    10,    -1,     8,    59,    -1,
438        -1,    -1,     6,    53,    60,    -1,    -1,     5,    54,    60,         9,    59,    -1,    -1,     6,    54,    61,    -1,    -1,     5,
439        -1,     7,    37,    58,    -1,    56,    57,    58,    -1,    11,        55,    61,    -1,     7,    38,    59,    -1,    57,    58,    59,
440        -1,    12,    -1,    13,    -1,    -1,    37,    -1,    67,    -1,        -1,    11,    -1,    12,    -1,    13,    -1,    -1,    38,    -1,
441        58,    67,    -1,    37,    -1,    41,    -1,    41,     4,    -1,        68,    -1,    59,    68,    -1,    38,    -1,    42,    -1,    42,
442        41,    69,    -1,    41,     4,    69,    -1,    59,    -1,    60,         4,    -1,    42,    70,    -1,    42,     4,    70,    -1,    60,
443        59,    -1,    62,    -1,    61,    62,    -1,    63,    -1,    51,        -1,    61,    60,    -1,    63,    -1,    62,    63,    -1,    64,
444        39,    -1,     1,    39,    -1,    -1,    42,    64,    65,    -1,        -1,    52,    40,    -1,     1,    40,    -1,    -1,    43,    65,
445        66,    -1,    65,    40,    66,    -1,    65,    39,    -1,    -1,        66,    -1,    67,    -1,    66,    41,    67,    -1,    66,    40,
446        66,    67,    -1,    66,    68,    -1,    66,    14,    67,    -1,        -1,    -1,    67,    68,    -1,    67,    69,    -1,    67,    14,
447        66,    15,     4,    -1,    66,    16,    37,    -1,    41,    -1,        68,    -1,    67,    15,     4,    -1,    67,    16,    38,    -1,
448        69,    -1,    46,    -1,     3,    -1,     3,    -1,    -1,    43,        42,    -1,    70,    -1,    47,    -1,     3,    -1,     3,    -1,
449        45,    -1        -1,    44,    46,    -1
450  };  };
451    
452  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
453  static const unsigned short yyrline[] =  static const unsigned short yyrline[] =
454  {  {
455         0,   162,   162,   170,   172,   176,   177,   178,   179,   180,         0,   170,   170,   178,   180,   184,   185,   186,   187,   188,
456       181,   182,   183,   184,   186,   187,   188,   189,   190,   191,       189,   190,   191,   192,   197,   201,   202,   203,   204,   205,
457       192,   193,   194,   195,   196,   197,   198,   202,   203,   204,       206,   207,   208,   209,   210,   211,   212,   213,   217,   218,
458       208,   214,   221,   231,   231,   236,   236,   241,   251,   266,       219,   223,   229,   236,   246,   246,   251,   251,   256,   266,
459       267,   268,   272,   273,   279,   280,   285,   289,   294,   300,       281,   282,   283,   287,   288,   294,   295,   300,   304,   309,
460       306,   317,   318,   327,   328,   334,   335,   340,   347,   347,       315,   321,   332,   333,   342,   343,   349,   350,   355,   362,
461       351,   352,   353,   358,   359,   361,   363,   365,   367,   372,       362,   366,   367,   368,   373,   374,   376,   378,   380,   382,
462       373,   377,   383,   392,   399,   401       387,   388,   392,   398,   407,   414,   416
463  };  };
464  #endif  #endif
465    
# Line 467  static const char *const yytname[] = Line 473  static const char *const yytname[] =
473    "\"%printer {...}\"", "\"%union {...}\"", "\"%left\"", "\"%right\"",    "\"%printer {...}\"", "\"%union {...}\"", "\"%left\"", "\"%right\"",
474    "\"%nonassoc\"", "\"%prec\"", "\"%dprec\"", "\"%merge\"", "\"%debug\"",    "\"%nonassoc\"", "\"%prec\"", "\"%dprec\"", "\"%merge\"", "\"%debug\"",
475    "\"%define\"", "\"%defines\"", "\"%error-verbose\"", "\"%expect\"",    "\"%define\"", "\"%defines\"", "\"%error-verbose\"", "\"%expect\"",
476    "\"%file-prefix\"", "\"%glr-parser\"", "\"%lex-param {...}\"",    "\"%file-prefix\"", "\"%glr-parser\"", "\"%initial-action {...}\"",
477    "\"%locations\"", "\"%name-prefix\"", "\"%no-lines\"",    "\"%lex-param {...}\"", "\"%locations\"", "\"%name-prefix\"",
478    "\"%nondeterministic-parser\"", "\"%output\"", "\"%parse-param {...}\"",    "\"%no-lines\"", "\"%nondeterministic-parser\"", "\"%output\"",
479    "\"%pure-parser\"", "\"%skeleton\"", "\"%start\"", "\"%token-table\"",    "\"%parse-param {...}\"", "\"%pure-parser\"", "\"%skeleton\"",
480    "\"%verbose\"", "\"%yacc\"", "\"type\"", "\"=\"", "\";\"", "\"|\"",    "\"%start\"", "\"%token-table\"", "\"%verbose\"", "\"%yacc\"",
481    "\"identifier\"", "\"identifier:\"", "\"%%\"", "\"%{...%}\"",    "\"type\"", "\"=\"", "\";\"", "\"|\"", "\"identifier\"",
482    "\"epilogue\"", "\"{...}\"", "$accept", "input", "declarations",    "\"identifier:\"", "\"%%\"", "\"%{...%}\"", "\"epilogue\"", "\"{...}\"",
483    "declaration", "grammar_declaration", "symbol_declaration", "@1", "@2",    "$accept", "input", "declarations", "declaration", "grammar_declaration",
484    "precedence_declaration", "precedence_declarator", "type.opt",    "symbol_declaration", "@1", "@2", "precedence_declaration",
485    "symbols.1", "symbol_def", "symbol_defs.1", "grammar",    "precedence_declarator", "type.opt", "symbols.1", "symbol_def",
486    "rules_or_grammar_declaration", "rules", "@3", "rhses.1", "rhs",    "symbol_defs.1", "grammar", "rules_or_grammar_declaration", "rules",
487    "symbol", "action", "string_as_id", "string_content", "epilogue.opt", 0    "@3", "rhses.1", "rhs", "symbol", "action", "string_as_id",
488      "string_content", "epilogue.opt", 0
489  };  };
490  #endif  #endif
491    
# Line 491  static const unsigned short yytoknum[] = Line 498  static const unsigned short yytoknum[] =
498       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
499       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
500       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
501       295,   296,   297,   298,   299,   300,   301       295,   296,   297,   298,   299,   300,   301,   302
502  };  };
503  # endif  # endif
504    
505  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
506  static const unsigned char yyr1[] =  static const unsigned char yyr1[] =
507  {  {
508         0,    47,    48,    49,    49,    50,    50,    50,    50,    50,         0,    48,    49,    50,    50,    51,    51,    51,    51,    51,
509        50,    50,    50,    50,    50,    50,    50,    50,    50,    50,        51,    51,    51,    51,    51,    51,    51,    51,    51,    51,
510        50,    50,    50,    50,    50,    50,    50,    51,    51,    51,        51,    51,    51,    51,    51,    51,    51,    51,    52,    52,
511        51,    51,    51,    53,    52,    54,    52,    52,    55,    56,        52,    52,    52,    52,    54,    53,    55,    53,    53,    56,
512        56,    56,    57,    57,    58,    58,    59,    59,    59,    59,        57,    57,    57,    58,    58,    59,    59,    60,    60,    60,
513        59,    60,    60,    61,    61,    62,    62,    62,    64,    63,        60,    60,    61,    61,    62,    62,    63,    63,    63,    65,
514        65,    65,    65,    66,    66,    66,    66,    66,    66,    67,        64,    66,    66,    66,    67,    67,    67,    67,    67,    67,
515        67,    68,    69,    70,    71,    71        68,    68,    69,    70,    71,    72,    72
516  };  };
517    
518  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
519  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
520  {  {
521         0,     2,     4,     0,     2,     1,     1,     1,     3,     1,         0,     2,     4,     0,     2,     1,     1,     1,     3,     1,
522         1,     2,     3,     1,     1,     1,     3,     1,     1,     3,         1,     2,     3,     1,     1,     1,     1,     3,     1,     1,
523         1,     1,     2,     1,     1,     1,     1,     1,     1,     2,         3,     1,     1,     2,     1,     1,     1,     1,     1,     1,
524         1,     2,     2,     0,     3,     0,     3,     3,     3,     1,         2,     1,     2,     2,     0,     3,     0,     3,     3,     3,
525         1,     1,     0,     1,     1,     2,     1,     1,     2,     2,         1,     1,     1,     0,     1,     1,     2,     1,     1,     2,
526         3,     1,     2,     1,     2,     1,     2,     2,     0,     3,         2,     3,     1,     2,     1,     2,     1,     2,     2,     0,
527         1,     3,     2,     0,     2,     2,     3,     3,     3,     1,         3,     1,     3,     2,     0,     2,     2,     3,     3,     3,
528         1,     1,     1,     1,     0,     2         1,     1,     1,     1,     1,     0,     2
529  };  };
530    
531  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
# Line 526  static const unsigned char yyr2[] = Line 533  static const unsigned char yyr2[] =
533     means the default is an error.  */     means the default is an error.  */
534  static const unsigned char yydefact[] =  static const unsigned char yydefact[] =
535  {  {
536         3,     0,     0,     1,    35,    33,     0,     0,     0,    30,         3,     0,     0,     1,    36,    34,     0,     0,     0,    31,
537        39,    40,    41,     7,     0,     9,    10,     0,     0,    13,        40,    41,    42,     7,     0,     9,    10,     0,     0,    13,
538        14,    15,     0,    17,    18,     0,    20,    21,     0,     0,        14,    15,    16,     0,    18,    19,     0,    21,    22,     0,
539        23,    24,    25,    26,     0,     6,     4,     5,    28,    27,         0,    24,    25,    26,    27,     0,     6,     4,     5,    29,
540        42,     0,     0,     0,    72,    69,    31,    44,    70,    32,        28,    43,     0,     0,     0,    73,    70,    32,    45,    71,
541        73,     0,    11,     0,     0,     0,    22,    29,     0,    58,        33,    74,     0,    11,     0,     0,     0,    23,    30,     0,
542         0,     0,    53,    55,    43,     0,    46,    47,    51,    36,        59,     0,     0,    54,    56,    44,     0,    47,    48,    52,
543        34,    37,    45,     8,    12,    16,    19,    57,    63,    56,        37,    35,    38,    46,     8,    12,    17,    20,    58,    64,
544         0,    54,     2,    38,    48,    49,    52,    59,    60,    75,        57,     0,    55,     2,    39,    49,    50,    53,    60,    61,
545        50,    62,    63,     0,     0,     0,    71,    64,    65,    61,        76,    51,    63,    64,     0,     0,     0,    72,    65,    66,
546        66,    67,    68        62,    67,    68,    69
547  };  };
548    
549  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
550  static const yysigned_char yydefgoto[] =  static const yysigned_char yydefgoto[] =
551  {  {
552        -1,     1,     2,    36,    60,    38,    42,    41,    39,    40,        -1,     1,     2,    37,    61,    39,    43,    42,    40,    41,
553        65,    46,    68,    69,    61,    62,    63,    78,    87,    88,        66,    47,    69,    70,    62,    63,    64,    79,    88,    89,
554        47,    98,    48,    51,    82        48,    99,    49,    52,    83
555  };  };
556    
557  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
# Line 552  static const yysigned_char yydefgoto[] = Line 559  static const yysigned_char yydefgoto[] =
559  #define YYPACT_NINF -64  #define YYPACT_NINF -64
560  static const yysigned_char yypact[] =  static const yysigned_char yypact[] =
561  {  {
562       -64,    32,   104,   -64,   -64,   -64,   -21,    16,    16,   -64,       -64,    21,   105,   -64,   -64,   -64,   -14,    -2,    -2,   -64,
563       -64,   -64,   -64,   -64,    30,   -64,   -64,    33,    -4,   -64,       -64,   -64,   -64,   -64,    25,   -64,   -64,    30,    -3,   -64,
564       -64,   -64,     0,   -64,   -64,     1,   -64,   -64,    30,    16,       -64,   -64,   -64,     0,   -64,   -64,     2,   -64,   -64,    25,
565       -64,   -64,   -64,   -64,    66,   -64,   -64,   -64,   -64,   -64,        -2,   -64,   -64,   -64,   -64,    66,   -64,   -64,   -64,   -64,
566         3,   -15,   -15,    16,   -64,   -64,    16,   -64,   -64,    16,       -64,     5,   -19,   -19,    -2,   -64,   -64,    -2,   -64,   -64,
567       -64,    30,   -64,    30,    30,    30,   -64,   -64,     4,   -64,        -2,   -64,    25,   -64,    25,    25,    25,   -64,   -64,    -5,
568         8,     2,   -64,   -64,   -64,    16,   -64,    21,   -64,   -15,       -64,     4,     3,   -64,   -64,   -64,    -2,   -64,    23,   -64,
569       -15,    16,   -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,       -19,   -19,    -2,   -64,   -64,   -64,   -64,   -64,   -64,   -64,
570         6,   -64,   -64,    16,    38,   -64,   -64,   -34,    15,   -64,       -64,    -1,   -64,   -64,    -2,    46,   -64,   -64,   -34,    15,
571       -64,   -64,   -64,    16,    48,    18,   -64,   -64,   -64,    15,       -64,   -64,   -64,   -64,    -2,    49,    17,   -64,   -64,   -64,
572       -64,   -64,   -64        15,   -64,   -64,   -64
573  };  };
574    
575  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
576  static const yysigned_char yypgoto[] =  static const yysigned_char yypgoto[] =
577  {  {
578       -64,   -64,   -64,   -64,    51,   -64,   -64,   -64,   -64,   -64,       -64,   -64,   -64,   -64,    54,   -64,   -64,   -64,   -64,   -64,
579       -64,    -7,   -42,    20,   -64,    -1,   -64,   -64,   -64,   -27,       -64,    -6,   -38,    18,   -64,     1,   -64,   -64,   -64,   -35,
580       -29,   -64,   -63,    -5,   -64       -30,   -64,   -63,    -4,   -64
581  };  };
582    
583  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
584     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
585     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
586     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
587  #define YYTABLE_NINF -75  #define YYTABLE_NINF -76
588  static const yysigned_char yytable[] =  static const yysigned_char yytable[] =
589  {  {
590        57,    49,   -74,    58,    85,    91,    92,     4,     5,     6,        58,    45,    50,   -75,    59,    86,    92,    93,     4,     5,
591         7,     8,     9,    10,    11,    12,    43,    72,    44,    44,         6,     7,     8,     9,    10,    11,    12,    73,    45,    67,
592        72,    90,    66,    56,    44,    84,    67,    86,    86,    93,        73,     3,    91,    68,    44,    57,    45,    85,    51,    94,
593        94,    95,     3,    50,    53,    29,    71,    52,    54,    55,        95,    96,    87,    87,    53,    78,    54,    30,    72,    55,
594        64,    44,    72,    77,    59,    80,    73,    79,    74,    75,        46,    56,    73,    65,    80,    90,    60,    81,    74,    45,
595        76,    89,   101,    37,    72,   102,    45,    45,    83,    97,        75,    76,    77,   102,    73,   103,    38,    46,   100,    98,
596        81,    96,    70,     0,   100,    99,     0,    58,     0,     0,        84,    71,    97,    82,   101,     0,     0,    59,     0,     0,
597        97,     4,     5,     6,     7,     8,     9,    10,    11,    12,        98,     4,     5,     6,     7,     8,     9,    10,    11,    12,
598         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
599         0,     0,     0,     0,     0,     0,     0,     0,     0,    29,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
600         0,     0,     0,     0,     0,     0,     0,     0,    59,     4,        30,     0,     0,     0,     0,     0,     0,     0,     0,    60,
601         5,     6,     7,     8,     9,    10,    11,    12,     0,     0,         4,     5,     6,     7,     8,     9,    10,    11,    12,     0,
602         0,    13,    14,    15,    16,    17,    18,    19,    20,    21,         0,     0,    13,    14,    15,    16,    17,    18,    19,    20,
603        22,    23,    24,    25,    26,    27,    28,    29,    30,    31,        21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
604        32,     0,     0,    33,     0,     0,     0,    34,    35        31,    32,    33,     0,     0,    34,     0,     0,     0,    35,
605          36
606  };  };
607    
608  static const yysigned_char yycheck[] =  static const yysigned_char yycheck[] =
609  {  {
610        29,     8,     0,     1,    67,    39,    40,     5,     6,     7,        30,     3,     8,     0,     1,    68,    40,    41,     5,     6,
611         8,     9,    10,    11,    12,    13,    37,    46,     3,     3,         7,     8,     9,    10,    11,    12,    13,    47,     3,    38,
612        49,    84,    37,    28,     3,     4,    41,    69,    70,    14,        50,     0,    85,    42,    38,    29,     3,     4,     3,    14,
613        15,    16,     0,     3,    38,    33,    43,     4,    38,    38,        15,    16,    70,    71,     4,    40,    39,    34,    44,    39,
614        37,     3,    71,    39,    42,    43,    51,    39,    53,    54,        42,    39,    72,    38,    40,    46,    43,    44,    52,     3,
615        55,    45,     4,     2,    83,    37,    41,    41,    65,    88,        54,    55,    56,     4,    84,    38,     2,    42,    93,    89,
616        61,    46,    42,    -1,    93,    92,    -1,     1,    -1,    -1,        66,    43,    47,    62,    94,    -1,    -1,     1,    -1,    -1,
617        99,     5,     6,     7,     8,     9,    10,    11,    12,    13,       100,     5,     6,     7,     8,     9,    10,    11,    12,    13,
618          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
619        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
620        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,        34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
621        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,     5,         5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
622         6,     7,     8,     9,    10,    11,    12,    13,    -1,    -1,        -1,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
623        -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
624        26,    27,    28,    29,    30,    31,    32,    33,    34,    35,        35,    36,    37,    -1,    -1,    40,    -1,    -1,    -1,    44,
625        36,    -1,    -1,    39,    -1,    -1,    -1,    43,    44        45
626  };  };
627    
628  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
629     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
630  static const unsigned char yystos[] =  static const unsigned char yystos[] =
631  {  {
632         0,    48,    49,     0,     5,     6,     7,     8,     9,    10,         0,    49,    50,     0,     5,     6,     7,     8,     9,    10,
633        11,    12,    13,    17,    18,    19,    20,    21,    22,    23,        11,    12,    13,    17,    18,    19,    20,    21,    22,    23,
634        24,    25,    26,    27,    28,    29,    30,    31,    32,    33,        24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
635        34,    35,    36,    39,    43,    44,    50,    51,    52,    55,        34,    35,    36,    37,    40,    44,    45,    51,    52,    53,
636        56,    54,    53,    37,     3,    41,    58,    67,    69,    58,        56,    57,    55,    54,    38,     3,    42,    59,    68,    70,
637         3,    70,     4,    38,    38,    38,    70,    67,     1,    42,        59,     3,    71,     4,    39,    39,    39,    71,    68,     1,
638        51,    61,    62,    63,    37,    57,    37,    41,    59,    60,        43,    52,    62,    63,    64,    38,    58,    38,    42,    60,
639        60,    58,    67,    70,    70,    70,    70,    39,    64,    39,        61,    61,    59,    68,    71,    71,    71,    71,    40,    65,
640        43,    62,    71,    58,     4,    69,    59,    65,    66,    45,        40,    44,    63,    72,    59,     4,    70,    60,    66,    67,
641        69,    39,    40,    14,    15,    16,    46,    67,    68,    66,        46,    70,    40,    41,    14,    15,    16,    47,    68,    69,
642        67,     4,    37        67,    68,     4,    38
643  };  };
644    
645  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 691  while (0) Line 700  while (0)
700     are run).  */     are run).  */
701    
702  #ifndef YYLLOC_DEFAULT  #ifndef YYLLOC_DEFAULT
703  # define YYLLOC_DEFAULT(Current, Rhs, N)         \  # define YYLLOC_DEFAULT(Current, Rhs, N)                \
704    Current.first_line   = Rhs[1].first_line;      \     ((Current).first_line   = (Rhs)[1].first_line,       \
705    Current.first_column = Rhs[1].first_column;    \      (Current).first_column = (Rhs)[1].first_column,     \
706    Current.last_line    = Rhs[N].last_line;       \      (Current).last_line    = (Rhs)[N].last_line,        \
707    Current.last_column  = Rhs[N].last_column;      (Current).last_column  = (Rhs)[N].last_column)
708  #endif  #endif
709    
710  /* YYLEX -- calling `yylex' with the right arguments.  */  /* YYLEX -- calling `yylex' with the right arguments.  */
# Line 739  do {                                                           \ Line 748  do {                                                           \
748    
749  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
750  | yy_stack_print -- Print the state stack from its BOTTOM up to its |  | yy_stack_print -- Print the state stack from its BOTTOM up to its |
751  | TOP (cinluded).                                                   |  | TOP (included).                                                   |
752  `------------------------------------------------------------------*/  `------------------------------------------------------------------*/
753    
754  #if defined (__STDC__) || defined (__cplusplus)  #if defined (__STDC__) || defined (__cplusplus)
# Line 1065  YYLTYPE yylloc; Line 1074  YYLTYPE yylloc;
1074    yyssp = yyss;    yyssp = yyss;
1075    yyvsp = yyvs;    yyvsp = yyvs;
1076    yylsp = yyls;    yylsp = yyls;
1077    
1078      /* User initialization code. */
1079      #line 70 "parse-gram.y"
1080    {
1081      /* Bison's grammar can initial empty locations, hence a default
1082         location is needed. */
1083      (*yylsp).start.file   = (*yylsp).end.file   = current_file;
1084      (*yylsp).start.line   = (*yylsp).end.line   = 1;
1085      (*yylsp).start.column = (*yylsp).end.column = 0;
1086    }
1087    /* Line 818 of yacc.c.  */
1088    #line 1089 "parse-gram.c"
1089    goto yysetstate;    goto yysetstate;
1090    
1091  /*------------------------------------------------------------.  /*------------------------------------------------------------.
# Line 1247  yyreduce: Line 1268  yyreduce:
1268    yyval = yyvsp[1-yylen];    yyval = yyvsp[1-yylen];
1269    
1270    /* Default location. */    /* Default location. */
1271    YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);    YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);
1272    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
1273    switch (yyn)    switch (yyn)
1274      {      {
1275          case 6:          case 6:
1276  #line 177 "parse-gram.y"  #line 185 "parse-gram.y"
1277      { prologue_augment (yyvsp[0].chars, yylsp[0]); }      { prologue_augment (yyvsp[0].chars, yylsp[0]); }
1278      break;      break;
1279    
1280    case 7:    case 7:
1281  #line 178 "parse-gram.y"  #line 186 "parse-gram.y"
1282      { debug_flag = true; }      { debug_flag = true; }
1283      break;      break;
1284    
1285    case 8:    case 8:
1286  #line 179 "parse-gram.y"  #line 187 "parse-gram.y"
1287      { muscle_insert (yyvsp[-1].chars, yyvsp[0].chars); }      { muscle_insert (yyvsp[-1].chars, yyvsp[0].chars); }
1288      break;      break;
1289    
1290    case 9:    case 9:
1291  #line 180 "parse-gram.y"  #line 188 "parse-gram.y"
1292      { defines_flag = true; }      { defines_flag = true; }
1293      break;      break;
1294    
1295    case 10:    case 10:
1296  #line 181 "parse-gram.y"  #line 189 "parse-gram.y"
1297      { error_verbose = true; }      { error_verbose = true; }
1298      break;      break;
1299    
1300    case 11:    case 11:
1301  #line 182 "parse-gram.y"  #line 190 "parse-gram.y"
1302      { expected_conflicts = yyvsp[0].integer; }      { expected_conflicts = yyvsp[0].integer; }
1303      break;      break;
1304    
1305    case 12:    case 12:
1306  #line 183 "parse-gram.y"  #line 191 "parse-gram.y"
1307      { spec_file_prefix = yyvsp[0].chars; }      { spec_file_prefix = yyvsp[0].chars; }
1308      break;      break;
1309    
1310    case 13:    case 13:
1311  #line 184 "parse-gram.y"  #line 193 "parse-gram.y"
1312      { nondeterministic_parser = true;      {
1313                                               glr_parser = true; }      nondeterministic_parser = true;
1314        glr_parser = true;
1315      }
1316      break;      break;
1317    
1318    case 14:    case 14:
1319  #line 186 "parse-gram.y"  #line 198 "parse-gram.y"
1320      { add_param ("lex_param", yyvsp[0].chars, yylsp[0]); }      {
1321        muscle_code_grow ("initial_action", yyvsp[0].chars, yylsp[0]);
1322      }
1323      break;      break;
1324    
1325    case 15:    case 15:
1326  #line 187 "parse-gram.y"  #line 201 "parse-gram.y"
1327      { locations_flag = true; }      { add_param ("lex_param", yyvsp[0].chars, yylsp[0]); }
1328      break;      break;
1329    
1330    case 16:    case 16:
1331  #line 188 "parse-gram.y"  #line 202 "parse-gram.y"
1332      { spec_name_prefix = yyvsp[0].chars; }      { locations_flag = true; }
1333      break;      break;
1334    
1335    case 17:    case 17:
1336  #line 189 "parse-gram.y"  #line 203 "parse-gram.y"
1337      { no_lines_flag = true; }      { spec_name_prefix = yyvsp[0].chars; }
1338      break;      break;
1339    
1340    case 18:    case 18:
1341  #line 190 "parse-gram.y"  #line 204 "parse-gram.y"
1342      { nondeterministic_parser = true; }      { no_lines_flag = true; }
1343      break;      break;
1344    
1345    case 19:    case 19:
1346  #line 191 "parse-gram.y"  #line 205 "parse-gram.y"
1347      { spec_outfile = yyvsp[0].chars; }      { nondeterministic_parser = true; }
1348      break;      break;
1349    
1350    case 20:    case 20:
1351  #line 192 "parse-gram.y"  #line 206 "parse-gram.y"
1352      { add_param ("parse_param", yyvsp[0].chars, yylsp[0]); }      { spec_outfile = yyvsp[0].chars; }
1353      break;      break;
1354    
1355    case 21:    case 21:
1356  #line 193 "parse-gram.y"  #line 207 "parse-gram.y"
1357      { pure_parser = true; }      { add_param ("parse_param", yyvsp[0].chars, yylsp[0]); }
1358      break;      break;
1359    
1360    case 22:    case 22:
1361  #line 194 "parse-gram.y"  #line 208 "parse-gram.y"
1362      { skeleton = yyvsp[0].chars; }      { pure_parser = true; }
1363      break;      break;
1364    
1365    case 23:    case 23:
1366  #line 195 "parse-gram.y"  #line 209 "parse-gram.y"
1367      { token_table_flag = true; }      { skeleton = yyvsp[0].chars; }
1368      break;      break;
1369    
1370    case 24:    case 24:
1371  #line 196 "parse-gram.y"  #line 210 "parse-gram.y"
1372      { report_flag = report_states; }      { token_table_flag = true; }
1373      break;      break;
1374    
1375    case 25:    case 25:
1376  #line 197 "parse-gram.y"  #line 211 "parse-gram.y"
1377        { report_flag = report_states; }
1378        break;
1379    
1380      case 26:
1381    #line 212 "parse-gram.y"
1382      { yacc_flag = true; }      { yacc_flag = true; }
1383      break;      break;
1384    
1385    case 29:    case 30:
1386  #line 205 "parse-gram.y"  #line 220 "parse-gram.y"
1387      {      {
1388        grammar_start_symbol_set (yyvsp[0].symbol, yylsp[0]);        grammar_start_symbol_set (yyvsp[0].symbol, yylsp[0]);
1389      }      }
1390      break;      break;
1391    
1392    case 30:    case 31:
1393  #line 209 "parse-gram.y"  #line 224 "parse-gram.y"
1394      {      {
1395        typed = true;        typed = true;
1396        MUSCLE_INSERT_INT ("stype_line", yylsp[0].start.line);        MUSCLE_INSERT_INT ("stype_line", yylsp[0].start.line);
# Line 1368  yyreduce: Line 1398  yyreduce:
1398      }      }
1399      break;      break;
1400    
1401    case 31:    case 32:
1402  #line 215 "parse-gram.y"  #line 230 "parse-gram.y"
1403      {      {
1404        symbol_list *list;        symbol_list *list;
1405        for (list = yyvsp[0].list; list; list = list->next)        for (list = yyvsp[0].list; list; list = list->next)
# Line 1378  yyreduce: Line 1408  yyreduce:
1408      }      }
1409      break;      break;
1410    
1411    case 32:    case 33:
1412  #line 222 "parse-gram.y"  #line 237 "parse-gram.y"
1413      {      {
1414        symbol_list *list;        symbol_list *list;
1415        for (list = yyvsp[0].list; list; list = list->next)        for (list = yyvsp[0].list; list; list = list->next)
# Line 1388  yyreduce: Line 1418  yyreduce:
1418      }      }
1419      break;      break;
1420    
1421    case 33:    case 34:
1422  #line 231 "parse-gram.y"  #line 246 "parse-gram.y"
1423      { current_class = nterm_sym; }      { current_class = nterm_sym; }
1424      break;      break;
1425    
1426    case 34:    case 35:
1427  #line 232 "parse-gram.y"  #line 247 "parse-gram.y"
1428      {      {
1429        current_class = unknown_sym;        current_class = unknown_sym;
1430        current_type = NULL;        current_type = NULL;
1431      }      }
1432      break;      break;
1433    
1434    case 35:    case 36:
1435  #line 236 "parse-gram.y"  #line 251 "parse-gram.y"
1436      { current_class = token_sym; }      { current_class = token_sym; }
1437      break;      break;
1438    
1439    case 36:    case 37:
1440  #line 237 "parse-gram.y"  #line 252 "parse-gram.y"
1441      {      {
1442        current_class = unknown_sym;        current_class = unknown_sym;
1443        current_type = NULL;        current_type = NULL;
1444      }      }
1445      break;      break;
1446    
1447    case 37:    case 38:
1448  #line 242 "parse-gram.y"  #line 257 "parse-gram.y"
1449      {      {
1450        symbol_list *list;        symbol_list *list;
1451        for (list = yyvsp[0].list; list; list = list->next)        for (list = yyvsp[0].list; list; list = list->next)
# Line 1424  yyreduce: Line 1454  yyreduce:
1454      }      }
1455      break;      break;
1456    
1457    case 38:    case 39:
1458  #line 252 "parse-gram.y"  #line 267 "parse-gram.y"
1459      {      {
1460        symbol_list *list;        symbol_list *list;
1461        ++current_prec;        ++current_prec;
# Line 1439  yyreduce: Line 1469  yyreduce:
1469      }      }
1470      break;      break;
1471    
1472    case 39:    case 40:
1473  #line 266 "parse-gram.y"  #line 281 "parse-gram.y"
1474      { yyval.assoc = left_assoc; }      { yyval.assoc = left_assoc; }
1475      break;      break;
1476    
1477    case 40:    case 41:
1478  #line 267 "parse-gram.y"  #line 282 "parse-gram.y"
1479      { yyval.assoc = right_assoc; }      { yyval.assoc = right_assoc; }
1480      break;      break;
1481    
1482    case 41:    case 42:
1483  #line 268 "parse-gram.y"  #line 283 "parse-gram.y"
1484      { yyval.assoc = non_assoc; }      { yyval.assoc = non_assoc; }
1485      break;      break;
1486    
1487    case 42:    case 43:
1488  #line 272 "parse-gram.y"  #line 287 "parse-gram.y"
1489      { current_type = NULL; }      { current_type = NULL; }
1490      break;      break;
1491    
1492    case 43:    case 44:
1493  #line 273 "parse-gram.y"  #line 288 "parse-gram.y"
1494      { current_type = yyvsp[0].uniqstr; }      { current_type = yyvsp[0].uniqstr; }
1495      break;      break;
1496    
1497    case 44:    case 45:
1498  #line 279 "parse-gram.y"  #line 294 "parse-gram.y"
1499      { yyval.list = symbol_list_new (yyvsp[0].symbol, yylsp[0]); }      { yyval.list = symbol_list_new (yyvsp[0].symbol, yylsp[0]); }
1500      break;      break;
1501    
1502    case 45:    case 46:
1503  #line 280 "parse-gram.y"  #line 295 "parse-gram.y"
1504      { yyval.list = symbol_list_prepend (yyvsp[-1].list, yyvsp[0].symbol, yylsp[0]); }      { yyval.list = symbol_list_prepend (yyvsp[-1].list, yyvsp[0].symbol, yylsp[0]); }
1505      break;      break;
1506    
1507    case 46:    case 47:
1508  #line 286 "parse-gram.y"  #line 301 "parse-gram.y"
1509      {      {
1510         current_type = yyvsp[0].uniqstr;         current_type = yyvsp[0].uniqstr;
1511       }       }
1512      break;      break;
1513    
1514    case 47:    case 48:
1515  #line 290 "parse-gram.y"  #line 305 "parse-gram.y"
1516      {      {
1517         symbol_class_set (yyvsp[0].symbol, current_class, yylsp[0]);         symbol_class_set (yyvsp[0].symbol, current_class, yylsp[0]);
1518         symbol_type_set (yyvsp[0].symbol, current_type, yylsp[0]);         symbol_type_set (yyvsp[0].symbol, current_type, yylsp[0]);
1519       }       }
1520      break;      break;
1521    
1522    case 48:    case 49:
1523  #line 295 "parse-gram.y"  #line 310 "parse-gram.y"
1524      {      {
1525        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);
1526        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);
# Line 1498  yyreduce: Line 1528  yyreduce:
1528      }      }
1529      break;      break;
1530    
1531    case 49:    case 50:
1532  #line 301 "parse-gram.y"  #line 316 "parse-gram.y"
1533      {      {
1534        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);
1535        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);
# Line 1507  yyreduce: Line 1537  yyreduce:
1537      }      }
1538      break;      break;
1539    
1540    case 50:    case 51:
1541  #line 307 "parse-gram.y"  #line 322 "parse-gram.y"
1542      {      {
1543        symbol_class_set (yyvsp[-2].symbol, current_class, yylsp[-2]);        symbol_class_set (yyvsp[-2].symbol, current_class, yylsp[-2]);
1544        symbol_type_set (yyvsp[-2].symbol, current_type, yylsp[-2]);        symbol_type_set (yyvsp[-2].symbol, current_type, yylsp[-2]);
# Line 1517  yyreduce: Line 1547  yyreduce:
1547      }      }
1548      break;      break;
1549    
1550    case 56:    case 57:
1551  #line 336 "parse-gram.y"  #line 351 "parse-gram.y"
1552      {      {
1553        if (yacc_flag)        if (yacc_flag)
1554          complain_at (yyloc, _("POSIX forbids declarations in the grammar"));          complain_at (yyloc, _("POSIX forbids declarations in the grammar"));
1555      }      }
1556      break;      break;
1557    
1558    case 57:    case 58:
1559  #line 341 "parse-gram.y"  #line 356 "parse-gram.y"
1560      {      {
1561        yyerrok;        yyerrok;
1562      }      }
1563      break;      break;
1564    
1565    case 58:    case 59:
1566  #line 347 "parse-gram.y"  #line 362 "parse-gram.y"
1567      { current_lhs = yyvsp[0].symbol; current_lhs_location = yylsp[0]; }      { current_lhs = yyvsp[0].symbol; current_lhs_location = yylsp[0]; }
1568      break;      break;
1569    
1570    case 60:    case 61:
1571  #line 351 "parse-gram.y"  #line 366 "parse-gram.y"
1572      { grammar_rule_end (yylsp[0]); }      { grammar_rule_end (yylsp[0]); }
1573      break;      break;
1574    
1575    case 61:    case 62:
1576  #line 352 "parse-gram.y"  #line 367 "parse-gram.y"
1577      { grammar_rule_end (yylsp[0]); }      { grammar_rule_end (yylsp[0]); }
1578      break;      break;
1579    
1580    case 63:    case 64:
1581  #line 358 "parse-gram.y"  #line 373 "parse-gram.y"
1582      { grammar_rule_begin (current_lhs, current_lhs_location); }      { grammar_rule_begin (current_lhs, current_lhs_location); }
1583      break;      break;
1584    
1585    case 64:    case 65:
1586  #line 360 "parse-gram.y"  #line 375 "parse-gram.y"
1587      { grammar_current_rule_symbol_append (yyvsp[0].symbol, yylsp[0]); }      { grammar_current_rule_symbol_append (yyvsp[0].symbol, yylsp[0]); }
1588      break;      break;
1589    
1590    case 65:    case 66:
1591  #line 362 "parse-gram.y"  #line 377 "parse-gram.y"
1592      { grammar_current_rule_action_append (yyvsp[0].chars, yylsp[0]); }      { grammar_current_rule_action_append (yyvsp[0].chars, yylsp[0]); }
1593      break;      break;
1594    
1595    case 66:    case 67:
1596  #line 364 "parse-gram.y"  #line 379 "parse-gram.y"
1597      { grammar_current_rule_prec_set (yyvsp[0].symbol, yylsp[0]); }      { grammar_current_rule_prec_set (yyvsp[0].symbol, yylsp[0]); }
1598      break;      break;
1599    
1600    case 67:    case 68:
1601  #line 366 "parse-gram.y"  #line 381 "parse-gram.y"
1602      { grammar_current_rule_dprec_set (yyvsp[0].integer, yylsp[0]); }      { grammar_current_rule_dprec_set (yyvsp[0].integer, yylsp[0]); }
1603      break;      break;
1604    
1605    case 68:    case 69:
1606  #line 368 "parse-gram.y"  #line 383 "parse-gram.y"
1607      { grammar_current_rule_merge_set (yyvsp[0].uniqstr, yylsp[0]); }      { grammar_current_rule_merge_set (yyvsp[0].uniqstr, yylsp[0]); }
1608      break;      break;
1609    
1610    case 69:    case 70:
1611  #line 372 "parse-gram.y"  #line 387 "parse-gram.y"
1612      { yyval.symbol = yyvsp[0].symbol; }      { yyval.symbol = yyvsp[0].symbol; }
1613      break;      break;
1614    
1615    case 70:    case 71:
1616  #line 373 "parse-gram.y"  #line 388 "parse-gram.y"
1617      { yyval.symbol = yyvsp[0].symbol; }      { yyval.symbol = yyvsp[0].symbol; }
1618      break;      break;
1619    
1620    case 71:    case 72:
1621  #line 378 "parse-gram.y"  #line 393 "parse-gram.y"
1622      { yyval.chars = yyvsp[0].chars; }      { yyval.chars = yyvsp[0].chars; }
1623      break;      break;
1624    
1625    case 72:    case 73:
1626  #line 384 "parse-gram.y"  #line 399 "parse-gram.y"
1627      {      {
1628        yyval.symbol = symbol_get (yyvsp[0].chars, yylsp[0]);        yyval.symbol = symbol_get (yyvsp[0].chars, yylsp[0]);
1629        symbol_class_set (yyval.symbol, token_sym, yylsp[0]);        symbol_class_set (yyval.symbol, token_sym, yylsp[0]);
1630      }      }
1631      break;      break;
1632    
1633    case 73:    case 74:
1634  #line 393 "parse-gram.y"  #line 408 "parse-gram.y"
1635      {      {
1636        yyval.chars = yyvsp[0].chars + 1;        yyval.chars = yyvsp[0].chars + 1;
1637        yyval.chars[strlen (yyval.chars) - 1] = '\0';        yyval.chars[strlen (yyval.chars) - 1] = '\0';
1638      }      }
1639      break;      break;
1640    
1641    case 75:    case 76:
1642  #line 402 "parse-gram.y"  #line 417 "parse-gram.y"
1643      {      {
1644        epilogue_augment (yyvsp[0].chars, yylsp[0]);        muscle_code_grow ("epilogue", yyvsp[0].chars, yylsp[0]);
1645        scanner_last_string_free ();        scanner_last_string_free ();
1646      }      }
1647      break;      break;
# Line 1619  yyreduce: Line 1649  yyreduce:
1649    
1650      }      }
1651    
1652  /* Line 993 of yacc.c.  */  /* Line 1010 of yacc.c.  */
1653  #line 1624 "parse-gram.c"  #line 1654 "parse-gram.c"
1654    
1655    yyvsp -= yylen;    yyvsp -= yylen;
1656    yyssp -= yylen;    yyssp -= yylen;
# Line 1809  yyerrlab1: Line 1839  yyerrlab1:
1839    YYDPRINTF ((stderr, "Shifting error token, "));    YYDPRINTF ((stderr, "Shifting error token, "));
1840    
1841    *++yyvsp = yylval;    *++yyvsp = yylval;
1842    YYLLOC_DEFAULT (yyloc, yylsp, (yylerrsp - yylsp));    YYLLOC_DEFAULT (yyloc, yylsp, yylerrsp - yylsp);
1843    *++yylsp = yyloc;    *++yylsp = yyloc;
1844    
1845    yystate = yyn;    yystate = yyn;
# Line 1849  yyreturn: Line 1879  yyreturn:
1879  }  }
1880    
1881    
1882  #line 408 "parse-gram.y"  #line 423 "parse-gram.y"
1883    
1884    
1885    

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26