Changeset 3192 in webkit for trunk/JavaScriptCore/kjs/grammar.cpp
- Timestamp:
- Dec 28, 2002, 3:07:37 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/grammar.cpp
r3098 r3192 148 148 CaseClauseNode *ccl; 149 149 ElementNode *elm; 150 ElisionNode *eli;151 150 Operator op; 151 PropertyValueNode *plist; 152 PropertyNode *pnode; 152 153 } YYSTYPE; 153 154 … … 315 316 #if YYDEBUG != 0 316 317 static const short yyrline[] = { 0, 317 16 0, 162, 163, 164, 165, 166, 169, 175, 177, 179,318 18 0, 181, 182, 183, 186, 188, 189, 192, 194, 198,319 20 0, 203, 205, 208, 210, 214, 216, 217, 220, 222,320 22 3, 224, 225, 228, 230, 233, 235, 236, 237, 241,321 24 3, 246, 248, 251, 253, 256, 258, 259, 262, 264,322 26 5, 266, 267, 268, 269, 270, 271, 272, 273, 274,323 2 77, 279, 280, 281, 284, 286, 287, 290, 292, 293,324 29 4, 297, 299, 301, 303, 305, 307, 309, 313, 315,325 31 6, 317, 318, 321, 323, 326, 328, 331, 333, 336,326 3 38, 342, 344, 348, 350, 354, 356, 360, 362, 363,327 36 4, 365, 366, 367, 368, 369, 370, 371, 372, 375,328 3 77, 380, 382, 383, 384, 385, 386, 387, 388, 389,329 39 0, 391, 392, 393, 394, 397, 399, 402, 404, 407,330 41 0, 419, 421, 425, 427, 430, 434, 438, 441, 448,331 45 0, 454, 456, 457, 460, 463, 466, 470, 476, 478,332 48 1, 483, 487, 489, 496, 498, 502, 504, 512, 514,333 5 18, 519, 525, 530, 535, 537, 541, 543, 546, 548,334 55 1, 553, 556, 558, 561, 567, 571, 573, 574, 577,335 58 1, 585, 588, 592, 594, 599, 601, 605, 608, 612,336 61 5, 619, 621, 624, 626318 163, 165, 166, 167, 168, 169, 172, 178, 180, 182, 319 183, 184, 185, 186, 189, 191, 192, 195, 197, 201, 320 203, 206, 208, 211, 213, 217, 219, 220, 223, 225, 321 226, 227, 228, 231, 233, 236, 238, 239, 240, 244, 322 246, 249, 251, 254, 256, 259, 261, 262, 265, 267, 323 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 324 280, 282, 283, 284, 287, 289, 290, 293, 295, 296, 325 297, 300, 302, 304, 306, 308, 310, 312, 316, 318, 326 319, 320, 321, 324, 326, 329, 331, 334, 336, 339, 327 341, 345, 347, 351, 353, 357, 359, 363, 365, 366, 328 367, 368, 369, 370, 371, 372, 373, 374, 375, 378, 329 380, 383, 385, 386, 387, 388, 389, 390, 391, 392, 330 393, 394, 395, 396, 397, 400, 402, 405, 407, 410, 331 413, 422, 424, 428, 430, 433, 437, 441, 444, 451, 332 453, 457, 459, 460, 463, 466, 469, 473, 479, 481, 333 484, 486, 490, 492, 499, 501, 505, 507, 515, 517, 334 521, 522, 528, 533, 538, 540, 544, 546, 549, 551, 335 554, 556, 559, 561, 564, 570, 574, 576, 577, 580, 336 584, 588, 591, 595, 597, 602, 604, 608, 611, 615, 337 618, 622, 624, 627, 629 337 338 }; 338 339 #endif … … 1293 1294 1294 1295 case 1: 1295 #line 16 1"grammar.y"1296 #line 164 "grammar.y" 1296 1297 { yyval.node = new NullNode(); ; 1297 1298 break;} 1298 1299 case 2: 1299 #line 16 2"grammar.y"1300 #line 165 "grammar.y" 1300 1301 { yyval.node = new BooleanNode(true); ; 1301 1302 break;} 1302 1303 case 3: 1303 #line 16 3"grammar.y"1304 #line 166 "grammar.y" 1304 1305 { yyval.node = new BooleanNode(false); ; 1305 1306 break;} 1306 1307 case 4: 1307 #line 16 4"grammar.y"1308 #line 167 "grammar.y" 1308 1309 { yyval.node = new NumberNode(yyvsp[0].dval); ; 1309 1310 break;} 1310 1311 case 5: 1311 #line 16 5"grammar.y"1312 #line 168 "grammar.y" 1312 1313 { yyval.node = new StringNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ; 1313 1314 break;} 1314 1315 case 6: 1315 #line 16 6"grammar.y"1316 #line 169 "grammar.y" 1316 1317 { Lexer *l = Lexer::curr(); 1317 1318 if (!l->scanRegExp()) YYABORT; … … 1319 1320 break;} 1320 1321 case 7: 1321 #line 17 0"grammar.y"1322 #line 173 "grammar.y" 1322 1323 { Lexer *l = Lexer::curr(); 1323 1324 if (!l->scanRegExp()) YYABORT; … … 1325 1326 break;} 1326 1327 case 8: 1327 #line 17 6"grammar.y"1328 #line 179 "grammar.y" 1328 1329 { yyval.node = new ThisNode(); ; 1329 1330 break;} 1330 1331 case 9: 1331 #line 1 77"grammar.y"1332 #line 180 "grammar.y" 1332 1333 { yyval.node = new ResolveNode(*yyvsp[0].ident); 1333 1334 delete yyvsp[0].ident; ; 1334 1335 break;} 1335 1336 case 12: 1336 #line 18 1"grammar.y"1337 #line 184 "grammar.y" 1337 1338 { yyval.node = new GroupNode(yyvsp[-1].node); ; 1338 1339 break;} 1339 1340 case 13: 1340 #line 18 2"grammar.y"1341 #line 185 "grammar.y" 1341 1342 { yyval.node = new ObjectLiteralNode(0L); ; 1342 1343 break;} 1343 1344 case 14: 1344 #line 18 3"grammar.y"1345 { yyval.node = new ObjectLiteralNode(yyvsp[-1]. node); ;1345 #line 186 "grammar.y" 1346 { yyval.node = new ObjectLiteralNode(yyvsp[-1].plist); ; 1346 1347 break;} 1347 1348 case 15: 1348 #line 1 87"grammar.y"1349 { yyval.node = new ArrayNode(yyvsp[-1]. eli); ;1349 #line 190 "grammar.y" 1350 { yyval.node = new ArrayNode(yyvsp[-1].ival); ; 1350 1351 break;} 1351 1352 case 16: 1352 #line 1 88"grammar.y"1353 #line 191 "grammar.y" 1353 1354 { yyval.node = new ArrayNode(yyvsp[-1].elm); ; 1354 1355 break;} 1355 1356 case 17: 1356 #line 1 89"grammar.y"1357 { yyval.node = new ArrayNode(yyvsp[-1]. eli, yyvsp[-3].elm); ;1357 #line 192 "grammar.y" 1358 { yyval.node = new ArrayNode(yyvsp[-1].ival, yyvsp[-3].elm); ; 1358 1359 break;} 1359 1360 case 18: 1360 #line 19 3"grammar.y"1361 { yyval.elm = new ElementNode(yyvsp[-1]. eli, yyvsp[0].node); ;1361 #line 196 "grammar.y" 1362 { yyval.elm = new ElementNode(yyvsp[-1].ival, yyvsp[0].node); ; 1362 1363 break;} 1363 1364 case 19: 1364 #line 19 5"grammar.y"1365 { yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1]. eli, yyvsp[0].node); ;1365 #line 198 "grammar.y" 1366 { yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1].ival, yyvsp[0].node); ; 1366 1367 break;} 1367 1368 case 20: 1368 #line 199"grammar.y"1369 { yyval. eli = 0L; ;1369 #line 202 "grammar.y" 1370 { yyval.ival = 0; ; 1370 1371 break;} 1371 1372 case 22: 1372 #line 20 4"grammar.y"1373 { yyval. eli = new ElisionNode(0L); ;1373 #line 207 "grammar.y" 1374 { yyval.ival = 1; ; 1374 1375 break;} 1375 1376 case 23: 1376 #line 20 5"grammar.y"1377 { yyval. eli = new ElisionNode(yyvsp[-1].eli); ;1377 #line 208 "grammar.y" 1378 { yyval.ival = yyvsp[-1].ival + 1; ; 1378 1379 break;} 1379 1380 case 24: 1380 #line 2 09"grammar.y"1381 { yyval. node = new PropertyValueNode(yyvsp[-2].node, yyvsp[0].node); ;1381 #line 212 "grammar.y" 1382 { yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node); ; 1382 1383 break;} 1383 1384 case 25: 1384 #line 21 1"grammar.y"1385 { yyval. node = new PropertyValueNode(yyvsp[-2].node, yyvsp[0].node, yyvsp[-4].node); ;1385 #line 214 "grammar.y" 1386 { yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node, yyvsp[-4].plist); ; 1386 1387 break;} 1387 1388 case 26: 1388 #line 21 5"grammar.y"1389 { yyval. node = new PropertyNode(*yyvsp[0].ident); delete yyvsp[0].ident; ;1389 #line 218 "grammar.y" 1390 { yyval.pnode = new PropertyNode(*yyvsp[0].ident); delete yyvsp[0].ident; ; 1390 1391 break;} 1391 1392 case 27: 1392 #line 21 6"grammar.y"1393 { yyval. node = new PropertyNode(Identifier(*yyvsp[0].ustr)); delete yyvsp[0].ustr; ;1393 #line 219 "grammar.y" 1394 { yyval.pnode = new PropertyNode(Identifier(*yyvsp[0].ustr)); delete yyvsp[0].ustr; ; 1394 1395 break;} 1395 1396 case 28: 1396 #line 2 17"grammar.y"1397 { yyval. node = new PropertyNode(yyvsp[0].dval); ;1397 #line 220 "grammar.y" 1398 { yyval.pnode = new PropertyNode(yyvsp[0].dval); ; 1398 1399 break;} 1399 1400 case 31: 1400 #line 22 3"grammar.y"1401 #line 226 "grammar.y" 1401 1402 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ; 1402 1403 break;} 1403 1404 case 32: 1404 #line 22 4"grammar.y"1405 #line 227 "grammar.y" 1405 1406 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); delete yyvsp[0].ident; ; 1406 1407 break;} 1407 1408 case 33: 1408 #line 22 5"grammar.y"1409 #line 228 "grammar.y" 1409 1410 { yyval.node = new NewExprNode(yyvsp[-1].node, yyvsp[0].args); ; 1410 1411 break;} 1411 1412 case 35: 1412 #line 23 0"grammar.y"1413 #line 233 "grammar.y" 1413 1414 { yyval.node = new NewExprNode(yyvsp[0].node); ; 1414 1415 break;} 1415 1416 case 36: 1416 #line 23 4"grammar.y"1417 #line 237 "grammar.y" 1417 1418 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ; 1418 1419 break;} 1419 1420 case 37: 1420 #line 23 5"grammar.y"1421 #line 238 "grammar.y" 1421 1422 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ; 1422 1423 break;} 1423 1424 case 38: 1424 #line 23 6"grammar.y"1425 #line 239 "grammar.y" 1425 1426 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ; 1426 1427 break;} 1427 1428 case 39: 1428 #line 2 37"grammar.y"1429 #line 240 "grammar.y" 1429 1430 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); 1430 1431 delete yyvsp[0].ident; ; 1431 1432 break;} 1432 1433 case 40: 1433 #line 24 2"grammar.y"1434 #line 245 "grammar.y" 1434 1435 { yyval.args = new ArgumentsNode(0L); ; 1435 1436 break;} 1436 1437 case 41: 1437 #line 24 3"grammar.y"1438 #line 246 "grammar.y" 1438 1439 { yyval.args = new ArgumentsNode(yyvsp[-1].alist); ; 1439 1440 break;} 1440 1441 case 42: 1441 #line 2 47"grammar.y"1442 #line 250 "grammar.y" 1442 1443 { yyval.alist = new ArgumentListNode(yyvsp[0].node); ; 1443 1444 break;} 1444 1445 case 43: 1445 #line 2 48"grammar.y"1446 #line 251 "grammar.y" 1446 1447 { yyval.alist = new ArgumentListNode(yyvsp[-2].alist, yyvsp[0].node); ; 1447 1448 break;} 1448 1449 case 47: 1449 #line 2 58"grammar.y"1450 #line 261 "grammar.y" 1450 1451 { yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ; 1451 1452 break;} 1452 1453 case 48: 1453 #line 2 59"grammar.y"1454 #line 262 "grammar.y" 1454 1455 { yyval.node = new PostfixNode(yyvsp[-1].node, OpMinusMinus); ; 1455 1456 break;} 1456 1457 case 50: 1457 #line 26 4"grammar.y"1458 #line 267 "grammar.y" 1458 1459 { yyval.node = new DeleteNode(yyvsp[0].node); ; 1459 1460 break;} 1460 1461 case 51: 1461 #line 26 5"grammar.y"1462 #line 268 "grammar.y" 1462 1463 { yyval.node = new VoidNode(yyvsp[0].node); ; 1463 1464 break;} 1464 1465 case 52: 1465 #line 26 6"grammar.y"1466 #line 269 "grammar.y" 1466 1467 { yyval.node = new TypeOfNode(yyvsp[0].node); ; 1467 1468 break;} 1468 1469 case 53: 1469 #line 2 67"grammar.y"1470 #line 270 "grammar.y" 1470 1471 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ; 1471 1472 break;} 1472 1473 case 54: 1473 #line 2 68"grammar.y"1474 #line 271 "grammar.y" 1474 1475 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ; 1475 1476 break;} 1476 1477 case 55: 1477 #line 2 69"grammar.y"1478 #line 272 "grammar.y" 1478 1479 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ; 1479 1480 break;} 1480 1481 case 56: 1481 #line 27 0"grammar.y"1482 #line 273 "grammar.y" 1482 1483 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ; 1483 1484 break;} 1484 1485 case 57: 1485 #line 27 1"grammar.y"1486 #line 274 "grammar.y" 1486 1487 { yyval.node = new UnaryPlusNode(yyvsp[0].node); ; 1487 1488 break;} 1488 1489 case 58: 1489 #line 27 2"grammar.y"1490 #line 275 "grammar.y" 1490 1491 { yyval.node = new NegateNode(yyvsp[0].node); ; 1491 1492 break;} 1492 1493 case 59: 1493 #line 27 3"grammar.y"1494 #line 276 "grammar.y" 1494 1495 { yyval.node = new BitwiseNotNode(yyvsp[0].node); ; 1495 1496 break;} 1496 1497 case 60: 1497 #line 27 4"grammar.y"1498 #line 277 "grammar.y" 1498 1499 { yyval.node = new LogicalNotNode(yyvsp[0].node); ; 1499 1500 break;} 1500 1501 case 62: 1501 #line 2 79"grammar.y"1502 #line 282 "grammar.y" 1502 1503 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ; 1503 1504 break;} 1504 1505 case 63: 1505 #line 28 0"grammar.y"1506 #line 283 "grammar.y" 1506 1507 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ; 1507 1508 break;} 1508 1509 case 64: 1509 #line 28 1"grammar.y"1510 #line 284 "grammar.y" 1510 1511 { yyval.node = new MultNode(yyvsp[-2].node,yyvsp[0].node,'%'); ; 1511 1512 break;} 1512 1513 case 66: 1513 #line 28 6"grammar.y"1514 #line 289 "grammar.y" 1514 1515 { yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '+'); ; 1515 1516 break;} 1516 1517 case 67: 1517 #line 2 87"grammar.y"1518 #line 290 "grammar.y" 1518 1519 { yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '-'); ; 1519 1520 break;} 1520 1521 case 69: 1521 #line 29 2"grammar.y"1522 #line 295 "grammar.y" 1522 1523 { yyval.node = new ShiftNode(yyvsp[-2].node, OpLShift, yyvsp[0].node); ; 1523 1524 break;} 1524 1525 case 70: 1525 #line 29 3"grammar.y"1526 #line 296 "grammar.y" 1526 1527 { yyval.node = new ShiftNode(yyvsp[-2].node, OpRShift, yyvsp[0].node); ; 1527 1528 break;} 1528 1529 case 71: 1529 #line 29 4"grammar.y"1530 #line 297 "grammar.y" 1530 1531 { yyval.node = new ShiftNode(yyvsp[-2].node, OpURShift, yyvsp[0].node); ; 1531 1532 break;} 1532 1533 case 73: 1533 #line 30 0"grammar.y"1534 #line 303 "grammar.y" 1534 1535 { yyval.node = new RelationalNode(yyvsp[-2].node, OpLess, yyvsp[0].node); ; 1535 1536 break;} 1536 1537 case 74: 1537 #line 30 2"grammar.y"1538 #line 305 "grammar.y" 1538 1539 { yyval.node = new RelationalNode(yyvsp[-2].node, OpGreater, yyvsp[0].node); ; 1539 1540 break;} 1540 1541 case 75: 1541 #line 30 4"grammar.y"1542 #line 307 "grammar.y" 1542 1543 { yyval.node = new RelationalNode(yyvsp[-2].node, OpLessEq, yyvsp[0].node); ; 1543 1544 break;} 1544 1545 case 76: 1545 #line 30 6"grammar.y"1546 #line 309 "grammar.y" 1546 1547 { yyval.node = new RelationalNode(yyvsp[-2].node, OpGreaterEq, yyvsp[0].node); ; 1547 1548 break;} 1548 1549 case 77: 1549 #line 3 08"grammar.y"1550 #line 311 "grammar.y" 1550 1551 { yyval.node = new RelationalNode(yyvsp[-2].node, OpInstanceOf, yyvsp[0].node); ; 1551 1552 break;} 1552 1553 case 78: 1553 #line 31 0"grammar.y"1554 #line 313 "grammar.y" 1554 1555 { yyval.node = new RelationalNode(yyvsp[-2].node, OpIn, yyvsp[0].node); ; 1555 1556 break;} 1556 1557 case 80: 1557 #line 31 5"grammar.y"1558 #line 318 "grammar.y" 1558 1559 { yyval.node = new EqualNode(yyvsp[-2].node, OpEqEq, yyvsp[0].node); ; 1559 1560 break;} 1560 1561 case 81: 1561 #line 31 6"grammar.y"1562 #line 319 "grammar.y" 1562 1563 { yyval.node = new EqualNode(yyvsp[-2].node, OpNotEq, yyvsp[0].node); ; 1563 1564 break;} 1564 1565 case 82: 1565 #line 3 17"grammar.y"1566 #line 320 "grammar.y" 1566 1567 { yyval.node = new EqualNode(yyvsp[-2].node, OpStrEq, yyvsp[0].node); ; 1567 1568 break;} 1568 1569 case 83: 1569 #line 3 18"grammar.y"1570 #line 321 "grammar.y" 1570 1571 { yyval.node = new EqualNode(yyvsp[-2].node, OpStrNEq, yyvsp[0].node);; 1571 1572 break;} 1572 1573 case 85: 1573 #line 32 3"grammar.y"1574 #line 326 "grammar.y" 1574 1575 { yyval.node = new BitOperNode(yyvsp[-2].node, OpBitAnd, yyvsp[0].node); ; 1575 1576 break;} 1576 1577 case 87: 1577 #line 3 28"grammar.y"1578 #line 331 "grammar.y" 1578 1579 { yyval.node = new BitOperNode(yyvsp[-2].node, OpBitXOr, yyvsp[0].node); ; 1579 1580 break;} 1580 1581 case 89: 1581 #line 33 3"grammar.y"1582 #line 336 "grammar.y" 1582 1583 { yyval.node = new BitOperNode(yyvsp[-2].node, OpBitOr, yyvsp[0].node); ; 1583 1584 break;} 1584 1585 case 91: 1585 #line 3 39"grammar.y"1586 #line 342 "grammar.y" 1586 1587 { yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpAnd, yyvsp[0].node); ; 1587 1588 break;} 1588 1589 case 93: 1589 #line 34 5"grammar.y"1590 #line 348 "grammar.y" 1590 1591 { yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpOr, yyvsp[0].node); ; 1591 1592 break;} 1592 1593 case 95: 1593 #line 35 1"grammar.y"1594 #line 354 "grammar.y" 1594 1595 { yyval.node = new ConditionalNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ; 1595 1596 break;} 1596 1597 case 97: 1597 #line 3 57"grammar.y"1598 #line 360 "grammar.y" 1598 1599 { yyval.node = new AssignNode(yyvsp[-2].node, yyvsp[-1].op, yyvsp[0].node);; 1599 1600 break;} 1600 1601 case 98: 1601 #line 36 1"grammar.y"1602 #line 364 "grammar.y" 1602 1603 { yyval.op = OpEqual; ; 1603 1604 break;} 1604 1605 case 99: 1605 #line 36 2"grammar.y"1606 #line 365 "grammar.y" 1606 1607 { yyval.op = OpPlusEq; ; 1607 1608 break;} 1608 1609 case 100: 1609 #line 36 3"grammar.y"1610 #line 366 "grammar.y" 1610 1611 { yyval.op = OpMinusEq; ; 1611 1612 break;} 1612 1613 case 101: 1613 #line 36 4"grammar.y"1614 #line 367 "grammar.y" 1614 1615 { yyval.op = OpMultEq; ; 1615 1616 break;} 1616 1617 case 102: 1617 #line 36 5"grammar.y"1618 #line 368 "grammar.y" 1618 1619 { yyval.op = OpDivEq; ; 1619 1620 break;} 1620 1621 case 103: 1621 #line 36 6"grammar.y"1622 #line 369 "grammar.y" 1622 1623 { yyval.op = OpLShift; ; 1623 1624 break;} 1624 1625 case 104: 1625 #line 3 67"grammar.y"1626 #line 370 "grammar.y" 1626 1627 { yyval.op = OpRShift; ; 1627 1628 break;} 1628 1629 case 105: 1629 #line 3 68"grammar.y"1630 #line 371 "grammar.y" 1630 1631 { yyval.op = OpURShift; ; 1631 1632 break;} 1632 1633 case 106: 1633 #line 3 69"grammar.y"1634 #line 372 "grammar.y" 1634 1635 { yyval.op = OpAndEq; ; 1635 1636 break;} 1636 1637 case 107: 1637 #line 37 0"grammar.y"1638 #line 373 "grammar.y" 1638 1639 { yyval.op = OpXOrEq; ; 1639 1640 break;} 1640 1641 case 108: 1641 #line 37 1"grammar.y"1642 #line 374 "grammar.y" 1642 1643 { yyval.op = OpOrEq; ; 1643 1644 break;} 1644 1645 case 109: 1645 #line 37 2"grammar.y"1646 #line 375 "grammar.y" 1646 1647 { yyval.op = OpModEq; ; 1647 1648 break;} 1648 1649 case 111: 1649 #line 3 77"grammar.y"1650 #line 380 "grammar.y" 1650 1651 { yyval.node = new CommaNode(yyvsp[-2].node, yyvsp[0].node); ; 1651 1652 break;} 1652 1653 case 126: 1653 #line 398"grammar.y"1654 #line 401 "grammar.y" 1654 1655 { yyval.stat = new BlockNode(0L); DBG(yyval.stat, yylsp[0], yylsp[0]); ; 1655 1656 break;} 1656 1657 case 127: 1657 #line 399"grammar.y"1658 #line 402 "grammar.y" 1658 1659 { yyval.stat = new BlockNode(yyvsp[-1].srcs); DBG(yyval.stat, yylsp[0], yylsp[0]); ; 1659 1660 break;} 1660 1661 case 128: 1661 #line 40 3"grammar.y"1662 #line 406 "grammar.y" 1662 1663 { yyval.slist = new StatListNode(yyvsp[0].stat); ; 1663 1664 break;} 1664 1665 case 129: 1665 #line 40 4"grammar.y"1666 #line 407 "grammar.y" 1666 1667 { yyval.slist = new StatListNode(yyvsp[-1].slist, yyvsp[0].stat); ; 1667 1668 break;} 1668 1669 case 130: 1669 #line 4 08"grammar.y"1670 #line 411 "grammar.y" 1670 1671 { yyval.stat = new VarStatementNode(yyvsp[-1].vlist); 1671 1672 DBG(yyval.stat, yylsp[-2], yylsp[0]); ; 1672 1673 break;} 1673 1674 case 131: 1674 #line 41 0"grammar.y"1675 #line 413 "grammar.y" 1675 1676 { if (automatic()) { 1676 1677 yyval.stat = new VarStatementNode(yyvsp[-1].vlist); … … 1682 1683 break;} 1683 1684 case 132: 1684 #line 42 0"grammar.y"1685 #line 423 "grammar.y" 1685 1686 { yyval.vlist = new VarDeclListNode(yyvsp[0].decl); ; 1686 1687 break;} 1687 1688 case 133: 1688 #line 42 2"grammar.y"1689 #line 425 "grammar.y" 1689 1690 { yyval.vlist = new VarDeclListNode(yyvsp[-2].vlist, yyvsp[0].decl); ; 1690 1691 break;} 1691 1692 case 134: 1692 #line 42 6"grammar.y"1693 #line 429 "grammar.y" 1693 1694 { yyval.decl = new VarDeclNode(*yyvsp[0].ident, 0); delete yyvsp[0].ident; ; 1694 1695 break;} 1695 1696 case 135: 1696 #line 4 27"grammar.y"1697 #line 430 "grammar.y" 1697 1698 { yyval.decl = new VarDeclNode(*yyvsp[-1].ident, yyvsp[0].init); delete yyvsp[-1].ident; ; 1698 1699 break;} 1699 1700 case 136: 1700 #line 43 1"grammar.y"1701 #line 434 "grammar.y" 1701 1702 { yyval.init = new AssignExprNode(yyvsp[0].node); ; 1702 1703 break;} 1703 1704 case 137: 1704 #line 43 5"grammar.y"1705 #line 438 "grammar.y" 1705 1706 { yyval.stat = new EmptyStatementNode(); ; 1706 1707 break;} 1707 1708 case 138: 1708 #line 4 39"grammar.y"1709 #line 442 "grammar.y" 1709 1710 { yyval.stat = new ExprStatementNode(yyvsp[-1].node); 1710 1711 DBG(yyval.stat, yylsp[-1], yylsp[0]); ; 1711 1712 break;} 1712 1713 case 139: 1713 #line 44 1"grammar.y"1714 #line 444 "grammar.y" 1714 1715 { if (automatic()) { 1715 1716 yyval.stat = new ExprStatementNode(yyvsp[-1].node); … … 1719 1720 break;} 1720 1721 case 140: 1721 #line 4 49"grammar.y"1722 #line 452 "grammar.y" 1722 1723 { yyval.stat = new IfNode(yyvsp[-2].node,yyvsp[0].stat,0L);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ; 1723 1724 break;} 1724 1725 case 141: 1725 #line 45 1"grammar.y"1726 #line 454 "grammar.y" 1726 1727 { yyval.stat = new IfNode(yyvsp[-4].node,yyvsp[-2].stat,yyvsp[0].stat);DBG(yyval.stat,yylsp[-6],yylsp[-3]); ; 1727 1728 break;} 1728 1729 case 142: 1729 #line 45 5"grammar.y"1730 #line 458 "grammar.y" 1730 1731 { yyval.stat=new DoWhileNode(yyvsp[-4].stat,yyvsp[-1].node);DBG(yyval.stat,yylsp[-5],yylsp[-3]);; 1731 1732 break;} 1732 1733 case 143: 1733 #line 45 6"grammar.y"1734 #line 459 "grammar.y" 1734 1735 { yyval.stat = new WhileNode(yyvsp[-2].node,yyvsp[0].stat);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ; 1735 1736 break;} 1736 1737 case 144: 1737 #line 4 58"grammar.y"1738 #line 461 "grammar.y" 1738 1739 { yyval.stat = new ForNode(yyvsp[-6].node,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat); 1739 1740 DBG(yyval.stat,yylsp[-8],yylsp[-1]); ; 1740 1741 break;} 1741 1742 case 145: 1742 #line 46 1"grammar.y"1743 #line 464 "grammar.y" 1743 1744 { yyval.stat = new ForNode(yyvsp[-6].vlist,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat); 1744 1745 DBG(yyval.stat,yylsp[-9],yylsp[-1]); ; 1745 1746 break;} 1746 1747 case 146: 1747 #line 46 4"grammar.y"1748 #line 467 "grammar.y" 1748 1749 { yyval.stat = new ForInNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].stat); 1749 1750 DBG(yyval.stat,yylsp[-6],yylsp[-1]); ; 1750 1751 break;} 1751 1752 case 147: 1752 #line 4 67"grammar.y"1753 #line 470 "grammar.y" 1753 1754 { yyval.stat = new ForInNode(*yyvsp[-4].ident,0L,yyvsp[-2].node,yyvsp[0].stat); 1754 1755 DBG(yyval.stat,yylsp[-7],yylsp[-1]); … … 1756 1757 break;} 1757 1758 case 148: 1758 #line 47 1"grammar.y"1759 #line 474 "grammar.y" 1759 1760 { yyval.stat = new ForInNode(*yyvsp[-5].ident,yyvsp[-4].init,yyvsp[-2].node,yyvsp[0].stat); 1760 1761 DBG(yyval.stat,yylsp[-8],yylsp[-1]); … … 1762 1763 break;} 1763 1764 case 149: 1764 #line 4 77"grammar.y"1765 #line 480 "grammar.y" 1765 1766 { yyval.node = 0L; ; 1766 1767 break;} 1767 1768 case 151: 1768 #line 48 2"grammar.y"1769 #line 485 "grammar.y" 1769 1770 { yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); ; 1770 1771 break;} 1771 1772 case 152: 1772 #line 48 3"grammar.y"1773 #line 486 "grammar.y" 1773 1774 { if (automatic()) { 1774 1775 yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); … … 1777 1778 break;} 1778 1779 case 153: 1779 #line 4 87"grammar.y"1780 #line 490 "grammar.y" 1780 1781 { yyval.stat = new ContinueNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[0]); 1781 1782 delete yyvsp[-1].ident; ; 1782 1783 break;} 1783 1784 case 154: 1784 #line 4 89"grammar.y"1785 #line 492 "grammar.y" 1785 1786 { if (automatic()) { 1786 1787 yyval.stat = new ContinueNode(*yyvsp[-1].ident);DBG(yyval.stat,yylsp[-2],yylsp[-1]); … … 1790 1791 break;} 1791 1792 case 155: 1792 #line 497"grammar.y"1793 #line 500 "grammar.y" 1793 1794 { yyval.stat = new BreakNode();DBG(yyval.stat,yylsp[-1],yylsp[0]); ; 1794 1795 break;} 1795 1796 case 156: 1796 #line 498"grammar.y"1797 #line 501 "grammar.y" 1797 1798 { if (automatic()) { 1798 1799 yyval.stat = new BreakNode(); DBG(yyval.stat,yylsp[-1],yylsp[-1]); … … 1801 1802 break;} 1802 1803 case 157: 1803 #line 50 2"grammar.y"1804 #line 505 "grammar.y" 1804 1805 { yyval.stat = new BreakNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[0]); 1805 1806 delete yyvsp[-1].ident; ; 1806 1807 break;} 1807 1808 case 158: 1808 #line 50 4"grammar.y"1809 #line 507 "grammar.y" 1809 1810 { if (automatic()) { 1810 1811 yyval.stat = new BreakNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[-1]); … … 1815 1816 break;} 1816 1817 case 159: 1817 #line 51 3"grammar.y"1818 #line 516 "grammar.y" 1818 1819 { yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[0]); ; 1819 1820 break;} 1820 1821 case 160: 1821 #line 51 4"grammar.y"1822 #line 517 "grammar.y" 1822 1823 { if (automatic()) { 1823 1824 yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[-1]); … … 1826 1827 break;} 1827 1828 case 161: 1828 #line 5 18"grammar.y"1829 #line 521 "grammar.y" 1829 1830 { yyval.stat = new ReturnNode(yyvsp[-1].node); ; 1830 1831 break;} 1831 1832 case 162: 1832 #line 5 19"grammar.y"1833 #line 522 "grammar.y" 1833 1834 { if (automatic()) 1834 1835 yyval.stat = new ReturnNode(yyvsp[-1].node); … … 1837 1838 break;} 1838 1839 case 163: 1839 #line 52 6"grammar.y"1840 #line 529 "grammar.y" 1840 1841 { yyval.stat = new WithNode(yyvsp[-2].node,yyvsp[0].stat); 1841 1842 DBG(yyval.stat, yylsp[-4], yylsp[-1]); ; 1842 1843 break;} 1843 1844 case 164: 1844 #line 53 1"grammar.y"1845 #line 534 "grammar.y" 1845 1846 { yyval.stat = new SwitchNode(yyvsp[-2].node, yyvsp[0].cblk); 1846 1847 DBG(yyval.stat, yylsp[-4], yylsp[-1]); ; 1847 1848 break;} 1848 1849 case 165: 1849 #line 53 6"grammar.y"1850 #line 539 "grammar.y" 1850 1851 { yyval.cblk = new CaseBlockNode(yyvsp[-1].clist, 0L, 0L); ; 1851 1852 break;} 1852 1853 case 166: 1853 #line 5 38"grammar.y"1854 #line 541 "grammar.y" 1854 1855 { yyval.cblk = new CaseBlockNode(yyvsp[-3].clist, yyvsp[-2].ccl, yyvsp[-1].clist); ; 1855 1856 break;} 1856 1857 case 167: 1857 #line 54 2"grammar.y"1858 #line 545 "grammar.y" 1858 1859 { yyval.clist = 0L; ; 1859 1860 break;} 1860 1861 case 169: 1861 #line 5 47"grammar.y"1862 #line 550 "grammar.y" 1862 1863 { yyval.clist = new ClauseListNode(yyvsp[0].ccl); ; 1863 1864 break;} 1864 1865 case 170: 1865 #line 5 48"grammar.y"1866 #line 551 "grammar.y" 1866 1867 { yyval.clist = yyvsp[-1].clist->append(yyvsp[0].ccl); ; 1867 1868 break;} 1868 1869 case 171: 1869 #line 55 2"grammar.y"1870 #line 555 "grammar.y" 1870 1871 { yyval.ccl = new CaseClauseNode(yyvsp[-1].node, 0L); ; 1871 1872 break;} 1872 1873 case 172: 1873 #line 55 3"grammar.y"1874 #line 556 "grammar.y" 1874 1875 { yyval.ccl = new CaseClauseNode(yyvsp[-2].node, yyvsp[0].slist); ; 1875 1876 break;} 1876 1877 case 173: 1877 #line 5 57"grammar.y"1878 #line 560 "grammar.y" 1878 1879 { yyval.ccl = new CaseClauseNode(0L, 0L);; ; 1879 1880 break;} 1880 1881 case 174: 1881 #line 5 58"grammar.y"1882 #line 561 "grammar.y" 1882 1883 { yyval.ccl = new CaseClauseNode(0L, yyvsp[0].slist); ; 1883 1884 break;} 1884 1885 case 175: 1885 #line 56 2"grammar.y"1886 #line 565 "grammar.y" 1886 1887 { yyvsp[0].stat->pushLabel(*yyvsp[-2].ident); 1887 1888 yyval.stat = new LabelNode(*yyvsp[-2].ident, yyvsp[0].stat); … … 1889 1890 break;} 1890 1891 case 176: 1891 #line 5 68"grammar.y"1892 #line 571 "grammar.y" 1892 1893 { yyval.stat = new ThrowNode(yyvsp[-1].node); ; 1893 1894 break;} 1894 1895 case 177: 1895 #line 57 2"grammar.y"1896 #line 575 "grammar.y" 1896 1897 { yyval.stat = new TryNode(yyvsp[-1].stat, yyvsp[0].node); ; 1897 1898 break;} 1898 1899 case 178: 1899 #line 57 3"grammar.y"1900 #line 576 "grammar.y" 1900 1901 { yyval.stat = new TryNode(yyvsp[-1].stat, 0L, yyvsp[0].node); ; 1901 1902 break;} 1902 1903 case 179: 1903 #line 57 4"grammar.y"1904 #line 577 "grammar.y" 1904 1905 { yyval.stat = new TryNode(yyvsp[-2].stat, yyvsp[-1].node, yyvsp[0].node); ; 1905 1906 break;} 1906 1907 case 180: 1907 #line 5 78"grammar.y"1908 #line 581 "grammar.y" 1908 1909 { yyval.node = new CatchNode(*yyvsp[-2].ident, yyvsp[0].stat); delete yyvsp[-2].ident; ; 1909 1910 break;} 1910 1911 case 181: 1911 #line 58 2"grammar.y"1912 #line 585 "grammar.y" 1912 1913 { yyval.node = new FinallyNode(yyvsp[0].stat); ; 1913 1914 break;} 1914 1915 case 182: 1915 #line 58 6"grammar.y"1916 #line 589 "grammar.y" 1916 1917 { yyval.func = new FuncDeclNode(*yyvsp[-3].ident, 0L, yyvsp[0].body); 1917 1918 delete yyvsp[-3].ident; ; 1918 1919 break;} 1919 1920 case 183: 1920 #line 5 89"grammar.y"1921 #line 592 "grammar.y" 1921 1922 { yyval.func = new FuncDeclNode(*yyvsp[-4].ident, yyvsp[-2].param, yyvsp[0].body); 1922 1923 delete yyvsp[-4].ident; ; 1923 1924 break;} 1924 1925 case 184: 1925 #line 59 3"grammar.y"1926 #line 596 "grammar.y" 1926 1927 { yyval.node = new FuncExprNode(0L, yyvsp[0].body); ; 1927 1928 break;} 1928 1929 case 185: 1929 #line 59 5"grammar.y"1930 #line 598 "grammar.y" 1930 1931 { yyval.node = new FuncExprNode(yyvsp[-2].param, yyvsp[0].body); ; 1931 1932 break;} 1932 1933 case 186: 1933 #line 60 0"grammar.y"1934 #line 603 "grammar.y" 1934 1935 { yyval.param = new ParameterNode(*yyvsp[0].ident); delete yyvsp[0].ident; ; 1935 1936 break;} 1936 1937 case 187: 1937 #line 60 1"grammar.y"1938 #line 604 "grammar.y" 1938 1939 { yyval.param = yyvsp[-2].param->append(*yyvsp[0].ident); 1939 1940 delete yyvsp[0].ident; ; 1940 1941 break;} 1941 1942 case 188: 1942 #line 60 6"grammar.y"1943 #line 609 "grammar.y" 1943 1944 { yyval.body = new FunctionBodyNode(0L); 1944 1945 DBG(yyval.body, yylsp[-1], yylsp[0]);; 1945 1946 break;} 1946 1947 case 189: 1947 #line 6 08"grammar.y"1948 #line 611 "grammar.y" 1948 1949 { yyval.body = new FunctionBodyNode(yyvsp[-1].srcs); 1949 1950 DBG(yyval.body, yylsp[-2], yylsp[0]);; 1950 1951 break;} 1951 1952 case 190: 1952 #line 61 3"grammar.y"1953 #line 616 "grammar.y" 1953 1954 { yyval.prog = new ProgramNode(0L); 1954 1955 Parser::progNode = yyval.prog; ; 1955 1956 break;} 1956 1957 case 191: 1957 #line 61 5"grammar.y"1958 #line 618 "grammar.y" 1958 1959 { yyval.prog = new ProgramNode(yyvsp[0].srcs); 1959 1960 Parser::progNode = yyval.prog; ; 1960 1961 break;} 1961 1962 case 192: 1962 #line 62 0"grammar.y"1963 #line 623 "grammar.y" 1963 1964 { yyval.srcs = new SourceElementsNode(yyvsp[0].src); ; 1964 1965 break;} 1965 1966 case 193: 1966 #line 62 1"grammar.y"1967 #line 624 "grammar.y" 1967 1968 { yyval.srcs = new SourceElementsNode(yyvsp[0].srcs, yyvsp[-1].src); ; 1968 1969 break;} 1969 1970 case 194: 1970 #line 62 5"grammar.y"1971 #line 628 "grammar.y" 1971 1972 { yyval.src = new SourceElementNode(yyvsp[0].stat); ; 1972 1973 break;} 1973 1974 case 195: 1974 #line 62 6"grammar.y"1975 #line 629 "grammar.y" 1975 1976 { yyval.src = new SourceElementNode(yyvsp[0].func); ; 1976 1977 break;} … … 2198 2199 return 1; 2199 2200 } 2200 #line 6 29"grammar.y"2201 #line 632 "grammar.y" 2201 2202 2202 2203
Note:
See TracChangeset
for help on using the changeset viewer.