/[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.30 by eggert, Tue Nov 12 07:44:22 2002 UTC revision 1.31 by akim, Tue Nov 12 07:55:55 2002 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.75b.  */  /* A Bison parser, made from parse-gram.y, by GNU bison 1.75b.  */
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 Free Software Foundation, Inc.     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
# Line 236  typedef union { Line 236  typedef union {
236    int integer;    int integer;
237    char *string;    char *string;
238    assoc_t assoc;    assoc_t assoc;
239      struniq_t struniq;
240  } yystype;  } yystype;
241  /* Line 212 of /tmp/prefix/share/bison/yacc.c.  */  /* Line 237 of /usr/local/share/bison/yacc.c.  */
242  #line 241 "parse-gram.c"  #line 243 "parse-gram.c"
243  # define YYSTYPE yystype  # define YYSTYPE yystype
244  # define YYSTYPE_IS_TRIVIAL 1  # define YYSTYPE_IS_TRIVIAL 1
245  #endif  #endif
# Line 258  typedef struct yyltype Line 259  typedef struct yyltype
259  /* Copy the second part of user declarations.  */  /* Copy the second part of user declarations.  */
260    
261    
262  /* Line 232 of /tmp/prefix/share/bison/yacc.c.  */  /* Line 257 of /usr/local/share/bison/yacc.c.  */
263  #line 262 "parse-gram.c"  #line 264 "parse-gram.c"
264    
265  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
266    
# Line 457  static const yysigned_char yyrhs[] = Line 458  static const yysigned_char yyrhs[] =
458  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
459  static const unsigned short yyrline[] =  static const unsigned short yyrline[] =
460  {  {
461         0,   167,   167,   180,   182,   185,   187,   188,   189,   190,         0,   168,   168,   181,   183,   186,   188,   189,   190,   191,
462       191,   192,   193,   194,   195,   197,   198,   199,   200,   201,       192,   193,   194,   195,   196,   198,   199,   200,   201,   202,
463       203,   204,   205,   206,   207,   210,   212,   213,   217,   224,       204,   205,   206,   207,   208,   211,   213,   214,   218,   225,
464       223,   234,   233,   246,   245,   251,   251,   256,   265,   280,       224,   235,   234,   247,   246,   252,   252,   257,   266,   281,
465       282,   283,   286,   288,   293,   295,   299,   304,   309,   315,       283,   284,   287,   289,   294,   296,   300,   305,   310,   316,
466       321,   331,   334,   343,   345,   351,   353,   358,   365,   364,       322,   332,   335,   344,   346,   352,   354,   359,   366,   365,
467       369,   371,   374,   377,   379,   381,   383,   385,   389,   391,       370,   372,   375,   378,   380,   382,   384,   386,   390,   392,
468       394,   400,   409,   417,   422,   428,   430       395,   401,   410,   418,   423,   429,   431
469  };  };
470  #endif  #endif
471    
# Line 1215  yyreduce: Line 1216  yyreduce:
1216    switch (yyn)    switch (yyn)
1217      {      {
1218          case 2:          case 2:
1219  #line 169 "parse-gram.y"  #line 170 "parse-gram.y"
1220      {      {
1221        yycontrol->errcode = 0;        yycontrol->errcode = 0;
1222        epilogue_set (yyvsp[0].string, yylsp[0]);        epilogue_set (yyvsp[0].string, yylsp[0]);
# Line 1223  yyreduce: Line 1224  yyreduce:
1224      break;      break;
1225    
1226    case 6:    case 6:
1227  #line 187 "parse-gram.y"  #line 188 "parse-gram.y"
1228      { prologue_augment (yyvsp[0].string, yylsp[0]); }      { prologue_augment (yyvsp[0].string, yylsp[0]); }
1229      break;      break;
1230    
1231    case 7:    case 7:
1232  #line 188 "parse-gram.y"  #line 189 "parse-gram.y"
1233      { debug_flag = 1; }      { debug_flag = 1; }
1234      break;      break;
1235    
1236    case 8:    case 8:
1237  #line 189 "parse-gram.y"  #line 190 "parse-gram.y"
1238      { muscle_insert (yyvsp[-1].string, yyvsp[0].string); }      { muscle_insert (yyvsp[-1].string, yyvsp[0].string); }
1239      break;      break;
1240    
1241    case 9:    case 9:
1242  #line 190 "parse-gram.y"  #line 191 "parse-gram.y"
1243      { defines_flag = 1; }      { defines_flag = 1; }
1244      break;      break;
1245    
1246    case 10:    case 10:
1247  #line 191 "parse-gram.y"  #line 192 "parse-gram.y"
1248      { error_verbose = 1; }      { error_verbose = 1; }
1249      break;      break;
1250    
1251    case 11:    case 11:
1252  #line 192 "parse-gram.y"  #line 193 "parse-gram.y"
1253      { expected_conflicts = yyvsp[0].integer; }      { expected_conflicts = yyvsp[0].integer; }
1254      break;      break;
1255    
1256    case 12:    case 12:
1257  #line 193 "parse-gram.y"  #line 194 "parse-gram.y"
1258      { spec_file_prefix = yyvsp[0].string; }      { spec_file_prefix = yyvsp[0].string; }
1259      break;      break;
1260    
1261    case 13:    case 13:
1262  #line 194 "parse-gram.y"  #line 195 "parse-gram.y"
1263      { glr_parser = 1; }      { glr_parser = 1; }
1264      break;      break;
1265    
1266    case 14:    case 14:
1267  #line 196 "parse-gram.y"  #line 197 "parse-gram.y"
1268      { muscle_pair_list_grow ("lex_param", yyvsp[-2].string, yyvsp[0].string); }      { muscle_pair_list_grow ("lex_param", yyvsp[-2].string, yyvsp[0].string); }
1269      break;      break;
1270    
1271    case 15:    case 15:
1272  #line 197 "parse-gram.y"  #line 198 "parse-gram.y"
1273      { locations_flag = 1; }      { locations_flag = 1; }
1274      break;      break;
1275    
1276    case 16:    case 16:
1277  #line 198 "parse-gram.y"  #line 199 "parse-gram.y"
1278      { spec_name_prefix = yyvsp[0].string; }      { spec_name_prefix = yyvsp[0].string; }
1279      break;      break;
1280    
1281    case 17:    case 17:
1282  #line 199 "parse-gram.y"  #line 200 "parse-gram.y"
1283      { no_lines_flag = 1; }      { no_lines_flag = 1; }
1284      break;      break;
1285    
1286    case 18:    case 18:
1287  #line 200 "parse-gram.y"  #line 201 "parse-gram.y"
1288      { spec_outfile = yyvsp[0].string; }      { spec_outfile = yyvsp[0].string; }
1289      break;      break;
1290    
1291    case 19:    case 19:
1292  #line 202 "parse-gram.y"  #line 203 "parse-gram.y"
1293      { muscle_pair_list_grow ("parse_param", yyvsp[-2].string, yyvsp[0].string); }      { muscle_pair_list_grow ("parse_param", yyvsp[-2].string, yyvsp[0].string); }
1294      break;      break;
1295    
1296    case 20:    case 20:
1297  #line 203 "parse-gram.y"  #line 204 "parse-gram.y"
1298      { pure_parser = 1; }      { pure_parser = 1; }
1299      break;      break;
1300    
1301    case 21:    case 21:
1302  #line 204 "parse-gram.y"  #line 205 "parse-gram.y"
1303      { skeleton = yyvsp[0].string; }      { skeleton = yyvsp[0].string; }
1304      break;      break;
1305    
1306    case 22:    case 22:
1307  #line 205 "parse-gram.y"  #line 206 "parse-gram.y"
1308      { token_table_flag = 1; }      { token_table_flag = 1; }
1309      break;      break;
1310    
1311    case 23:    case 23:
1312  #line 206 "parse-gram.y"  #line 207 "parse-gram.y"
1313      { report_flag = 1; }      { report_flag = 1; }
1314      break;      break;
1315    
1316    case 24:    case 24:
1317  #line 207 "parse-gram.y"  #line 208 "parse-gram.y"
1318      { yacc_flag = 1; }      { yacc_flag = 1; }
1319      break;      break;
1320    
1321    case 27:    case 27:
1322  #line 214 "parse-gram.y"  #line 215 "parse-gram.y"
1323      {      {
1324        grammar_start_symbol_set (yyvsp[0].symbol, yylsp[0]);        grammar_start_symbol_set (yyvsp[0].symbol, yylsp[0]);
1325      }      }
1326      break;      break;
1327    
1328    case 28:    case 28:
1329  #line 218 "parse-gram.y"  #line 219 "parse-gram.y"
1330      {      {
1331        typed = 1;        typed = 1;
1332        MUSCLE_INSERT_INT ("stype_line", yylsp[0].first_line);        MUSCLE_INSERT_INT ("stype_line", yylsp[0].first_line);
# Line 1334  yyreduce: Line 1335  yyreduce:
1335      break;      break;
1336    
1337    case 29:    case 29:
1338  #line 224 "parse-gram.y"  #line 225 "parse-gram.y"
1339      { current_braced_code = destructor_braced_code; }      { current_braced_code = destructor_braced_code; }
1340      break;      break;
1341    
1342    case 30:    case 30:
1343  #line 226 "parse-gram.y"  #line 227 "parse-gram.y"
1344      {      {
1345        symbol_list_t *list;        symbol_list_t *list;
1346        for (list = yyvsp[0].list; list; list = list->next)        for (list = yyvsp[0].list; list; list = list->next)
# Line 1350  yyreduce: Line 1351  yyreduce:
1351      break;      break;
1352    
1353    case 31:    case 31:
1354  #line 234 "parse-gram.y"  #line 235 "parse-gram.y"
1355      { current_braced_code = printer_braced_code; }      { current_braced_code = printer_braced_code; }
1356      break;      break;
1357    
1358    case 32:    case 32:
1359  #line 236 "parse-gram.y"  #line 237 "parse-gram.y"
1360      {      {
1361        symbol_list_t *list;        symbol_list_t *list;
1362        for (list = yyvsp[0].list; list; list = list->next)        for (list = yyvsp[0].list; list; list = list->next)
# Line 1366  yyreduce: Line 1367  yyreduce:
1367      break;      break;
1368    
1369    case 33:    case 33:
1370  #line 246 "parse-gram.y"  #line 247 "parse-gram.y"
1371      { current_class = nterm_sym; }      { current_class = nterm_sym; }
1372      break;      break;
1373    
1374    case 34:    case 34:
1375  #line 247 "parse-gram.y"  #line 248 "parse-gram.y"
1376      {      {
1377        current_class = unknown_sym;        current_class = unknown_sym;
1378        current_type = NULL;        current_type = NULL;
# Line 1379  yyreduce: Line 1380  yyreduce:
1380      break;      break;
1381    
1382    case 35:    case 35:
1383  #line 251 "parse-gram.y"  #line 252 "parse-gram.y"
1384      { current_class = token_sym; }      { current_class = token_sym; }
1385      break;      break;
1386    
1387    case 36:    case 36:
1388  #line 252 "parse-gram.y"  #line 253 "parse-gram.y"
1389      {      {
1390        current_class = unknown_sym;        current_class = unknown_sym;
1391        current_type = NULL;        current_type = NULL;
# Line 1392  yyreduce: Line 1393  yyreduce:
1393      break;      break;
1394    
1395    case 37:    case 37:
1396  #line 257 "parse-gram.y"  #line 258 "parse-gram.y"
1397      {      {
1398        symbol_list_t *list;        symbol_list_t *list;
1399        for (list = yyvsp[0].list; list; list = list->next)        for (list = yyvsp[0].list; list; list = list->next)
# Line 1402  yyreduce: Line 1403  yyreduce:
1403      break;      break;
1404    
1405    case 38:    case 38:
1406  #line 267 "parse-gram.y"  #line 268 "parse-gram.y"
1407      {      {
1408        symbol_list_t *list;        symbol_list_t *list;
1409        ++current_prec;        ++current_prec;
# Line 1417  yyreduce: Line 1418  yyreduce:
1418      break;      break;
1419    
1420    case 39:    case 39:
1421  #line 281 "parse-gram.y"  #line 282 "parse-gram.y"
1422      { yyval.assoc = left_assoc; }      { yyval.assoc = left_assoc; }
1423      break;      break;
1424    
1425    case 40:    case 40:
1426  #line 282 "parse-gram.y"  #line 283 "parse-gram.y"
1427      { yyval.assoc = right_assoc; }      { yyval.assoc = right_assoc; }
1428      break;      break;
1429    
1430    case 41:    case 41:
1431  #line 283 "parse-gram.y"  #line 284 "parse-gram.y"
1432      { yyval.assoc = non_assoc; }      { yyval.assoc = non_assoc; }
1433      break;      break;
1434    
1435    case 42:    case 42:
1436  #line 287 "parse-gram.y"  #line 288 "parse-gram.y"
1437      { current_type = NULL; }      { current_type = NULL; }
1438      break;      break;
1439    
1440    case 43:    case 43:
1441  #line 288 "parse-gram.y"  #line 289 "parse-gram.y"
1442      { current_type = yyvsp[0].string; }      { current_type = yyvsp[0].string; }
1443      break;      break;
1444    
1445    case 44:    case 44:
1446  #line 294 "parse-gram.y"  #line 295 "parse-gram.y"
1447      { yyval.list = symbol_list_new (yyvsp[0].symbol, yylsp[0]); }      { yyval.list = symbol_list_new (yyvsp[0].symbol, yylsp[0]); }
1448      break;      break;
1449    
1450    case 45:    case 45:
1451  #line 295 "parse-gram.y"  #line 296 "parse-gram.y"
1452      { 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]); }
1453      break;      break;
1454    
1455    case 46:    case 46:
1456  #line 301 "parse-gram.y"  #line 302 "parse-gram.y"
1457      {      {
1458         current_type = yyvsp[0].string;         current_type = yyvsp[0].string;
1459       }       }
1460      break;      break;
1461    
1462    case 47:    case 47:
1463  #line 305 "parse-gram.y"  #line 306 "parse-gram.y"
1464      {      {
1465         symbol_class_set (yyvsp[0].symbol, current_class, yylsp[0]);         symbol_class_set (yyvsp[0].symbol, current_class, yylsp[0]);
1466         symbol_type_set (yyvsp[0].symbol, current_type, yylsp[0]);         symbol_type_set (yyvsp[0].symbol, current_type, yylsp[0]);
# Line 1467  yyreduce: Line 1468  yyreduce:
1468      break;      break;
1469    
1470    case 48:    case 48:
1471  #line 310 "parse-gram.y"  #line 311 "parse-gram.y"
1472      {      {
1473        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);
1474        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);
# Line 1476  yyreduce: Line 1477  yyreduce:
1477      break;      break;
1478    
1479    case 49:    case 49:
1480  #line 316 "parse-gram.y"  #line 317 "parse-gram.y"
1481      {      {
1482        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);        symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);
1483        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);        symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);
# Line 1485  yyreduce: Line 1486  yyreduce:
1486      break;      break;
1487    
1488    case 50:    case 50:
1489  #line 322 "parse-gram.y"  #line 323 "parse-gram.y"
1490      {      {
1491        symbol_class_set (yyvsp[-2].symbol, current_class, yylsp[-2]);        symbol_class_set (yyvsp[-2].symbol, current_class, yylsp[-2]);
1492        symbol_type_set (yyvsp[-2].symbol, current_type, yylsp[-2]);        symbol_type_set (yyvsp[-2].symbol, current_type, yylsp[-2]);
# Line 1495  yyreduce: Line 1496  yyreduce:
1496      break;      break;
1497    
1498    case 51:    case 51:
1499  #line 333 "parse-gram.y"  #line 334 "parse-gram.y"
1500      {;}      {;}
1501      break;      break;
1502    
1503    case 52:    case 52:
1504  #line 335 "parse-gram.y"  #line 336 "parse-gram.y"
1505      {;}      {;}
1506      break;      break;
1507    
1508    case 56:    case 56:
1509  #line 354 "parse-gram.y"  #line 355 "parse-gram.y"
1510      {      {
1511        if (yacc_flag)        if (yacc_flag)
1512          complain_at (yyloc, _("POSIX forbids declarations in the grammar"));          complain_at (yyloc, _("POSIX forbids declarations in the grammar"));
# Line 1513  yyreduce: Line 1514  yyreduce:
1514      break;      break;
1515    
1516    case 57:    case 57:
1517  #line 359 "parse-gram.y"  #line 360 "parse-gram.y"
1518      {      {
1519        yyerrok;        yyerrok;
1520      }      }
1521      break;      break;
1522    
1523    case 58:    case 58:
1524  #line 365 "parse-gram.y"  #line 366 "parse-gram.y"
1525      { current_lhs = yyvsp[-1].symbol; current_lhs_location = yylsp[-1]; }      { current_lhs = yyvsp[-1].symbol; current_lhs_location = yylsp[-1]; }
1526      break;      break;
1527    
1528    case 59:    case 59:
1529  #line 366 "parse-gram.y"  #line 367 "parse-gram.y"
1530      {;}      {;}
1531      break;      break;
1532    
1533    case 60:    case 60:
1534  #line 370 "parse-gram.y"  #line 371 "parse-gram.y"
1535      { grammar_rule_end (yylsp[0]); }      { grammar_rule_end (yylsp[0]); }
1536      break;      break;
1537    
1538    case 61:    case 61:
1539  #line 371 "parse-gram.y"  #line 372 "parse-gram.y"
1540      { grammar_rule_end (yylsp[0]); }      { grammar_rule_end (yylsp[0]); }
1541      break;      break;
1542    
1543    case 62:    case 62:
1544  #line 376 "parse-gram.y"  #line 377 "parse-gram.y"
1545      { grammar_rule_begin (current_lhs, current_lhs_location); }      { grammar_rule_begin (current_lhs, current_lhs_location); }
1546      break;      break;
1547    
1548    case 63:    case 63:
1549  #line 378 "parse-gram.y"  #line 379 "parse-gram.y"
1550      { grammar_current_rule_symbol_append (yyvsp[0].symbol, yylsp[0]); }      { grammar_current_rule_symbol_append (yyvsp[0].symbol, yylsp[0]); }
1551      break;      break;
1552    
1553    case 64:    case 64:
1554  #line 380 "parse-gram.y"  #line 381 "parse-gram.y"
1555      { grammar_current_rule_action_append (yyvsp[0].string, yylsp[0]); }      { grammar_current_rule_action_append (yyvsp[0].string, yylsp[0]); }
1556      break;      break;
1557    
1558    case 65:    case 65:
1559  #line 382 "parse-gram.y"  #line 383 "parse-gram.y"
1560      { grammar_current_rule_prec_set (yyvsp[0].symbol, yylsp[0]); }      { grammar_current_rule_prec_set (yyvsp[0].symbol, yylsp[0]); }
1561      break;      break;
1562    
1563    case 66:    case 66:
1564  #line 384 "parse-gram.y"  #line 385 "parse-gram.y"
1565      { grammar_current_rule_dprec_set (yyvsp[0].integer, yylsp[0]); }      { grammar_current_rule_dprec_set (yyvsp[0].integer, yylsp[0]); }
1566      break;      break;
1567    
1568    case 67:    case 67:
1569  #line 386 "parse-gram.y"  #line 387 "parse-gram.y"
1570      { grammar_current_rule_merge_set (yyvsp[0].string, yylsp[0]); }      { grammar_current_rule_merge_set (yyvsp[0].string, yylsp[0]); }
1571      break;      break;
1572    
1573    case 68:    case 68:
1574  #line 390 "parse-gram.y"  #line 391 "parse-gram.y"
1575      { yyval.symbol = yyvsp[0].symbol; }      { yyval.symbol = yyvsp[0].symbol; }
1576      break;      break;
1577    
1578    case 69:    case 69:
1579  #line 391 "parse-gram.y"  #line 392 "parse-gram.y"
1580      { yyval.symbol = yyvsp[0].symbol; }      { yyval.symbol = yyvsp[0].symbol; }
1581      break;      break;
1582    
1583    case 70:    case 70:
1584  #line 396 "parse-gram.y"  #line 397 "parse-gram.y"
1585      { yyval.string = yyvsp[0].string; }      { yyval.string = yyvsp[0].string; }
1586      break;      break;
1587    
1588    case 71:    case 71:
1589  #line 402 "parse-gram.y"  #line 403 "parse-gram.y"
1590      {      {
1591        yyval.symbol = symbol_get (yyvsp[0].string, yylsp[0]);        yyval.symbol = symbol_get (yyvsp[0].string, yylsp[0]);
1592        symbol_class_set (yyval.symbol, token_sym, yylsp[0]);        symbol_class_set (yyval.symbol, token_sym, yylsp[0]);
# Line 1593  yyreduce: Line 1594  yyreduce:
1594      break;      break;
1595    
1596    case 72:    case 72:
1597  #line 411 "parse-gram.y"  #line 412 "parse-gram.y"
1598      {      {
1599        yyval.string = yyvsp[0].string + 1;        yyval.string = yyvsp[0].string + 1;
1600        yyval.string[strlen (yyval.string) - 1] = '\0';        yyval.string[strlen (yyval.string) - 1] = '\0';
# Line 1601  yyreduce: Line 1602  yyreduce:
1602      break;      break;
1603    
1604    case 73:    case 73:
1605  #line 419 "parse-gram.y"  #line 420 "parse-gram.y"
1606      {      {
1607        yyval.string = xstrdup ("");        yyval.string = xstrdup ("");
1608      }      }
1609      break;      break;
1610    
1611    case 74:    case 74:
1612  #line 423 "parse-gram.y"  #line 424 "parse-gram.y"
1613      {      {
1614        yyval.string = yyvsp[0].string;        yyval.string = yyvsp[0].string;
1615      }      }
# Line 1617  yyreduce: Line 1618  yyreduce:
1618    
1619      }      }
1620    
1621  /* Line 1031 of /tmp/prefix/share/bison/yacc.c.  */  /* Line 1056 of /usr/local/share/bison/yacc.c.  */
1622  #line 1621 "parse-gram.c"  #line 1623 "parse-gram.c"
1623    
1624    yyvsp -= yylen;    yyvsp -= yylen;
1625    yyssp -= yylen;    yyssp -= yylen;
# Line 1837  yyreturn: Line 1838  yyreturn:
1838  }  }
1839    
1840    
1841  #line 432 "parse-gram.y"  #line 433 "parse-gram.y"
1842    
1843  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
1844  | When debugging the parser, display tokens' locations and values.  |  | When debugging the parser, display tokens' locations and values.  |
# Line 1863  yyprint (FILE *file, Line 1864  yyprint (FILE *file,
1864        break;        break;
1865    
1866      case TYPE:      case TYPE:
1867        fprintf (file, " = <%s>", value->string);        fprintf (file, " = <%s>", value->struniq);
1868        break;        break;
1869    
1870      case BRACED_CODE:      case BRACED_CODE:

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

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