/[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.4 by akim, Fri Jun 14 17:35:45 2002 UTC revision 1.5 by akim, Fri Jun 14 17:36:44 2002 UTC
# Line 124  typedef struct yyltype Line 124  typedef struct yyltype
124    
125    
126    
127  #define YYFINAL         94  #define YYFINAL         95
128  #define YYFLAG          -32768  #define YYFLAG          -32768
129  #define YYNTBASE        41  #define YYNTBASE        41
130    
131  /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */  /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
132  #define YYTRANSLATE(x) ((unsigned)(x) <= 293 ? yytranslate[x] : 68)  #define YYTRANSLATE(x) ((unsigned)(x) <= 293 ? yytranslate[x] : 69)
133    
134  /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */  /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
135  static const char yytranslate[] =  static const char yytranslate[] =
# Line 171  static const short yyprhs[] = Line 171  static const short yyprhs[] =
171  {  {
172         0,     0,     1,     7,     8,    11,    13,    15,    17,    21,         0,     0,     1,     7,     8,    11,    13,    15,    17,    21,
173        23,    25,    28,    32,    34,    38,    40,    44,    46,    49,        23,    25,    28,    32,    34,    38,    40,    44,    46,    49,
174        51,    53,    55,    57,    58,    62,    65,    66,    70,    71,        51,    53,    55,    57,    59,    62,    66,    67,    71,    72,
175        76,    80,    81,    86,    88,    90,    92,    93,    95,    97,        76,    77,    82,    83,    88,    90,    92,    94,    95,    97,
176       100,   102,   105,   107,   109,   112,   115,   119,   121,   124,        99,   102,   104,   107,   109,   111,   114,   117,   121,   123,
177       126,   129,   130,   136,   138,   142,   143,   146,   149,   153,       126,   128,   131,   132,   138,   140,   144,   145,   148,   151,
178       155,   157,   159,   161,   163,   165,   166,   169,   170       155,   157,   159,   161,   163,   165,   167,   168,   171,   172
179  };  };
180  static const short yyrhs[] =  static const short yyrhs[] =
181  {  {
182        -1,    42,    43,    37,    57,    66,     0,     0,    43,    44,        -1,    42,    43,    37,    58,    67,     0,     0,    43,    44,
183         0,    45,     0,    38,     0,    26,     0,    22,    65,    65,         0,    45,     0,    38,     0,    26,     0,    22,    66,    66,
184         0,    24,     0,    18,     0,    11,     6,     0,    20,    32,         0,    24,     0,    18,     0,    11,     6,     0,    20,    32,
185        65,     0,    27,     0,    21,    32,    65,     0,    28,     0,        66,     0,    27,     0,    21,    32,    66,     0,    28,     0,
186        19,    32,    65,     0,    23,     0,    29,    65,     0,    30,        19,    32,    66,     0,    23,     0,    29,    66,     0,    30,
187         0,    17,     0,    25,     0,    49,     0,     0,     8,    46,         0,    17,     0,    25,     0,    50,     0,    46,     0,    12,
188        56,     0,    12,    62,     0,     0,     7,    47,    56,     0,        63,     0,    10,    40,    68,     0,     0,     8,    47,    57,
189         0,     9,    31,    48,    53,     0,    10,    40,    67,     0,         0,     0,     7,    48,    57,     0,     0,     9,    31,    49,
190         0,    51,    52,    50,    54,     0,    13,     0,    14,     0,        54,     0,     0,    52,    53,    51,    55,     0,    13,     0,
191        15,     0,     0,    31,     0,    36,     0,    53,    36,     0,        14,     0,    15,     0,     0,    31,     0,    36,     0,    54,
192        62,     0,    54,    62,     0,    31,     0,    36,     0,    36,        36,     0,    63,     0,    55,    63,     0,    31,     0,    36,
193         6,     0,    36,    64,     0,    36,     6,    64,     0,    55,         0,    36,     6,     0,    36,    65,     0,    36,     6,    65,
194         0,    56,    55,     0,    58,     0,    57,    58,     0,     0,         0,    56,     0,    57,    56,     0,    59,     0,    58,    59,
195        36,    34,    59,    60,    33,     0,    61,     0,    60,    35,         0,     0,    36,    34,    60,    61,    33,     0,    62,     0,
196        61,     0,     0,    61,    62,     0,    61,    63,     0,    61,        61,    35,    62,     0,     0,    62,    63,     0,    62,    64,
197        16,    62,     0,    36,     0,    64,     0,     5,     0,    40,         0,    62,    16,    63,     0,    36,     0,    65,     0,     5,
198         0,     4,     0,     4,     0,     0,    37,    39,     0,     0,         0,    40,     0,     4,     0,     4,     0,     0,    37,    39,
199        33,     0         0,     0,    33,     0
200  };  };
201    
202  #endif  #endif
# Line 205  static const short yyrhs[] = Line 205  static const short yyrhs[] =
205  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
206  static const short yyrline[] =  static const short yyrline[] =
207  {  {
208         0,   132,   132,   140,   142,   145,   147,   151,   152,   153,         0,   134,   134,   147,   149,   152,   154,   155,   156,   157,
209       154,   155,   156,   157,   158,   159,   160,   161,   162,   163,       158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
210       164,   165,   168,   170,   170,   175,   179,   179,   184,   184,       168,   169,   172,   174,   175,   179,   187,   187,   193,   193,
211       188,   196,   196,   203,   205,   206,   209,   211,   215,   217,       198,   198,   204,   204,   211,   213,   214,   217,   219,   223,
212       221,   227,   236,   241,   246,   252,   258,   268,   271,   275,       225,   229,   235,   243,   248,   253,   259,   265,   275,   278,
213       277,   280,   280,   285,   287,   290,   293,   295,   297,   301,       287,   289,   292,   292,   297,   299,   302,   305,   307,   309,
214       303,   304,   307,   313,   322,   330,   335,   341,   343       313,   315,   316,   319,   325,   334,   342,   347,   353,   355
215  };  };
216  #endif  #endif
217    
# Line 229  static const char *const yytname[] = Line 229  static const char *const yytname[] =
229    "\"%pure-parser\"", "\"%defines\"", "\"%yacc\"", "\"%debug\"",    "\"%pure-parser\"", "\"%defines\"", "\"%yacc\"", "\"%debug\"",
230    "\"%locations\"", "\"%no-lines\"", "\"%skeleton\"", "\"%token-table\"",    "\"%locations\"", "\"%no-lines\"", "\"%skeleton\"", "\"%token-table\"",
231    "TYPE", "\"=\"", "\";\"", "\":\"", "\"|\"", "\"identifier\"", "\"%%\"",    "TYPE", "\"=\"", "\";\"", "\":\"", "\"|\"", "\"identifier\"", "\"%%\"",
232    "PROLOGUE", "EPILOGUE", "BRACED_CODE", "input", "@1", "directives",    "PROLOGUE", "EPILOGUE", "BRACED_CODE", "input", "@1", "declarations",
233    "directive", "grammar_directives", "@2", "@3", "@4",    "declaration", "grammar_declaration", "symbol_declaration", "@2", "@3",
234    "precedence_directives", "@5", "precedence_directive", "type.opt",    "@4", "precedence_declaration", "@5", "precedence_declarator",
235    "nterms_to_type.1", "terms_to_prec.1", "symbol_def", "symbol_defs.1",    "type.opt", "nterms_to_type.1", "terms_to_prec.1", "symbol_def",
236    "gram", "rules", "@6", "rhses.1", "rhs", "symbol", "action",    "symbol_defs.1", "grammar", "rules", "@6", "rhses.1", "rhs", "symbol",
237    "string_as_id", "string_content", "epilogue.opt", "semi_colon_opt", 0    "action", "string_as_id", "string_content", "epilogue.opt",
238      "semi_colon_opt", 0
239  };  };
240  #endif  #endif
241    
# Line 243  static const short yyr1[] = Line 244  static const short yyr1[] =
244  {  {
245         0,    42,    41,    43,    43,    44,    44,    44,    44,    44,         0,    42,    41,    43,    43,    44,    44,    44,    44,    44,
246        44,    44,    44,    44,    44,    44,    44,    44,    44,    44,        44,    44,    44,    44,    44,    44,    44,    44,    44,    44,
247        44,    44,    45,    46,    45,    45,    47,    45,    48,    45,        44,    44,    45,    45,    45,    45,    47,    46,    48,    46,
248        45,    50,    49,    51,    51,    51,    52,    52,    53,    53,        49,    46,    51,    50,    52,    52,    52,    53,    53,    54,
249        54,    54,    55,    55,    55,    55,    55,    56,    56,    57,        54,    55,    55,    56,    56,    56,    56,    56,    57,    57,
250        57,    59,    58,    60,    60,    61,    61,    61,    61,    62,        58,    58,    60,    59,    61,    61,    62,    62,    62,    62,
251        62,    62,    63,    64,    65,    66,    66,    67,    67        63,    63,    63,    64,    65,    66,    67,    67,    68,    68
252  };  };
253    
254  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
# Line 255  static const short yyr2[] = Line 256  static const short yyr2[] =
256  {  {
257         0,     0,     5,     0,     2,     1,     1,     1,     3,     1,         0,     0,     5,     0,     2,     1,     1,     1,     3,     1,
258         1,     2,     3,     1,     3,     1,     3,     1,     2,     1,         1,     2,     3,     1,     3,     1,     3,     1,     2,     1,
259         1,     1,     1,     0,     3,     2,     0,     3,     0,     4,         1,     1,     1,     1,     2,     3,     0,     3,     0,     3,
260         3,     0,     4,     1,     1,     1,     0,     1,     1,     2,         0,     4,     0,     4,     1,     1,     1,     0,     1,     1,
261         1,     2,     1,     1,     2,     2,     3,     1,     2,     1,         2,     1,     2,     1,     1,     2,     2,     3,     1,     2,
262         2,     0,     5,     1,     3,     0,     2,     2,     3,     1,         1,     2,     0,     5,     1,     3,     0,     2,     2,     3,
263         1,     1,     1,     1,     1,     0,     2,     0,     1         1,     1,     1,     1,     1,     1,     0,     2,     0,     1
264  };  };
265    
266  /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE  /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
# Line 267  static const short yyr2[] = Line 268  static const short yyr2[] =
268     error. */     error. */
269  static const short yydefact[] =  static const short yydefact[] =
270  {  {
271         1,     3,     0,    26,    23,     0,     0,     0,     0,    33,         1,     3,     0,    28,    26,     0,     0,     0,     0,    34,
272        34,    35,    20,    10,     0,     0,     0,     0,    17,     9,        35,    36,    20,    10,     0,     0,     0,     0,    17,     9,
273        21,     7,    13,    15,     0,    19,     0,     6,     4,     5,        21,     7,    13,    15,     0,    19,     0,     6,     4,     5,
274        22,    36,     0,     0,    28,    67,    11,    63,    61,    59,        23,    22,    37,     0,     0,    30,    68,    11,    64,    62,
275        25,    60,     0,     0,     0,    64,     0,    18,     0,    65,        60,    24,    61,     0,     0,     0,    65,     0,    18,     0,
276        49,    37,    31,    42,    43,    47,    27,    24,     0,    68,        66,    50,    38,    32,    43,    44,    48,    29,    27,     0,
277        30,    16,    12,    14,     8,    51,     0,    50,     2,     0,        69,    25,    16,    12,    14,     8,    52,     0,    51,     2,
278        44,    45,    48,    38,    29,    55,    66,    32,    40,    46,         0,    45,    46,    49,    39,    31,    56,    67,    33,    41,
279        39,     0,    53,    41,    52,    55,     0,    62,    56,    57,        47,    40,     0,    54,    42,    53,    56,     0,    63,    57,
280        54,    58,     0,     0,     0        58,    55,    59,     0,     0,     0
281  };  };
282    
283  static const short yydefgoto[] =  static const short yydefgoto[] =
284  {  {
285        92,     1,     2,    28,    29,    33,    32,    58,    30,    69,        93,     1,     2,    28,    29,    30,    34,    33,    59,    31,
286        31,    52,    74,    77,    55,    56,    49,    50,    75,    81,        70,    32,    53,    75,    78,    56,    57,    50,    51,    76,
287        82,    88,    89,    41,    46,    68,    60        82,    83,    89,    90,    42,    47,    69,    61
288  };  };
289    
290  static const short yypact[] =  static const short yypact[] =
291  {  {
292    -32768,-32768,    72,-32768,-32768,   -22,   -29,     8,    -1,-32768,    -32768,-32768,    31,-32768,-32768,   -22,   -29,     8,    -1,-32768,
293    -32768,-32768,-32768,-32768,   -16,   -14,   -11,    22,-32768,-32768,    -32768,-32768,-32768,-32768,   -16,   -14,   -11,    19,-32768,-32768,
294    -32768,-32768,-32768,-32768,    22,-32768,    -6,-32768,-32768,-32768,    -32768,-32768,-32768,-32768,    19,-32768,    -9,-32768,-32768,-32768,
295    -32768,     0,   -24,   -24,-32768,     1,-32768,-32768,-32768,-32768,    -32768,-32768,     0,   -24,   -24,-32768,     1,-32768,-32768,-32768,
296    -32768,-32768,    22,    22,    22,-32768,    22,-32768,    -2,   -17,    -32768,-32768,-32768,    19,    19,    19,-32768,    19,-32768,    -2,
297    -32768,-32768,-32768,-32768,     4,-32768,   -24,   -24,     2,-32768,       -17,-32768,-32768,-32768,-32768,     4,-32768,   -24,   -24,    11,
298    -32768,-32768,-32768,-32768,-32768,-32768,     3,-32768,-32768,    -1,    -32768,-32768,-32768,-32768,-32768,-32768,-32768,    24,-32768,-32768,
299        32,-32768,-32768,-32768,     5,-32768,-32768,    -1,-32768,-32768,        -1,    32,-32768,-32768,-32768,    28,-32768,-32768,    -1,-32768,
300    -32768,   -18,    -3,-32768,-32768,-32768,    -1,-32768,-32768,-32768,    -32768,-32768,   -18,    -3,-32768,-32768,-32768,    -1,-32768,-32768,
301        -3,-32768,    39,    40,-32768    -32768,    -3,-32768,    65,    66,-32768
302  };  };
303    
304  static const short yypgoto[] =  static const short yypgoto[] =
305  {  {
306    -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
307    -32768,-32768,-32768,-32768,   -28,    10,-32768,    -5,-32768,-32768,    -32768,-32768,-32768,-32768,-32768,   -28,    33,-32768,    21,-32768,
308       -40,    -8,-32768,   -48,   -19,-32768,-32768    -32768,   -13,    -8,-32768,   -49,   -19,-32768,-32768
309  };  };
310    
311    
312  #define YYLAST          110  #define YYLAST          79
313    
314    
315  static const short yytable[] =  static const short yytable[] =
316  {  {
317        40,    37,    38,    37,    38,    47,    71,    53,    37,    34,        41,    38,    39,    38,    39,    48,    72,    54,    38,    35,
318        70,    35,    54,    86,    36,    84,    42,    85,    43,    48,        71,    36,    55,    87,    37,    85,    43,    86,    44,    49,
319        66,    44,    79,    61,    62,    63,    45,    64,    72,    72,        67,    45,    80,    46,    62,    63,    64,    49,    65,    73,
320        48,    51,    65,    39,    59,    39,    37,    87,    73,    93,        73,    52,    66,    40,    60,    40,    38,    88,     3,     4,
321        94,    80,    76,    57,    67,    90,     0,     0,     0,     0,         5,     6,     7,     8,     9,    10,    11,    74,    12,    13,
322         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,        14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
323         0,    78,     0,     0,     0,     0,     0,     0,     0,    83,        24,    25,    79,    77,    81,    94,    95,    58,    26,    27,
324         0,     0,     0,     0,     0,     0,     0,     0,    91,     3,        84,    68,     0,    91,     0,     0,     0,     0,     0,    92
        4,     5,     6,     7,     8,     9,    10,    11,     0,    12,  
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,  
       23,    24,    25,     0,     0,     0,     0,     0,     0,    26,  
       27  
325  };  };
326    
327  static const short yycheck[] =  static const short yycheck[] =
328  {  {
329         8,     4,     5,     4,     5,    24,    54,    31,     4,    31,         8,     4,     5,     4,     5,    24,    55,    31,     4,    31,
330         6,    40,    36,    16,     6,    33,    32,    35,    32,    36,         6,    40,    36,    16,     6,    33,    32,    35,    32,    36,
331        37,    32,    70,    42,    43,    44,     4,    46,    56,    57,        37,    32,    71,     4,    43,    44,    45,    36,    47,    57,
332        36,    31,    34,    36,    33,    36,     4,    40,    36,     0,        58,    31,    34,    36,    33,    36,     4,    40,     7,     8,
333         0,    36,    39,    33,    49,    85,    -1,    -1,    -1,    -1,         9,    10,    11,    12,    13,    14,    15,    36,    17,    18,
334        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
335        -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,        29,    30,    70,    39,    36,     0,     0,    34,    37,    38,
336        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,     7,        78,    50,    -1,    86,    -1,    -1,    -1,    -1,    -1,    87
        8,     9,    10,    11,    12,    13,    14,    15,    -1,    17,  
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,  
       28,    29,    30,    -1,    -1,    -1,    -1,    -1,    -1,    37,  
       38  
337  };  };
338  #define YYPURE 1  #define YYPURE 1
339    
# Line 1052  yyreduce: Line 1045  yyreduce:
1045    switch (yyn) {    switch (yyn) {
1046    
1047  case 1:  case 1:
1048  #line 132 "parse-gram.y"  #line 134 "parse-gram.y"
1049  { LOCATION_RESET (yylloc); }  { LOCATION_RESET (yylloc); }
1050      break;      break;
1051  case 2:  case 2:
1052  #line 134 "parse-gram.y"  #line 136 "parse-gram.y"
1053  {  {
1054        yycontrol->errcode = 0;        yycontrol->errcode = 0;
1055        epilogue_set (yyvsp[0].string, yylsp[0]);        epilogue_set (yyvsp[0].string, yylsp[0]);
1056      }      }
1057      break;      break;
1058  case 6:  case 6:
1059  #line 148 "parse-gram.y"  #line 154 "parse-gram.y"
1060  {  { prologue_augment (yyvsp[0].string, yylsp[0]); }
      prologue_augment (yyvsp[0].string, yylsp[0]);  
    }  
1061      break;      break;
1062  case 7:  case 7:
1063  #line 151 "parse-gram.y"  #line 155 "parse-gram.y"
1064  { debug_flag = 1; }  { debug_flag = 1; }
1065      break;      break;
1066  case 8:  case 8:
1067  #line 152 "parse-gram.y"  #line 156 "parse-gram.y"
1068  { muscle_insert (yyvsp[-1].string, yyvsp[0].string); }  { muscle_insert (yyvsp[-1].string, yyvsp[0].string); }
1069      break;      break;
1070  case 9:  case 9:
1071  #line 153 "parse-gram.y"  #line 157 "parse-gram.y"
1072  { defines_flag = 1; }  { defines_flag = 1; }
1073      break;      break;
1074  case 10:  case 10:
1075  #line 154 "parse-gram.y"  #line 158 "parse-gram.y"
1076  { error_verbose = 1; }  { error_verbose = 1; }
1077      break;      break;
1078  case 11:  case 11:
1079  #line 155 "parse-gram.y"  #line 159 "parse-gram.y"
1080  { expected_conflicts = yyvsp[0].integer; }  { expected_conflicts = yyvsp[0].integer; }
1081      break;      break;
1082  case 12:  case 12:
1083  #line 156 "parse-gram.y"  #line 160 "parse-gram.y"
1084  { spec_file_prefix = yyvsp[0].string; }  { spec_file_prefix = yyvsp[0].string; }
1085      break;      break;
1086  case 13:  case 13:
1087  #line 157 "parse-gram.y"  #line 161 "parse-gram.y"
1088  { locations_flag = 1; }  { locations_flag = 1; }
1089      break;      break;
1090  case 14:  case 14:
1091  #line 158 "parse-gram.y"  #line 162 "parse-gram.y"
1092  { spec_name_prefix = yyvsp[0].string; }  { spec_name_prefix = yyvsp[0].string; }
1093      break;      break;
1094  case 15:  case 15:
1095  #line 159 "parse-gram.y"  #line 163 "parse-gram.y"
1096  { no_lines_flag = 1; }  { no_lines_flag = 1; }
1097      break;      break;
1098  case 16:  case 16:
1099  #line 160 "parse-gram.y"  #line 164 "parse-gram.y"
1100  { spec_outfile = yyvsp[0].string; }  { spec_outfile = yyvsp[0].string; }
1101      break;      break;
1102  case 17:  case 17:
1103  #line 161 "parse-gram.y"  #line 165 "parse-gram.y"
1104  { pure_parser = 1; }  { pure_parser = 1; }
1105      break;      break;
1106  case 18:  case 18:
1107  #line 162 "parse-gram.y"  #line 166 "parse-gram.y"
1108  { skeleton = yyvsp[0].string; }  { skeleton = yyvsp[0].string; }
1109      break;      break;
1110  case 19:  case 19:
1111  #line 163 "parse-gram.y"  #line 167 "parse-gram.y"
1112  { token_table_flag = 1; }  { token_table_flag = 1; }
1113      break;      break;
1114  case 20:  case 20:
1115  #line 164 "parse-gram.y"  #line 168 "parse-gram.y"
1116  { report_flag = 1; }  { report_flag = 1; }
1117      break;      break;
1118  case 21:  case 21:
1119  #line 165 "parse-gram.y"  #line 169 "parse-gram.y"
1120  { yacc_flag = 1; }  { yacc_flag = 1; }
1121      break;      break;
 case 23:  
 #line 170 "parse-gram.y"  
 { current_class = nterm_sym; }  
     break;  
1122  case 24:  case 24:
1123  #line 171 "parse-gram.y"  #line 176 "parse-gram.y"
1124  {  {
1125        current_class = unknown_sym;        grammar_start_symbol_set (yyvsp[0].symbol);
       current_type = NULL;  
1126      }      }
1127      break;      break;
1128  case 25:  case 25:
1129  #line 176 "parse-gram.y"  #line 180 "parse-gram.y"
1130  {  {
1131        grammar_start_symbol_set (yyvsp[0].symbol);        typed = 1;
1132          MUSCLE_INSERT_INT ("stype_line", yylsp[-1].first_line);
1133          muscle_insert ("stype", yyvsp[-1].string);
1134      }      }
1135      break;      break;
1136  case 26:  case 26:
1137  #line 179 "parse-gram.y"  #line 188 "parse-gram.y"
1138  { current_class = token_sym; }  { current_class = nterm_sym; }
1139      break;      break;
1140  case 27:  case 27:
1141  #line 180 "parse-gram.y"  #line 189 "parse-gram.y"
1142  {  {
1143        current_class = unknown_sym;        current_class = unknown_sym;
1144        current_type = NULL;        current_type = NULL;
1145      }      }
1146      break;      break;
1147  case 28:  case 28:
1148  #line 184 "parse-gram.y"  #line 193 "parse-gram.y"
1149  {current_type = yyvsp[0].string; }  { current_class = token_sym; }
1150      break;      break;
1151  case 29:  case 29:
1152  #line 185 "parse-gram.y"  #line 194 "parse-gram.y"
1153  {  {
1154          current_class = unknown_sym;
1155        current_type = NULL;        current_type = NULL;
1156      }      }
1157      break;      break;
1158  case 30:  case 30:
1159  #line 189 "parse-gram.y"  #line 198 "parse-gram.y"
1160  {  {current_type = yyvsp[0].string; }
       typed = 1;  
       MUSCLE_INSERT_INT ("stype_line", yylsp[-1].first_line);  
       muscle_insert ("stype", yyvsp[-1].string);  
     }  
1161      break;      break;
1162  case 31:  case 31:
1163  #line 198 "parse-gram.y"  #line 199 "parse-gram.y"
1164  { current_assoc = yyvsp[-1].assoc; ++current_prec; }  {
1165          current_type = NULL;
1166        }
1167      break;      break;
1168  case 32:  case 32:
1169  #line 200 "parse-gram.y"  #line 206 "parse-gram.y"
1170  { current_assoc = non_assoc; current_type = NULL; }  { current_assoc = yyvsp[-1].assoc; ++current_prec; }
1171      break;      break;
1172  case 33:  case 33:
1173  #line 204 "parse-gram.y"  #line 208 "parse-gram.y"
1174  { yyval.assoc = left_assoc; }  { current_assoc = non_assoc; current_type = NULL; }
1175      break;      break;
1176  case 34:  case 34:
1177  #line 205 "parse-gram.y"  #line 212 "parse-gram.y"
1178  { yyval.assoc = right_assoc; }  { yyval.assoc = left_assoc; }
1179      break;      break;
1180  case 35:  case 35:
1181  #line 206 "parse-gram.y"  #line 213 "parse-gram.y"
1182  { yyval.assoc = non_assoc; }  { yyval.assoc = right_assoc; }
1183      break;      break;
1184  case 36:  case 36:
1185  #line 210 "parse-gram.y"  #line 214 "parse-gram.y"
1186  { current_type = NULL;}  { yyval.assoc = non_assoc; }
1187      break;      break;
1188  case 37:  case 37:
1189  #line 211 "parse-gram.y"  #line 218 "parse-gram.y"
1190  { current_type = yyvsp[0].string; }  { current_type = NULL;}
1191      break;      break;
1192  case 38:  case 38:
1193  #line 216 "parse-gram.y"  #line 219 "parse-gram.y"
1194  { symbol_type_set (yyvsp[0].symbol, current_type); }  { current_type = yyvsp[0].string; }
1195      break;      break;
1196  case 39:  case 39:
1197  #line 217 "parse-gram.y"  #line 224 "parse-gram.y"
1198  { symbol_type_set (yyvsp[0].symbol, current_type); }  { symbol_type_set (yyvsp[0].symbol, current_type); }
1199      break;      break;
1200  case 40:  case 40:
1201  #line 223 "parse-gram.y"  #line 225 "parse-gram.y"
1202    { symbol_type_set (yyvsp[0].symbol, current_type); }
1203        break;
1204    case 41:
1205    #line 231 "parse-gram.y"
1206  {  {
1207        symbol_type_set (yyvsp[0].symbol, current_type);        symbol_type_set (yyvsp[0].symbol, current_type);
1208        symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc);        symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc);
1209      }      }
1210      break;      break;
1211  case 41:  case 42:
1212  #line 228 "parse-gram.y"  #line 236 "parse-gram.y"
1213  {  {
1214        symbol_type_set (yyvsp[0].symbol, current_type);        symbol_type_set (yyvsp[0].symbol, current_type);
1215        symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc);        symbol_precedence_set (yyvsp[0].symbol, current_prec, current_assoc);
1216      }      }
1217      break;      break;
1218  case 42:  case 43:
1219  #line 238 "parse-gram.y"  #line 245 "parse-gram.y"
1220  {  {
1221         current_type = yyvsp[0].string;         current_type = yyvsp[0].string;
1222       }       }
1223      break;      break;
1224  case 43:  case 44:
1225  #line 242 "parse-gram.y"  #line 249 "parse-gram.y"
1226  {  {
1227         symbol_class_set (yyvsp[0].symbol, current_class);         symbol_class_set (yyvsp[0].symbol, current_class);
1228         symbol_type_set (yyvsp[0].symbol, current_type);         symbol_type_set (yyvsp[0].symbol, current_type);
1229       }       }
1230      break;      break;
1231  case 44:  case 45:
1232  #line 247 "parse-gram.y"  #line 254 "parse-gram.y"
1233  {  {
1234        symbol_class_set (yyvsp[-1].symbol, current_class);        symbol_class_set (yyvsp[-1].symbol, current_class);
1235        symbol_type_set (yyvsp[-1].symbol, current_type);        symbol_type_set (yyvsp[-1].symbol, current_type);
1236        symbol_user_token_number_set (yyvsp[-1].symbol, yyvsp[0].integer);        symbol_user_token_number_set (yyvsp[-1].symbol, yyvsp[0].integer);
1237      }      }
1238      break;      break;
1239  case 45:  case 46:
1240  #line 253 "parse-gram.y"  #line 260 "parse-gram.y"
1241  {  {
1242        symbol_class_set (yyvsp[-1].symbol, current_class);        symbol_class_set (yyvsp[-1].symbol, current_class);
1243        symbol_type_set (yyvsp[-1].symbol, current_type);        symbol_type_set (yyvsp[-1].symbol, current_type);
1244        symbol_make_alias (yyvsp[-1].symbol, yyvsp[0].symbol);        symbol_make_alias (yyvsp[-1].symbol, yyvsp[0].symbol);
1245      }      }
1246      break;      break;
1247  case 46:  case 47:
1248  #line 259 "parse-gram.y"  #line 266 "parse-gram.y"
1249  {  {
1250        symbol_class_set (yyvsp[-2].symbol, current_class);        symbol_class_set (yyvsp[-2].symbol, current_class);
1251        symbol_type_set (yyvsp[-2].symbol, current_type);        symbol_type_set (yyvsp[-2].symbol, current_type);
# Line 1262  case 46: Line 1253  case 46:
1253        symbol_make_alias (yyvsp[-2].symbol, yyvsp[0].symbol);        symbol_make_alias (yyvsp[-2].symbol, yyvsp[0].symbol);
1254      }      }
1255      break;      break;
 case 47:  
 #line 270 "parse-gram.y"  
 {;}  
     break;  
