Changeset 4739 in webkit for trunk/JavaScriptCore/kjs/grammar.cpp
- Timestamp:
- Jul 30, 2003, 4:54:41 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/grammar.cpp
r3313 r4739 109 109 #include "internal.h" 110 110 111 // Not sure why, but yacc doesn't add this define along with the others. 112 #define yylloc kjsyylloc 113 111 114 /* default values for bison */ 112 115 #define YYDEBUG 0 … … 117 120 #define DBG(l, s, e) { l->setLoc(s.first_line, e.last_line, Parser::sid); } // location 118 121 119 extern int yylex();120 int yyerror(const char *);121 bool automatic();122 extern int kjsyylex(); 123 int kjsyyerror(const char *); 124 static bool automatic(); 122 125 123 126 using namespace KJS; 124 127 125 128 126 #line 5 2"grammar.y"129 #line 55 "grammar.y" 127 130 typedef union { 128 131 int ival; … … 315 318 #if YYDEBUG != 0 316 319 static const short yyrline[] = { 0, 317 16 2, 164, 165, 166, 167, 168, 171, 177, 179, 181,318 18 2, 183, 184, 185, 188, 190, 191, 194, 196, 200,319 20 2, 205, 207, 210, 212, 216, 218, 219, 222, 224,320 22 5, 226, 227, 230, 232, 235, 237, 238, 239, 243,321 24 5, 248, 250, 253, 255, 258, 260, 261, 264, 266,322 2 67, 268, 269, 270, 271, 272, 273, 274, 275, 276,323 2 79, 281, 282, 283, 286, 288, 289, 292, 294, 295,324 29 6, 299, 301, 303, 305, 307, 309, 311, 315, 317,325 3 18, 319, 320, 323, 325, 328, 330, 333, 335, 338,326 34 0, 344, 346, 350, 352, 356, 358, 362, 364, 365,327 36 6, 367, 368, 369, 370, 371, 372, 373, 374, 377,328 3 79, 382, 384, 385, 386, 387, 388, 389, 390, 391,329 39 2, 393, 394, 395, 396, 399, 401, 404, 406, 409,330 41 2, 421, 423, 427, 429, 432, 436, 440, 443, 450,331 45 2, 456, 458, 459, 462, 465, 468, 472, 478, 480,332 48 3, 485, 489, 491, 498, 500, 504, 506, 514, 516,333 52 0, 521, 527, 532, 537, 539, 543, 545, 548, 550,334 55 3, 555, 558, 560, 563, 569, 573, 575, 576, 579,335 58 3, 587, 590, 594, 596, 601, 603, 606, 609, 613,336 61 6, 620, 622, 625, 627320 165, 167, 168, 169, 170, 171, 174, 180, 182, 184, 321 185, 186, 187, 188, 191, 193, 194, 197, 199, 203, 322 205, 208, 210, 213, 215, 219, 221, 222, 225, 227, 323 228, 229, 230, 233, 235, 238, 240, 241, 242, 246, 324 248, 251, 253, 256, 258, 261, 263, 264, 267, 269, 325 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 326 282, 284, 285, 286, 289, 291, 292, 295, 297, 298, 327 299, 302, 304, 306, 308, 310, 312, 314, 318, 320, 328 321, 322, 323, 326, 328, 331, 333, 336, 338, 341, 329 343, 347, 349, 353, 355, 359, 361, 365, 367, 368, 330 369, 370, 371, 372, 373, 374, 375, 376, 377, 380, 331 382, 385, 387, 388, 389, 390, 391, 392, 393, 394, 332 395, 396, 397, 398, 399, 402, 404, 407, 409, 412, 333 415, 424, 426, 430, 432, 435, 439, 443, 446, 453, 334 455, 459, 461, 462, 465, 468, 471, 475, 481, 483, 335 486, 488, 492, 494, 501, 503, 507, 509, 517, 519, 336 523, 524, 530, 535, 540, 542, 546, 548, 551, 553, 337 556, 558, 561, 563, 566, 572, 576, 578, 579, 582, 338 586, 590, 593, 597, 599, 604, 606, 609, 612, 616, 339 619, 623, 625, 628, 630 337 340 }; 338 341 #endif … … 1331 1334 1332 1335 case 1: 1333 #line 16 3"grammar.y"1336 #line 166 "grammar.y" 1334 1337 { yyval.node = new NullNode(); ; 1335 1338 break;} 1336 1339 case 2: 1337 #line 16 4"grammar.y"1340 #line 167 "grammar.y" 1338 1341 { yyval.node = new BooleanNode(true); ; 1339 1342 break;} 1340 1343 case 3: 1341 #line 16 5"grammar.y"1344 #line 168 "grammar.y" 1342 1345 { yyval.node = new BooleanNode(false); ; 1343 1346 break;} 1344 1347 case 4: 1345 #line 16 6"grammar.y"1348 #line 169 "grammar.y" 1346 1349 { yyval.node = new NumberNode(yyvsp[0].dval); ; 1347 1350 break;} 1348 1351 case 5: 1349 #line 1 67"grammar.y"1352 #line 170 "grammar.y" 1350 1353 { yyval.node = new StringNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ; 1351 1354 break;} 1352 1355 case 6: 1353 #line 1 68"grammar.y"1356 #line 171 "grammar.y" 1354 1357 { Lexer *l = Lexer::curr(); 1355 1358 if (!l->scanRegExp()) YYABORT; … … 1357 1360 break;} 1358 1361 case 7: 1359 #line 17 2"grammar.y"1362 #line 175 "grammar.y" 1360 1363 { Lexer *l = Lexer::curr(); 1361 1364 if (!l->scanRegExp()) YYABORT; … … 1363 1366 break;} 1364 1367 case 8: 1365 #line 1 78"grammar.y"1368 #line 181 "grammar.y" 1366 1369 { yyval.node = new ThisNode(); ; 1367 1370 break;} 1368 1371 case 9: 1369 #line 1 79"grammar.y"1372 #line 182 "grammar.y" 1370 1373 { yyval.node = new ResolveNode(*yyvsp[0].ident); 1371 1374 delete yyvsp[0].ident; ; 1372 1375 break;} 1373 1376 case 12: 1374 #line 18 3"grammar.y"1377 #line 186 "grammar.y" 1375 1378 { yyval.node = new GroupNode(yyvsp[-1].node); ; 1376 1379 break;} 1377 1380 case 13: 1378 #line 18 4"grammar.y"1381 #line 187 "grammar.y" 1379 1382 { yyval.node = new ObjectLiteralNode(0L); ; 1380 1383 break;} 1381 1384 case 14: 1382 #line 18 5"grammar.y"1385 #line 188 "grammar.y" 1383 1386 { yyval.node = new ObjectLiteralNode(yyvsp[-1].plist); ; 1384 1387 break;} 1385 1388 case 15: 1386 #line 1 89"grammar.y"1389 #line 192 "grammar.y" 1387 1390 { yyval.node = new ArrayNode(yyvsp[-1].ival); ; 1388 1391 break;} 1389 1392 case 16: 1390 #line 19 0"grammar.y"1393 #line 193 "grammar.y" 1391 1394 { yyval.node = new ArrayNode(yyvsp[-1].elm); ; 1392 1395 break;} 1393 1396 case 17: 1394 #line 19 1"grammar.y"1397 #line 194 "grammar.y" 1395 1398 { yyval.node = new ArrayNode(yyvsp[-1].ival, yyvsp[-3].elm); ; 1396 1399 break;} 1397 1400 case 18: 1398 #line 19 5"grammar.y"1401 #line 198 "grammar.y" 1399 1402 { yyval.elm = new ElementNode(yyvsp[-1].ival, yyvsp[0].node); ; 1400 1403 break;} 1401 1404 case 19: 1402 #line 197"grammar.y"1405 #line 200 "grammar.y" 1403 1406 { yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1].ival, yyvsp[0].node); ; 1404 1407 break;} 1405 1408 case 20: 1406 #line 20 1"grammar.y"1409 #line 204 "grammar.y" 1407 1410 { yyval.ival = 0; ; 1408 1411 break;} 1409 1412 case 22: 1410 #line 20 6"grammar.y"1413 #line 209 "grammar.y" 1411 1414 { yyval.ival = 1; ; 1412 1415 break;} 1413 1416 case 23: 1414 #line 2 07"grammar.y"1417 #line 210 "grammar.y" 1415 1418 { yyval.ival = yyvsp[-1].ival + 1; ; 1416 1419 break;} 1417 1420 case 24: 1418 #line 21 1"grammar.y"1421 #line 214 "grammar.y" 1419 1422 { yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node); ; 1420 1423 break;} 1421 1424 case 25: 1422 #line 21 3"grammar.y"1425 #line 216 "grammar.y" 1423 1426 { yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node, yyvsp[-4].plist); ; 1424 1427 break;} 1425 1428 case 26: 1426 #line 2 17"grammar.y"1429 #line 220 "grammar.y" 1427 1430 { yyval.pnode = new PropertyNode(*yyvsp[0].ident); delete yyvsp[0].ident; ; 1428 1431 break;} 1429 1432 case 27: 1430 #line 2 18"grammar.y"1433 #line 221 "grammar.y" 1431 1434 { yyval.pnode = new PropertyNode(Identifier(*yyvsp[0].ustr)); delete yyvsp[0].ustr; ; 1432 1435 break;} 1433 1436 case 28: 1434 #line 2 19"grammar.y"1437 #line 222 "grammar.y" 1435 1438 { yyval.pnode = new PropertyNode(yyvsp[0].dval); ; 1436 1439 break;} 1437 1440 case 31: 1438 #line 22 5"grammar.y"1441 #line 228 "grammar.y" 1439 1442 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ; 1440 1443 break;} 1441 1444 case 32: 1442 #line 22 6"grammar.y"1445 #line 229 "grammar.y" 1443 1446 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); delete yyvsp[0].ident; ; 1444 1447 break;} 1445 1448 case 33: 1446 #line 2 27"grammar.y"1449 #line 230 "grammar.y" 1447 1450 { yyval.node = new NewExprNode(yyvsp[-1].node, yyvsp[0].args); ; 1448 1451 break;} 1449 1452 case 35: 1450 #line 23 2"grammar.y"1453 #line 235 "grammar.y" 1451 1454 { yyval.node = new NewExprNode(yyvsp[0].node); ; 1452 1455 break;} 1453 1456 case 36: 1454 #line 23 6"grammar.y"1457 #line 239 "grammar.y" 1455 1458 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ; 1456 1459 break;} 1457 1460 case 37: 1458 #line 2 37"grammar.y"1461 #line 240 "grammar.y" 1459 1462 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ; 1460 1463 break;} 1461 1464 case 38: 1462 #line 2 38"grammar.y"1465 #line 241 "grammar.y" 1463 1466 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ; 1464 1467 break;} 1465 1468 case 39: 1466 #line 2 39"grammar.y"1469 #line 242 "grammar.y" 1467 1470 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); 1468 1471 delete yyvsp[0].ident; ; 1469 1472 break;} 1470 1473 case 40: 1471 #line 24 4"grammar.y"1474 #line 247 "grammar.y" 1472 1475 { yyval.args = new ArgumentsNode(0L); ; 1473 1476 break;} 1474 1477 case 41: 1475 #line 24 5"grammar.y"1478 #line 248 "grammar.y" 1476 1479 { yyval.args = new ArgumentsNode(yyvsp[-1].alist); ; 1477 1480 break;} 1478 1481 case 42: 1479 #line 2 49"grammar.y"1482 #line 252 "grammar.y" 1480 1483 { yyval.alist = new ArgumentListNode(yyvsp[0].node); ; 1481 1484 break;} 1482 1485 case 43: 1483 #line 25 0"grammar.y"1486 #line 253 "grammar.y" 1484 1487 { yyval.alist = new ArgumentListNode(yyvsp[-2].alist, yyvsp[0].node); ; 1485 1488 break;} 1486 1489 case 47: 1487 #line 26 0"grammar.y"1490 #line 263 "grammar.y" 1488 1491 { yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ; 1489 1492 break;} 1490 1493 case 48: 1491 #line 26 1"grammar.y"1494 #line 264 "grammar.y" 1492 1495 { yyval.node = new PostfixNode(yyvsp[-1].node, OpMinusMinus); ; 1493 1496 break;} 1494 1497 case 50: 1495 #line 26 6"grammar.y"1498 #line 269 "grammar.y" 1496 1499 { yyval.node = new DeleteNode(yyvsp[0].node); ; 1497 1500 break;} 1498 1501 case 51: 1499 #line 2 67"grammar.y"1502 #line 270 "grammar.y" 1500 1503 { yyval.node = new VoidNode(yyvsp[0].node); ; 1501 1504 break;} 1502 1505 case 52: 1503 #line 2 68"grammar.y"1506 #line 271 "grammar.y" 1504 1507 { yyval.node = new TypeOfNode(yyvsp[0].node); ; 1505 1508 break;} 1506 1509 case 53: 1507 #line 2 69"grammar.y"1510 #line 272 "grammar.y" 1508 1511 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ; 1509 1512 break;} 1510 1513 case 54: 1511 #line 27 0"grammar.y"1514 #line 273 "grammar.y" 1512 1515 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ; 1513 1516 break;} 1514 1517 case 55: 1515 #line 27 1"grammar.y"1518 #line 274 "grammar.y" 1516 1519 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ; 1517 1520 break;} 1518 1521 case 56: 1519 #line 27 2"grammar.y"1522 #line 275 "grammar.y" 1520 1523 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ; 1521 1524 break;} 1522 1525 case 57: 1523 #line 27 3"grammar.y"1526 #line 276 "grammar.y" 1524 1527 { yyval.node = new UnaryPlusNode(yyvsp[0].node); ; 1525 1528 break;} 1526 1529 case 58: 1527 #line 27 4"grammar.y"1530 #line 277 "grammar.y" 1528 1531 { yyval.node = new NegateNode(yyvsp[0].node); ; 1529 1532 break;} 1530 1533 case 59: 1531 #line 27 5"grammar.y"1534 #line 278 "grammar.y" 1532 1535 { yyval.node = new BitwiseNotNode(yyvsp[0].node); ; 1533 1536 break;} 1534 1537 case 60: 1535 #line 27 6"grammar.y"1538 #line 279 "grammar.y" 1536 1539 { yyval.node = new LogicalNotNode(yyvsp[0].node); ; 1537 1540 break;} 1538 1541 case 62: 1539 #line 28 1"grammar.y"1542 #line 284 "grammar.y" 1540 1543 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ; 1541 1544 break;} 1542 1545 case 63: 1543 #line 28 2"grammar.y"1546 #line 285 "grammar.y" 1544 1547 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ; 1545 1548 break;} 1546 1549 case 64: 1547 #line 28 3"grammar.y"1550 #line 286 "grammar.y" 1548 1551 { yyval.node = new MultNode(yyvsp[-2].node,yyvsp[0].node,'%'); ; 1549 1552 break;} 1550 1553 case 66: 1551 #line 2 88"grammar.y"1554 #line 291 "grammar.y" 1552 1555 { yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '+'); ; 1553 1556 break;} 1554 1557 case 67: 1555 #line 2 89"grammar.y"1558 #line 292 "grammar.y" 1556 1559 { yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '-'); ; 1557 1560 break;} 1558 1561 case 69: 1559 #line 29 4"grammar.y"1562 #line 297 "grammar.y" 1560 1563 { yyval.node = new ShiftNode(yyvsp[-2].node, OpLShift, yyvsp[0].node); ; 1561 1564 break;} 1562 1565 case 70: 1563 #line 29 5"grammar.y"1566 #line 298 "grammar.y" 1564 1567 { yyval.node = new ShiftNode(yyvsp[-2].node, OpRShift, yyvsp[0].node); ; 1565 1568 break;} 1566 1569 case 71: 1567 #line 29 6"grammar.y"1570 #line 299 "grammar.y" 1568 1571 { yyval.node = new ShiftNode(yyvsp[-2].node, OpURShift, yyvsp[0].node); ; 1569 1572 break;} 1570 1573 case 73: 1571 #line 30 2"grammar.y"1574 #line 305 "grammar.y" 1572 1575 { yyval.node = new RelationalNode(yyvsp[-2].node, OpLess, yyvsp[0].node); ; 1573 1576 break;} 1574 1577 case 74: 1575 #line 30 4"grammar.y"1578 #line 307 "grammar.y" 1576 1579 { yyval.node = new RelationalNode(yyvsp[-2].node, OpGreater, yyvsp[0].node); ; 1577 1580 break;} 1578 1581 case 75: 1579 #line 30 6"grammar.y"1582 #line 309 "grammar.y" 1580 1583 { yyval.node = new RelationalNode(yyvsp[-2].node, OpLessEq, yyvsp[0].node); ; 1581 1584 break;} 1582 1585 case 76: 1583 #line 3 08"grammar.y"1586 #line 311 "grammar.y" 1584 1587 { yyval.node = new RelationalNode(yyvsp[-2].node, OpGreaterEq, yyvsp[0].node); ; 1585 1588 break;} 1586 1589 case 77: 1587 #line 31 0"grammar.y"1590 #line 313 "grammar.y" 1588 1591 { yyval.node = new RelationalNode(yyvsp[-2].node, OpInstanceOf, yyvsp[0].node); ; 1589 1592 break;} 1590 1593 case 78: 1591 #line 31 2"grammar.y"1594 #line 315 "grammar.y" 1592 1595 { yyval.node = new RelationalNode(yyvsp[-2].node, OpIn, yyvsp[0].node); ; 1593 1596 break;} 1594 1597 case 80: 1595 #line 3 17"grammar.y"1598 #line 320 "grammar.y" 1596 1599 { yyval.node = new EqualNode(yyvsp[-2].node, OpEqEq, yyvsp[0].node); ; 1597 1600 break;} 1598 1601 case 81: 1599 #line 3 18"grammar.y"1602 #line 321 "grammar.y" 1600 1603 { yyval.node = new EqualNode(yyvsp[-2].node, OpNotEq, yyvsp[0].node); ; 1601 1604 break;} 1602 1605 case 82: 1603 #line 3 19"grammar.y"1606 #line 322 "grammar.y" 1604 1607 { yyval.node = new EqualNode(yyvsp[-2].node, OpStrEq, yyvsp[0].node); ; 1605 1608 break;} 1606 1609 case 83: 1607 #line 32 0"grammar.y"1610 #line 323 "grammar.y" 1608 1611 { yyval.node = new EqualNode(yyvsp[-2].node, OpStrNEq, yyvsp[0].node);; 1609 1612 break;} 1610 1613 case 85: 1611 #line 32 5"grammar.y"1614 #line 328 "grammar.y" 1612 1615 { yyval.node = new BitOperNode(yyvsp[-2].node, OpBitAnd, yyvsp[0].node); ; 1613 1616 break;} 1614 1617 case 87: 1615 #line 33 0"grammar.y"1618 #line 333 "grammar.y" 1616 1619 { yyval.node = new BitOperNode(yyvsp[-2].node, OpBitXOr, yyvsp[0].node); ; 1617 1620 break;} 1618 1621 case 89: 1619 #line 33 5"grammar.y"1622 #line 338 "grammar.y" 1620 1623 { yyval.node = new BitOperNode(yyvsp[-2].node, OpBitOr, yyvsp[0].node); ; 1621 1624 break;} 1622 1625 case 91: 1623 #line 34 1"grammar.y"1626 #line 344 "grammar.y" 1624 1627 { yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpAnd, yyvsp[0].node); ; 1625 1628 break;} 1626 1629 case 93: 1627 #line 3 47"grammar.y"1630 #line 350 "grammar.y" 1628 1631 { yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpOr, yyvsp[0].node); ; 1629 1632 break;} 1630 1633 case 95: 1631 #line 35 3"grammar.y"1634 #line 356 "grammar.y" 1632 1635 { yyval.node = new ConditionalNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; 1633 1636 break;} 1634 1637 case 97: 1635 #line 3 59"grammar.y"1638 #line 362 "grammar.y" 1636 1639 { yyval.node = new AssignNode(yyvsp[-2].node, yyvsp[-1].op, yyvsp[0].node);; 1637 1640 break;} 1638 1641 case 98: 1639 #line 36 3"grammar.y"1642 #line 366 "grammar.y" 1640 1643 { yyval.op = OpEqual; ; 1641 1644 break;} 1642 1645 case 99: 1643 #line 36 4"grammar.y"1646 #line 367 "grammar.y" 1644 1647 { yyval.op = OpPlusEq; ; 1645 1648 break;} 1646 1649 case 100: 1647 #line 36 5"grammar.y"1650 #line 368 "grammar.y" 1648 1651 { yyval.op = OpMinusEq; ; 1649 1652 break;} 1650 1653 case 101: 1651 #line 36 6"grammar.y"1654 #line 369 "grammar.y" 1652 1655 { yyval.op = OpMultEq; ; 1653 1656 break;} 1654 1657 case 102: 1655 #line 3 67"grammar.y"1658 #line 370 "grammar.y" 1656 1659 { yyval.op = OpDivEq; ; 1657 1660 break;} 1658 1661 case 103: 1659 #line 3 68"grammar.y"1662 #line 371 "grammar.y" 1660 1663 { yyval.op = OpLShift; ; 1661 1664 break;} 1662 1665 case 104: 1663 #line 3 69"grammar.y"1666 #line 372 "grammar.y" 1664 1667 { yyval.op = OpRShift; ; 1665 1668 break;} 1666 1669 case 105: 1667 #line 37 0"grammar.y"1670 #line 373 "grammar.y" 1668 1671 { yyval.op = OpURShift; ; 1669 1672 break;} 1670 1673 case 106: 1671 #line 37 1"grammar.y"1674 #line 374 "grammar.y" 1672 1675 { yyval.op = OpAndEq; ; 1673 1676 break;} 1674 1677 case 107: 1675 #line 37 2"grammar.y"1678 #line 375 "grammar.y" 1676 1679 { yyval.op = OpXOrEq; ; 1677 1680 break;} 1678 1681 case 108: 1679 #line 37 3"grammar.y"1682 #line 376 "grammar.y" 1680 1683 { yyval.op = OpOrEq; ; 1681 1684 break;} 1682 1685 case 109: 1683 #line 37 4"grammar.y"1686 #line 377 "grammar.y" 1684 1687 { yyval.op = OpModEq; ; 1685 1688 break;} 1686 1689 case 111: 1687 #line 3 79"grammar.y"1690 #line 382 "grammar.y" 1688 1691 { yyval.node = new CommaNode(yyvsp[-2].node, yyvsp[0].node); ; 1689 1692 break;} 1690 1693 case 126: 1691 #line 40 0"grammar.y"1694 #line 403 "grammar.y" 1692 1695 { yyval.stat = new BlockNode(0L); DBG(yyval.stat, yylsp[0], yylsp[0]); ; 1693 1696 break;} 1694 1697 case 127: 1695 #line 40 1"grammar.y"1698 #line 404 "grammar.y" 1696 1699 { yyval.stat = new BlockNode(yyvsp[-1].srcs); DBG(yyval.stat, yylsp[0], yylsp[0]); ; 1697 1700 break;} 1698 1701 case 128: 1699 #line 40 5"grammar.y"1702 #line 408 "grammar.y" 1700 1703 { yyval.slist = new StatListNode(yyvsp[0].stat); ; 1701 1704 break;} 1702 1705 case 129: 1703 #line 40 6"grammar.y"1706 #line 409 "grammar.y" 1704 1707 { yyval.slist = new StatListNode(yyvsp[-1].slist, yyvsp[0].stat); ; 1705 1708 break;} 1706 1709 case 130: 1707 #line 41 0"grammar.y"1710 #line 413 "grammar.y" 1708 1711 { yyval.stat = new VarStatementNode(yyvsp[-1].vlist); 1709 1712 DBG(yyval.stat, yylsp[-2], yylsp[0]); ; 1710 1713 break;} 1711 1714 case 131: 1712 #line 41 2"grammar.y"1715 #line 415 "grammar.y" 1713 1716 { if (automatic()) { 1714 1717 yyval.stat = new VarStatementNode(yyvsp[-1].vlist); … … 1720 1723 break;} 1721 1724 case 132: 1722 #line 42 2"grammar.y"1725 #line 425 "grammar.y" 1723 1726 { yyval.vlist = new VarDeclListNode(yyvsp[0].decl); ; 1724 1727 break;} 1725 1728 case 133: 1726 #line 42 4"grammar.y"1729 #line 427 "grammar.y" 1727 1730 { yyval.vlist = new VarDeclListNode(yyvsp[-2].vlist, yyvsp[0].decl); ; 1728 1731 break;} 1729 1732 case 134: 1730 #line 4 28"grammar.y"1733 #line 431 "grammar.y" 1731 1734 { yyval.decl = new VarDeclNode(*yyvsp[0].ident, 0); delete yyvsp[0].ident; ; 1732 1735 break;} 1733 1736 case 135: 1734 #line 4 29"grammar.y"1737 #line 432 "grammar.y" 1735 1738 { yyval.decl = new VarDeclNode(*yyvsp[-1].ident, yyvsp[0].init); delete yyvsp[-1].ident; ; 1736 1739 break;} 1737 1740 case 136: 1738 #line 43 3"grammar.y"1741 #line 436 "grammar.y" 1739 1742 { yyval.init = new AssignExprNode(yyvsp[0].node); ; 1740 1743 break;} 1741 1744 case 137: 1742 #line 4 37"grammar.y"1745 #line 440 "grammar.y" 1743 1746 { yyval.stat = new EmptyStatementNode(); ; 1744 1747 break;} 1745 1748 case 138: 1746 #line 44 1"grammar.y"1749 #line 444 "grammar.y" 1747 1750 { yyval.stat = new ExprStatementNode(yyvsp[-1].node); 1748 1751 DBG(yyval.stat, yylsp[-1], yylsp[0]); ; 1749 1752 break;} 1750 1753 case 139: 1751 #line 44 3"grammar.y"1754 #line 446 "grammar.y" 1752 1755 { if (automatic()) { 1753 1756 yyval.stat = new ExprStatementNode(yyvsp[-1].node); … … 1757 1760 break;} 1758 1761 case 140: 1759 #line 45 1"grammar.y"1762 #line 454 "grammar.y" 1760 1763 { yyval.stat = new IfNode(yyvsp[-2].node,yyvsp[0].stat,0L);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ; 1761 1764 break;} 1762 1765 case 141: 1763 #line 45 3"grammar.y"1766 #line 456 "grammar.y" 1764 1767 { yyval.stat = new IfNode(yyvsp[-4].node,yyvsp[-2].stat,yyvsp[0].stat);DBG(yyval.stat,yylsp[-6],yylsp[-3]); ; 1765 1768 break;} 1766 1769 case 142: 1767 #line 4 57"grammar.y"1770 #line 460 "grammar.y" 1768 1771 { yyval.stat=new DoWhileNode(yyvsp[-4].stat,yyvsp[-1].node);DBG(yyval.stat,yylsp[-5],yylsp[-3]);; 1769 1772 break;} 1770 1773 case 143: 1771 #line 4 58"grammar.y"1774 #line 461 "grammar.y" 1772 1775 { yyval.stat = new WhileNode(yyvsp[-2].node,yyvsp[0].stat);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ; 1773 1776 break;} 1774 1777 case 144: 1775 #line 46 0"grammar.y"1778 #line 463 "grammar.y" 1776 1779 { yyval.stat = new ForNode(yyvsp[-6].node,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat); 1777 1780 DBG(yyval.stat,yylsp[-8],yylsp[-1]); ; 1778 1781 break;} 1779 1782 case 145: 1780 #line 46 3"grammar.y"1783 #line 466 "grammar.y" 1781 1784 { yyval.stat = new ForNode(yyvsp[-6].vlist,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat); 1782 1785 DBG(yyval.stat,yylsp[-9],yylsp[-1]); ; 1783 1786 break;} 1784 1787 case 146: 1785 #line 46 6"grammar.y"1788 #line 469 "grammar.y" 1786 1789 { yyval.stat = new ForInNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].stat); 1787 1790 DBG(yyval.stat,yylsp[-6],yylsp[-1]); ; 1788 1791 break;} 1789 1792 case 147: 1790 #line 4 69"grammar.y"1793 #line 472 "grammar.y" 1791 1794 { yyval.stat = new ForInNode(*yyvsp[-4].ident,0L,yyvsp[-2].node,yyvsp[0].stat); 1792 1795 DBG(yyval.stat,yylsp[-7],yylsp[-1]); … … 1794 1797 break;} 1795 1798 case 148: 1796 #line 47 3"grammar.y"1799 #line 476 "grammar.y" 1797 1800 { yyval.stat = new ForInNode(*yyvsp[-5].ident,yyvsp[-4].init,yyvsp[-2].node,yyvsp[0].stat); 1798 1801 DBG(yyval.stat,yylsp[-8],yylsp[-1]); … … 1800 1803 break;} 1801 1804 case 149: 1802 #line 4 79"grammar.y"1805 #line 482 "grammar.y" 1803 1806 { yyval.node = 0L; ; 1804 1807 break;} 1805 1808 case 151: 1806 #line 48 4"grammar.y"1809 #line 487 "grammar.y" 1807 1810 { yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); ; 1808 1811 break;} 1809 1812 case 152: 1810 #line 48 5"grammar.y"1813 #line 488 "grammar.y" 1811 1814 { if (automatic()) { 1812 1815 yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); … … 1815 1818 break;} 1816 1819 case 153: 1817 #line 4 89"grammar.y"1820 #line 492 "grammar.y" 1818 1821 { yyval.stat = new ContinueNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[0]); 1819 1822 delete yyvsp[-1].ident; ; 1820 1823 break;} 1821 1824 case 154: 1822 #line 49 1"grammar.y"1825 #line 494 "grammar.y" 1823 1826 { if (automatic()) { 1824 1827 yyval.stat = new ContinueNode(*yyvsp[-1].ident);DBG(yyval.stat,yylsp[-2],yylsp[-1]); … … 1828 1831 break;} 1829 1832 case 155: 1830 #line 499"grammar.y"1833 #line 502 "grammar.y" 1831 1834 { yyval.stat = new BreakNode();DBG(yyval.stat,yylsp[-1],yylsp[0]); ; 1832 1835 break;} 1833 1836 case 156: 1834 #line 50 0"grammar.y"1837 #line 503 "grammar.y" 1835 1838 { if (automatic()) { 1836 1839 yyval.stat = new BreakNode(); DBG(yyval.stat,yylsp[-1],yylsp[-1]); … … 1839 1842 break;} 1840 1843 case 157: 1841 #line 50 4"grammar.y"1844 #line 507 "grammar.y" 1842 1845 { yyval.stat = new BreakNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[0]); 1843 1846 delete yyvsp[-1].ident; ; 1844 1847 break;} 1845 1848 case 158: 1846 #line 50 6"grammar.y"1849 #line 509 "grammar.y" 1847 1850 { if (automatic()) { 1848 1851 yyval.stat = new BreakNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[-1]); … … 1853 1856 break;} 1854 1857 case 159: 1855 #line 51 5"grammar.y"1858 #line 518 "grammar.y" 1856 1859 { yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[0]); ; 1857 1860 break;} 1858 1861 case 160: 1859 #line 51 6"grammar.y"1862 #line 519 "grammar.y" 1860 1863 { if (automatic()) { 1861 1864 yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[-1]); … … 1864 1867 break;} 1865 1868 case 161: 1866 #line 52 0"grammar.y"1869 #line 523 "grammar.y" 1867 1870 { yyval.stat = new ReturnNode(yyvsp[-1].node); ; 1868 1871 break;} 1869 1872 case 162: 1870 #line 52 1"grammar.y"1873 #line 524 "grammar.y" 1871 1874 { if (automatic()) 1872 1875 yyval.stat = new ReturnNode(yyvsp[-1].node); … … 1875 1878 break;} 1876 1879 case 163: 1877 #line 5 28"grammar.y"1880 #line 531 "grammar.y" 1878 1881 { yyval.stat = new WithNode(yyvsp[-2].node,yyvsp[0].stat); 1879 1882 DBG(yyval.stat, yylsp[-4], yylsp[-1]); ; 1880 1883 break;} 1881 1884 case 164: 1882 #line 53 3"grammar.y"1885 #line 536 "grammar.y" 1883 1886 { yyval.stat = new SwitchNode(yyvsp[-2].node, yyvsp[0].cblk); 1884 1887 DBG(yyval.stat, yylsp[-4], yylsp[-1]); ; 1885 1888 break;} 1886 1889 case 165: 1887 #line 5 38"grammar.y"1890 #line 541 "grammar.y" 1888 1891 { yyval.cblk = new CaseBlockNode(yyvsp[-1].clist, 0L, 0L); ; 1889 1892 break;} 1890 1893 case 166: 1891 #line 54 0"grammar.y"1894 #line 543 "grammar.y" 1892 1895 { yyval.cblk = new CaseBlockNode(yyvsp[-3].clist, yyvsp[-2].ccl, yyvsp[-1].clist); ; 1893 1896 break;} 1894 1897 case 167: 1895 #line 54 4"grammar.y"1898 #line 547 "grammar.y" 1896 1899 { yyval.clist = 0L; ; 1897 1900 break;} 1898 1901 case 169: 1899 #line 5 49"grammar.y"1902 #line 552 "grammar.y" 1900 1903 { yyval.clist = new ClauseListNode(yyvsp[0].ccl); ; 1901 1904 break;} 1902 1905 case 170: 1903 #line 55 0"grammar.y"1906 #line 553 "grammar.y" 1904 1907 { yyval.clist = new ClauseListNode(yyvsp[-1].clist, yyvsp[0].ccl); ; 1905 1908 break;} 1906 1909 case 171: 1907 #line 55 4"grammar.y"1910 #line 557 "grammar.y" 1908 1911 { yyval.ccl = new CaseClauseNode(yyvsp[-1].node, 0L); ; 1909 1912 break;} 1910 1913 case 172: 1911 #line 55 5"grammar.y"1914 #line 558 "grammar.y" 1912 1915 { yyval.ccl = new CaseClauseNode(yyvsp[-2].node, yyvsp[0].slist); ; 1913 1916 break;} 1914 1917 case 173: 1915 #line 5 59"grammar.y"1918 #line 562 "grammar.y" 1916 1919 { yyval.ccl = new CaseClauseNode(0L, 0L);; ; 1917 1920 break;} 1918 1921 case 174: 1919 #line 56 0"grammar.y"1922 #line 563 "grammar.y" 1920 1923 { yyval.ccl = new CaseClauseNode(0L, yyvsp[0].slist); ; 1921 1924 break;} 1922 1925 case 175: 1923 #line 56 4"grammar.y"1926 #line 567 "grammar.y" 1924 1927 { yyvsp[0].stat->pushLabel(*yyvsp[-2].ident); 1925 1928 yyval.stat = new LabelNode(*yyvsp[-2].ident, yyvsp[0].stat); … … 1927 1930 break;} 1928 1931 case 176: 1929 #line 57 0"grammar.y"1932 #line 573 "grammar.y" 1930 1933 { yyval.stat = new ThrowNode(yyvsp[-1].node); ; 1931 1934 break;} 1932 1935 case 177: 1933 #line 57 4"grammar.y"1936 #line 577 "grammar.y" 1934 1937 { yyval.stat = new TryNode(yyvsp[-1].stat, yyvsp[0].node); ; 1935 1938 break;} 1936 1939 case 178: 1937 #line 57 5"grammar.y"1940 #line 578 "grammar.y" 1938 1941 { yyval.stat = new TryNode(yyvsp[-1].stat, 0L, yyvsp[0].node); ; 1939 1942 break;} 1940 1943 case 179: 1941 #line 57 6"grammar.y"1944 #line 579 "grammar.y" 1942 1945 { yyval.stat = new TryNode(yyvsp[-2].stat, yyvsp[-1].node, yyvsp[0].node); ; 1943 1946 break;} 1944 1947 case 180: 1945 #line 58 0"grammar.y"1948 #line 583 "grammar.y" 1946 1949 { yyval.node = new CatchNode(*yyvsp[-2].ident, yyvsp[0].stat); delete yyvsp[-2].ident; ; 1947 1950 break;} 1948 1951 case 181: 1949 #line 58 4"grammar.y"1952 #line 587 "grammar.y" 1950 1953 { yyval.node = new FinallyNode(yyvsp[0].stat); ; 1951 1954 break;} 1952 1955 case 182: 1953 #line 5 88"grammar.y"1956 #line 591 "grammar.y" 1954 1957 { yyval.func = new FuncDeclNode(*yyvsp[-3].ident, 0L, yyvsp[0].body); 1955 1958 delete yyvsp[-3].ident; ; 1956 1959 break;} 1957 1960 case 183: 1958 #line 59 1"grammar.y"1961 #line 594 "grammar.y" 1959 1962 { yyval.func = new FuncDeclNode(*yyvsp[-4].ident, yyvsp[-2].param, yyvsp[0].body); 1960 1963 delete yyvsp[-4].ident; ; 1961 1964 break;} 1962 1965 case 184: 1963 #line 59 5"grammar.y"1966 #line 598 "grammar.y" 1964 1967 { yyval.node = new FuncExprNode(0L, yyvsp[0].body); ; 1965 1968 break;} 1966 1969 case 185: 1967 #line 597"grammar.y"1970 #line 600 "grammar.y" 1968 1971 { yyval.node = new FuncExprNode(yyvsp[-2].param, yyvsp[0].body); ; 1969 1972 break;} 1970 1973 case 186: 1971 #line 60 2"grammar.y"1974 #line 605 "grammar.y" 1972 1975 { yyval.param = new ParameterNode(*yyvsp[0].ident); delete yyvsp[0].ident; ; 1973 1976 break;} 1974 1977 case 187: 1975 #line 60 3"grammar.y"1978 #line 606 "grammar.y" 1976 1979 { yyval.param = new ParameterNode(yyvsp[-2].param, *yyvsp[0].ident); delete yyvsp[0].ident; ; 1977 1980 break;} 1978 1981 case 188: 1979 #line 6 07"grammar.y"1982 #line 610 "grammar.y" 1980 1983 { yyval.body = new FunctionBodyNode(0L); 1981 1984 DBG(yyval.body, yylsp[-1], yylsp[0]);; 1982 1985 break;} 1983 1986 case 189: 1984 #line 6 09"grammar.y"1987 #line 612 "grammar.y" 1985 1988 { yyval.body = new FunctionBodyNode(yyvsp[-1].srcs); 1986 1989 DBG(yyval.body, yylsp[-2], yylsp[0]);; 1987 1990 break;} 1988 1991 case 190: 1989 #line 61 4"grammar.y"1992 #line 617 "grammar.y" 1990 1993 { yyval.prog = new ProgramNode(0L); 1991 1994 Parser::progNode = yyval.prog; ; 1992 1995 break;} 1993 1996 case 191: 1994 #line 61 6"grammar.y"1997 #line 619 "grammar.y" 1995 1998 { yyval.prog = new ProgramNode(yyvsp[0].srcs); 1996 1999 Parser::progNode = yyval.prog; ; 1997 2000 break;} 1998 2001 case 192: 1999 #line 62 1"grammar.y"2002 #line 624 "grammar.y" 2000 2003 { yyval.srcs = new SourceElementsNode(yyvsp[0].stat); ; 2001 2004 break;} 2002 2005 case 193: 2003 #line 62 2"grammar.y"2006 #line 625 "grammar.y" 2004 2007 { yyval.srcs = new SourceElementsNode(yyvsp[-1].srcs, yyvsp[0].stat); ; 2005 2008 break;} 2006 2009 case 194: 2007 #line 62 6"grammar.y"2010 #line 629 "grammar.y" 2008 2011 { yyval.stat = yyvsp[0].stat; ; 2009 2012 break;} 2010 2013 case 195: 2011 #line 6 27"grammar.y"2014 #line 630 "grammar.y" 2012 2015 { yyval.stat = yyvsp[0].func; ; 2013 2016 break;} … … 2235 2238 return 1; 2236 2239 } 2237 #line 63 0"grammar.y"2240 #line 633 "grammar.y" 2238 2241 2239 2242
Note:
See TracChangeset
for help on using the changeset viewer.