1256  case 48:  case 48:
1257  #line 272 "parse-gram.y"  #line 277 "parse-gram.y"
1258  {;}  {;}
1259      break;      break;
1260  case 51:  case 49:
1261  #line 281 "parse-gram.y"  #line 279 "parse-gram.y"
1262  { current_lhs = yyvsp[-1].symbol; }  {;}
1263      break;      break;
1264  case 52:  case 52:
1265  #line 282 "parse-gram.y"  #line 293 "parse-gram.y"
1266  {;}  { current_lhs = yyvsp[-1].symbol; }
1267      break;      break;
1268  case 53:  case 53:
1269  #line 286 "parse-gram.y"  #line 294 "parse-gram.y"
1270  { grammar_rule_end (); }  {;}
1271      break;      break;
1272  case 54:  case 54:
1273  #line 287 "parse-gram.y"  #line 298 "parse-gram.y"
1274  { grammar_rule_end (); }  { grammar_rule_end (); }
1275      break;      break;
1276  case 55:  case 55:
1277  #line 292 "parse-gram.y"  #line 299 "parse-gram.y"
1278  { grammar_rule_begin (current_lhs); }  { grammar_rule_end (); }
1279      break;      break;
1280  case 56:  case 56:
1281  #line 294 "parse-gram.y"  #line 304 "parse-gram.y"
1282  { grammar_current_rule_symbol_append (yyvsp[0].symbol); }  { grammar_rule_begin (current_lhs); }
1283      break;      break;
1284  case 57:  case 57:
1285  #line 296 "parse-gram.y"  #line 306 "parse-gram.y"
1286  { grammar_current_rule_action_append (yyvsp[0].string, yylsp[0].first_line); }  { grammar_current_rule_symbol_append (yyvsp[0].symbol); }
1287      break;      break;
1288  case 58:  case 58:
1289  #line 298 "parse-gram.y"  #line 308 "parse-gram.y"
1290  { grammar_current_rule_prec_set (yyvsp[0].symbol); }  { grammar_current_rule_action_append (yyvsp[0].string, yylsp[0].first_line); }
1291      break;      break;
1292  case 59:  case 59:
1293  #line 302 "parse-gram.y"  #line 310 "parse-gram.y"
1294  { yyval.symbol = yyvsp[0].symbol; }  { grammar_current_rule_prec_set (yyvsp[0].symbol); }
1295      break;      break;
1296  case 60:  case 60:
1297  #line 303 "parse-gram.y"  #line 314 "parse-gram.y"
1298  { yyval.symbol = yyvsp[0].symbol; }  { yyval.symbol = yyvsp[0].symbol; }
1299      break;      break;
1300  case 61:  case 61:
1301  #line 304 "parse-gram.y"  #line 315 "parse-gram.y"
1302  { yyval.symbol = getsym (yyvsp[0].string); }  { yyval.symbol = yyvsp[0].symbol; }
1303      break;      break;
1304  case 62:  case 62:
1305  #line 309 "parse-gram.y"  #line 316 "parse-gram.y"
1306  { yyval.string = yyvsp[0].string; }  { yyval.symbol = getsym (yyvsp[0].string); }
1307      break;      break;
1308  case 63:  case 63:
1309  #line 315 "parse-gram.y"  #line 321 "parse-gram.y"
1310    { yyval.string = yyvsp[0].string; }
1311        break;
1312    case 64:
1313    #line 327 "parse-gram.y"
1314  {  {
1315        yyval.symbol = getsym (yyvsp[0].string);        yyval.symbol = getsym (yyvsp[0].string);
1316        symbol_class_set (yyval.symbol, token_sym);        symbol_class_set (yyval.symbol, token_sym);
1317      }      }
1318      break;      break;
1319  case 64:  case 65:
1320  #line 324 "parse-gram.y"  #line 336 "parse-gram.y"
1321  {  {
1322        yyval.string = yyvsp[0].string + 1;        yyval.string = yyvsp[0].string + 1;
1323        yyval.string[strlen (yyval.string) - 1] = '\0';        yyval.string[strlen (yyval.string) - 1] = '\0';
1324      }      }
1325      break;      break;
1326  case 65:  case 66:
1327  #line 332 "parse-gram.y"  #line 344 "parse-gram.y"
1328  {  {
1329        yyval.string = xstrdup ("");        yyval.string = xstrdup ("");
1330      }      }
1331      break;      break;
1332  case 66:  case 67:
1333  #line 336 "parse-gram.y"  #line 348 "parse-gram.y"
1334  {  {
1335        yyval.string = yyvsp[0].string;        yyval.string = yyvsp[0].string;
1336      }      }
# Line 1577  yyreturn: Line 1568  yyreturn:
1568  #endif  #endif
1569    return yyresult;    return yyresult;
1570  }  }
1571  #line 345 "parse-gram.y"  #line 357 "parse-gram.y"
1572    
1573  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
1574  | When debugging the parser, display tokens' locations and values.  |  | When debugging the parser, display tokens' locations and values.  |

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

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