X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/c05aefaa46b8359c807b6729c85e1265dba89782..52e90c0f77bb0e3edb043873b71a73459d4ae8ab:/src/llgrammar.c.der diff --git a/src/llgrammar.c.der b/src/llgrammar.c.der index ea0d60c..773c237 100644 --- a/src/llgrammar.c.der +++ b/src/llgrammar.c.der @@ -41,11 +41,13 @@ /*@-dependenttrans@*/ /*@-unqualifiedtrans@*/ /*@-nullassign@*/ +/*@-nullpass@*/ +/*@-nullptrarith*/ +/*@-usereleased@*/ /*@-declundef@*/ /*drl added 11/27/2001*/ -/*@-arraybounds@*/ -/*@-arrayboundsread@*/ +/*@-bounds@*/ /* < end of bison.head > */ @@ -196,10 +198,9 @@ #define LLT_SCANFLIKE 389 #define LLT_MESSAGELIKE 390 -#line 36 "llgrammar.y" -# include "lclintMacros.nf" +# include "splintMacros.nf" # include "llbasic.h" # include "lclscan.h" # include "checking.h" @@ -212,7 +213,7 @@ static /*@unused@*/ void yyprint (); /*@=noparams@*/ /*@-redecl@*/ -void ylerror (char *) /*@modifies *g_msgstream@*/ ; +void ylerror (char *) /*@modifies *g_warningstream@*/ ; /*@=redecl@*/ bool g_inTypeDef = FALSE; @@ -238,7 +239,6 @@ bool g_inTypeDef = FALSE; # endif -#line 80 "llgrammar.y" typedef union { ltoken ltok; /* a leaf is also an ltoken */ @@ -544,48 +544,48 @@ static const short yyrhs[] = { -1, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 389, 390, 393, 394, 397, 398, 401, 402, 403, 406, - 407, 410, 411, 412, 415, 421, 425, 427, 429, 431, - 433, 435, 439, 443, 444, 447, 449, 453, 454, 457, - 458, 461, 463, 465, 467, 471, 475, 477, 479, 483, - 484, 487, 488, 489, 492, 493, 500, 502, 513, 515, - 518, 522, 522, 523, 524, 524, 526, 527, 528, 529, - 530, 530, 531, 534, 535, 536, 537, 539, 555, 557, - 561, 562, 564, 567, 568, 571, 575, 577, 581, 583, - 585, 587, 591, 592, 595, 597, 599, 602, 604, 607, - 609, 612, 613, 614, 618, 619, 621, 623, 626, 628, - 632, 633, 636, 638, 642, 643, 644, 647, 648, 651, - 655, 656, 659, 660, 663, 664, 666, 669, 670, 673, - 674, 677, 678, 679, 680, 683, 684, 687, 688, 689, - 690, 691, 694, 695, 698, 699, 702, 703, 706, 707, - 708, 711, 712, 715, 716, 717, 720, 721, 724, 729, - 735, 743, 745, 747, 749, 753, 754, 757, 758, 759, - 760, 761, 762, 763, 765, 769, 770, 771, 772, 775, - 776, 779, 780, 783, 783, 792, 793, 797, 798, 801, - 802, 805, 806, 807, 808, 809, 810, 811, 812, 813, - 814, 822, 823, 828, 830, 836, 837, 838, 839, 840, - 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, - 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, - 871, 874, 876, 878, 880, 882, 891, 892, 897, 898, - 901, 903, 905, 907, 909, 911, 915, 916, 919, 920, - 925, 928, 930, 934, 935, 938, 940, 944, 945, 955, - 956, 959, 960, 961, 962, 963, 964, 967, 968, 969, - 970, 971, 972, 981, 982, 983, 984, 985, 991, 992, - 993, 1003, 1004, 1005, 1010, 1011, 1014, 1015, 1016, 1017, - 1018, 1019, 1020, 1021, 1024, 1025, 1028, 1030, 1032, 1034, - 1036, 1039, 1041, 1043, 1045, 1047, 1049, 1057, 1059, 1061, - 1064, 1067, 1070, 1075, 1076, 1079, 1080, 1083, 1084, 1085, - 1088, 1089, 1092, 1093, 1096, 1097, 1100, 1103, 1104, 1107, - 1108, 1111, 1114, 1120, 1122, 1123, 1126, 1127, 1132, 1134, - 1138, 1139, 1140, 1143, 1144, 1147, 1148, 1151, 1152, 1155, - 1156, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1168, 1169, - 1172, 1175, 1177, 1181, 1185, 1186, 1189, 1190, 1193, 1195, - 1197, 1199, 1200, 1202, 1204, 1206, 1209, 1211, 1215, 1216, - 1219, 1220, 1221, 1222, 1225, 1226, 1227, 1228, 1229, 1230, - 1235, 1241, 1251, 1252, 1253, 1254, 1257, 1259, 1263, 1267, - 1270, 1271, 1274, 1275, 1278, 1279, 1282, 1283, 1284, 1285, - 1286, 1287, 1288 + 380, 381, 384, 385, 388, 389, 392, 393, 394, 397, + 398, 401, 402, 403, 406, 412, 416, 418, 420, 422, + 424, 426, 430, 434, 435, 438, 440, 444, 445, 448, + 449, 452, 454, 456, 458, 462, 466, 468, 470, 474, + 475, 478, 479, 480, 483, 484, 491, 493, 504, 506, + 509, 513, 513, 514, 515, 515, 517, 518, 519, 520, + 521, 521, 522, 525, 526, 527, 528, 530, 546, 548, + 552, 553, 555, 558, 559, 562, 566, 568, 572, 574, + 576, 578, 582, 583, 586, 588, 590, 593, 595, 598, + 600, 603, 604, 605, 609, 610, 612, 614, 617, 619, + 623, 624, 627, 629, 633, 634, 635, 638, 639, 642, + 646, 647, 650, 651, 654, 655, 657, 660, 661, 664, + 665, 668, 669, 670, 671, 674, 675, 678, 679, 680, + 681, 682, 685, 686, 689, 690, 693, 694, 697, 698, + 699, 702, 703, 706, 707, 708, 711, 712, 715, 720, + 726, 734, 736, 738, 740, 744, 745, 748, 749, 750, + 751, 752, 753, 754, 756, 760, 761, 762, 763, 766, + 767, 770, 771, 774, 774, 783, 784, 788, 789, 792, + 793, 796, 797, 798, 799, 800, 801, 802, 803, 804, + 805, 813, 814, 819, 821, 827, 828, 829, 830, 831, + 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, + 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, + 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, + 862, 865, 867, 869, 871, 873, 882, 883, 888, 889, + 892, 894, 896, 898, 900, 902, 906, 907, 910, 911, + 916, 919, 921, 925, 926, 929, 931, 935, 936, 946, + 947, 950, 951, 952, 953, 954, 955, 958, 959, 960, + 961, 962, 963, 972, 973, 974, 975, 976, 982, 983, + 984, 994, 995, 996, 1001, 1002, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1015, 1016, 1019, 1021, 1023, 1025, + 1027, 1030, 1032, 1034, 1036, 1038, 1040, 1048, 1050, 1052, + 1055, 1058, 1061, 1066, 1067, 1070, 1071, 1074, 1075, 1076, + 1079, 1080, 1083, 1084, 1087, 1088, 1091, 1094, 1095, 1098, + 1099, 1102, 1105, 1111, 1113, 1114, 1117, 1118, 1123, 1125, + 1129, 1130, 1131, 1134, 1135, 1138, 1139, 1142, 1143, 1146, + 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1159, 1160, + 1163, 1166, 1168, 1172, 1176, 1177, 1180, 1181, 1184, 1186, + 1188, 1190, 1191, 1193, 1195, 1197, 1200, 1202, 1206, 1207, + 1210, 1211, 1212, 1213, 1216, 1217, 1218, 1219, 1220, 1221, + 1226, 1232, 1242, 1243, 1244, 1245, 1248, 1250, 1254, 1258, + 1261, 1262, 1265, 1266, 1269, 1270, 1273, 1274, 1275, 1276, + 1277, 1278, 1279 }; #endif @@ -1589,7 +1589,7 @@ static const short yycheck[] = { 23, -1, -1, 107, 108, -1, -1, -1, -1, -1, 114 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" + /* This file comes from bison-1.28. */ /* Skeleton output parser for bison, @@ -1803,7 +1803,7 @@ __yy_memcpy (char *to, char *from, unsigned int count) #endif #endif -#line 217 "/usr/lib/bison.simple" + /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -2132,169 +2132,128 @@ yyreduce: switch (yyn) { case 1: -#line 389 "llgrammar.y" { lhExternals (yyvsp[0].interfacelist); ; break;} case 2: -#line 390 "llgrammar.y" { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ; break;} case 3: -#line 393 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 4: -#line 394 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 7: -#line 401 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 8: -#line 402 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 9: -#line 403 "llgrammar.y" { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);; break;} case 10: -#line 406 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_new (); ; break;} case 11: -#line 407 "llgrammar.y" { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);; break;} case 15: -#line 416 "llgrammar.y" { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist); /* assume subspecs are already processed, symbol table info in external file */ ; break;} case 16: -#line 422 "llgrammar.y" { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);; break;} case 17: -#line 426 "llgrammar.y" { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ; break;} case 18: -#line 428 "llgrammar.y" { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ; break;} case 19: -#line 430 "llgrammar.y" { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ; break;} case 20: -#line 432 "llgrammar.y" { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ; break;} case 21: -#line 434 "llgrammar.y" { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ; break;} case 22: -#line 436 "llgrammar.y" { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ; break;} case 23: -#line 440 "llgrammar.y" { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ; break;} case 24: -#line 443 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 25: -#line 444 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 26: -#line 448 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ; break;} case 27: -#line 450 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ; break;} case 28: -#line 453 "llgrammar.y" { yyval.param = markYieldParamNode (yyvsp[0].param); ; break;} case 29: -#line 454 "llgrammar.y" { yyval.param = yyvsp[0].param; ; break;} case 30: -#line 457 "llgrammar.y" { symtable_export (g_symtab, FALSE); ; break;} case 31: -#line 458 "llgrammar.y" { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ; break;} case 32: -#line 462 "llgrammar.y" { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ; break;} case 33: -#line 464 "llgrammar.y" { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ; break;} case 34: -#line 466 "llgrammar.y" { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ; break;} case 35: -#line 468 "llgrammar.y" { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ; break;} case 36: -#line 472 "llgrammar.y" { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ; break;} case 37: -#line 476 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ; break;} case 38: -#line 478 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ; break;} case 39: -#line 480 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ; break;} case 40: -#line 483 "llgrammar.y" { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ; break;} case 41: -#line 484 "llgrammar.y" { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ; break;} case 42: -#line 487 "llgrammar.y" { yyval.typequal = qual_createPrintfLike (); ; break;} case 43: -#line 488 "llgrammar.y" { yyval.typequal = qual_createScanfLike (); ; break;} case 44: -#line 489 "llgrammar.y" { yyval.typequal = qual_createMessageLike (); ; break;} case 45: -#line 492 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 46: -#line 494 "llgrammar.y" { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2303,11 +2262,9 @@ case 46: ; break;} case 47: -#line 500 "llgrammar.y" { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ; break;} case 48: -#line 504 "llgrammar.y" { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); /* type, declarator, glovbls, privateinits, @@ -2316,396 +2273,299 @@ case 48: ; break;} case 49: -#line 514 "llgrammar.y" { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ; break;} case 50: -#line 516 "llgrammar.y" { yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); symtable_exitScope (g_symtab); ; break;} case 51: -#line 519 "llgrammar.y" { yyval.claim = (claimNode) 0; ; break;} case 52: -#line 522 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 53: -#line 522 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 54: -#line 523 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ; break;} case 55: -#line 524 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 56: -#line 525 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 57: -#line 526 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 58: -#line 527 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 59: -#line 528 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 60: -#line 529 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ; break;} case 61: -#line 530 "llgrammar.y" {g_inTypeDef = TRUE; ; break;} case 62: -#line 530 "llgrammar.y" {g_inTypeDef = FALSE; ; break;} case 63: -#line 531 "llgrammar.y" { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ; break;} case 64: -#line 534 "llgrammar.y" { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ; break;} case 65: -#line 535 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 66: -#line 536 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ; break;} case 67: -#line 538 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ; break;} case 68: -#line 540 "llgrammar.y" { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ; break;} case 69: -#line 556 "llgrammar.y" { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ; break;} case 70: -#line 558 "llgrammar.y" { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ; break;} case 71: -#line 561 "llgrammar.y" { yyval.import = importNode_makePlain (yyvsp[0].ltok); ; break;} case 72: -#line 563 "llgrammar.y" { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ; break;} case 73: -#line 564 "llgrammar.y" { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ; break;} case 74: -#line 567 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 75: -#line 568 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 77: -#line 576 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ; break;} case 78: -#line 578 "llgrammar.y" { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ; break;} case 79: -#line 582 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ; break;} case 80: -#line 584 "llgrammar.y" { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ; break;} case 81: -#line 586 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ; break;} case 82: -#line 588 "llgrammar.y" { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ; break;} case 83: -#line 591 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 84: -#line 592 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 85: -#line 596 "llgrammar.y" { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ; break;} case 86: -#line 598 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ; break;} case 87: -#line 599 "llgrammar.y" { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ; break;} case 88: -#line 603 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ; break;} case 89: -#line 604 "llgrammar.y" { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ; break;} case 90: -#line 608 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ; break;} case 91: -#line 609 "llgrammar.y" { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ; break;} case 92: -#line 612 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ; break;} case 93: -#line 613 "llgrammar.y" { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ; break;} case 94: -#line 614 "llgrammar.y" { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined, yyvsp[-1].name, yyvsp[0].signature); ; break;} case 95: -#line 618 "llgrammar.y" { yyval.name = makeNameNodeId (yyvsp[0].ltok); ; break;} case 96: -#line 619 "llgrammar.y" { yyval.name = makeNameNodeForm (yyvsp[0].opform); ; break;} case 99: -#line 627 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ; break;} case 100: -#line 629 "llgrammar.y" { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ; break;} case 101: -#line 632 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ; break;} case 102: -#line 633 "llgrammar.y" { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ; break;} case 103: -#line 637 "llgrammar.y" { yyval.globals = varDeclarationNodeList_new (); ; break;} case 104: -#line 639 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ; break;} case 105: -#line 642 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ; break;} case 106: -#line 643 "llgrammar.y" { yyval.vardeclaration = makeInternalStateNode (); ; break;} case 107: -#line 644 "llgrammar.y" { yyval.vardeclaration = makeFileSystemNode (); ; break;} case 108: -#line 647 "llgrammar.y" { yyval.vardeclarationlist = varDeclarationNodeList_new (); ; break;} case 109: -#line 648 "llgrammar.y" { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ; break;} case 110: -#line 652 "llgrammar.y" { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ; break;} case 111: -#line 655 "llgrammar.y" { yyval.letdecls = letDeclNodeList_new (); ; break;} case 112: -#line 656 "llgrammar.y" { yyval.letdecls = yyvsp[-1].letdecls; ; break;} case 113: -#line 659 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ; break;} case 114: -#line 660 "llgrammar.y" { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ; break;} case 115: -#line 663 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ; break;} case 116: -#line 664 "llgrammar.y" { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ; break;} case 118: -#line 669 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 119: -#line 670 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 120: -#line 673 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 121: -#line 674 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 122: -#line 677 "llgrammar.y" { yyval.modify = (modifyNode)0; ; break;} case 123: -#line 678 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ; break;} case 124: -#line 679 "llgrammar.y" { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ; break;} case 125: -#line 680 "llgrammar.y" { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ; break;} case 126: -#line 683 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ; break;} case 127: -#line 684 "llgrammar.y" { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ; break;} case 128: -#line 687 "llgrammar.y" { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ; break;} case 129: -#line 688 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ; break;} case 130: -#line 689 "llgrammar.y" { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ; break;} case 131: -#line 690 "llgrammar.y" { yyval.storeref = makeStoreRefNodeInternal (); ; break;} case 132: -#line 691 "llgrammar.y" { yyval.storeref = makeStoreRefNodeSystem (); ; break;} case 133: -#line 694 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 134: -#line 695 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 135: -#line 698 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 136: -#line 699 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);; break;} case 137: -#line 702 "llgrammar.y" { yyval.paramlist = paramNodeList_new (); ; break;} case 138: -#line 703 "llgrammar.y" { yyval.paramlist = yyvsp[0].paramlist; ; break;} case 140: -#line 707 "llgrammar.y" { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ; break;} case 141: -#line 708 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ; break;} case 142: -#line 711 "llgrammar.y" { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ; break;} case 143: -#line 712 "llgrammar.y" { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ; break;} case 144: -#line 715 "llgrammar.y" { yyval.program = (programNode)0; ; break;} case 145: -#line 716 "llgrammar.y" { yyval.program = yyvsp[-1].program; ; break;} case 146: -#line 717 "llgrammar.y" { yyval.program = yyvsp[-2].program; ; break;} case 147: -#line 720 "llgrammar.y" { yyval.program = makeProgramNode (yyvsp[0].stmt); ; break;} case 148: -#line 723 "llgrammar.y" { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ; break;} case 149: -#line 725 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-1].program); yyval.program = makeProgramNodeAction (x, ACT_ITER); ; break;} case 150: -#line 730 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2713,7 +2573,6 @@ case 150: ; break;} case 151: -#line 736 "llgrammar.y" { programNodeList x = programNodeList_new (); programNodeList_addh (x, yyvsp[-2].program); programNodeList_addh (x, yyvsp[0].program); @@ -2721,91 +2580,69 @@ case 151: ; break;} case 152: -#line 744 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 153: -#line 746 "llgrammar.y" { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 154: -#line 748 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ; break;} case 155: -#line 750 "llgrammar.y" { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ; break;} case 156: -#line 753 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 157: -#line 754 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 159: -#line 758 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 160: -#line 759 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 161: -#line 760 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 162: -#line 761 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 163: -#line 762 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 164: -#line 764 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 165: -#line 766 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 166: -#line 769 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 167: -#line 770 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ; break;} case 168: -#line 771 "llgrammar.y" { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ; break;} case 169: -#line 772 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 170: -#line 775 "llgrammar.y" { yyval.fcns = fcnNodeList_new (); ; break;} case 171: -#line 776 "llgrammar.y" { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ; break;} case 172: -#line 779 "llgrammar.y" { yyval.lclpredicate = (lclPredicateNode)0; ; break;} case 174: -#line 783 "llgrammar.y" { g_inTypeDef = FALSE; ; break;} case 175: -#line 784 "llgrammar.y" { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT; checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = yyvsp[-1].lclpredicate; @@ -2814,774 +2651,585 @@ case 175: ; break;} case 176: -#line 792 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ; break;} case 177: -#line 794 "llgrammar.y" { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ; break;} case 178: -#line 797 "llgrammar.y" { declareForwardType (yyvsp[0].declare); ; break;} case 179: -#line 798 "llgrammar.y" { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ; break;} case 180: -#line 801 "llgrammar.y" { yyval.abstbody = (abstBodyNode)0; ; break;} case 181: -#line 802 "llgrammar.y" { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ; break;} case 182: -#line 805 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ; break;} case 183: -#line 806 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ; break;} case 184: -#line 807 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ; break;} case 185: -#line 808 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ; break;} case 186: -#line 809 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ; break;} case 187: -#line 810 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ; break;} case 188: -#line 811 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ; break;} case 189: -#line 812 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ; break;} case 190: -#line 813 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ; break;} case 191: -#line 814 "llgrammar.y" { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ; break;} case 192: -#line 822 "llgrammar.y" { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ; break;} case 193: -#line 823 "llgrammar.y" { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ; break;} case 194: -#line 829 "llgrammar.y" { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ; break;} case 195: -#line 831 "llgrammar.y" { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ; break;} case 196: -#line 836 "llgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 197: -#line 837 "llgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} case 198: -#line 838 "llgrammar.y" { yyval.typequal = qual_createSef (); ; break;} case 199: -#line 839 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 200: -#line 840 "llgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} case 201: -#line 841 "llgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} case 202: -#line 842 "llgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} case 203: -#line 843 "llgrammar.y" { yyval.typequal = qual_createKept (); ; break;} case 204: -#line 844 "llgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} case 205: -#line 845 "llgrammar.y" { yyval.typequal = qual_createExits (); ; break;} case 206: -#line 846 "llgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} case 207: -#line 847 "llgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} case 208: -#line 848 "llgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} case 209: -#line 849 "llgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} case 210: -#line 850 "llgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 211: -#line 851 "llgrammar.y" { yyval.typequal = qual_createShared (); ; break;} case 212: -#line 852 "llgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} case 213: -#line 853 "llgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} case 214: -#line 854 "llgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} case 215: -#line 855 "llgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} case 216: -#line 856 "llgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} case 217: -#line 857 "llgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} case 218: -#line 858 "llgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} case 219: -#line 859 "llgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} case 220: -#line 860 "llgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} case 221: -#line 861 "llgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} case 222: -#line 862 "llgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} case 223: -#line 863 "llgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} case 224: -#line 864 "llgrammar.y" { yyval.typequal = qual_createNull (); ; break;} case 225: -#line 865 "llgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} case 226: -#line 866 "llgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} case 227: -#line 867 "llgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} case 228: -#line 868 "llgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 229: -#line 869 "llgrammar.y" { yyval.typequal = qual_createNullTerminated () ; ; break;} case 230: -#line 870 "llgrammar.y" { yyval.typequal = qual_createUndef (); ; break;} case 231: -#line 871 "llgrammar.y" { yyval.typequal = qual_createKilled (); ; break;} case 232: -#line 875 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ; break;} case 233: -#line 877 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ; break;} case 234: -#line 879 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ; break;} case 235: -#line 881 "llgrammar.y" { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ; break;} case 236: -#line 883 "llgrammar.y" { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ; break;} case 238: -#line 893 "llgrammar.y" { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec)); yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ; break;} case 239: -#line 897 "llgrammar.y" { yyval.count = 1; ; break;} case 240: -#line 898 "llgrammar.y" { yyval.count = yyvsp[-1].count + 1; ; break;} case 241: -#line 902 "llgrammar.y" { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ; break;} case 242: -#line 904 "llgrammar.y" { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} case 243: -#line 906 "llgrammar.y" { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ; break;} case 244: -#line 908 "llgrammar.y" { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ; break;} case 245: -#line 910 "llgrammar.y" { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ; break;} case 246: -#line 912 "llgrammar.y" { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ; break;} case 247: -#line 915 "llgrammar.y" { yyval.ltok = ltoken_undefined; ; break;} case 249: -#line 919 "llgrammar.y" { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ; break;} case 250: -#line 920 "llgrammar.y" { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ; break;} case 251: -#line 925 "llgrammar.y" { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ; break;} case 252: -#line 929 "llgrammar.y" { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ; break;} case 253: -#line 931 "llgrammar.y" { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ; break;} case 254: -#line 934 "llgrammar.y" { ; ; break;} case 255: -#line 935 "llgrammar.y" { ; ; break;} case 256: -#line 939 "llgrammar.y" { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ; break;} case 257: -#line 941 "llgrammar.y" { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 258: -#line 944 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 259: -#line 945 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 260: -#line 955 "llgrammar.y" { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 261: -#line 956 "llgrammar.y" { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ; break;} case 262: -#line 959 "llgrammar.y" { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 263: -#line 960 "llgrammar.y" { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 264: -#line 961 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 265: -#line 962 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 266: -#line 963 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 267: -#line 964 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 268: -#line 967 "llgrammar.y" { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 269: -#line 968 "llgrammar.y" { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 270: -#line 969 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 271: -#line 970 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 272: -#line 971 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 273: -#line 972 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 274: -#line 981 "llgrammar.y" { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ; break;} case 275: -#line 982 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 276: -#line 983 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 277: -#line 984 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 278: -#line 985 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 279: -#line 991 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 280: -#line 992 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ; break;} case 281: -#line 993 "llgrammar.y" { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 282: -#line 1003 "llgrammar.y" { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 283: -#line 1004 "llgrammar.y" { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ; break;} case 284: -#line 1005 "llgrammar.y" { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ; break;} case 285: -#line 1010 "llgrammar.y" { yyval.abstDecl = (abstDeclaratorNode)0; ; break;} case 286: -#line 1011 "llgrammar.y" { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ; break;} case 287: -#line 1014 "llgrammar.y" { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ; break;} case 288: -#line 1015 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ; break;} case 289: -#line 1016 "llgrammar.y" { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ; break;} case 290: -#line 1017 "llgrammar.y" { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ; break;} case 291: -#line 1018 "llgrammar.y" { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ; break;} case 292: -#line 1019 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ; break;} case 293: -#line 1020 "llgrammar.y" { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ; break;} case 294: -#line 1021 "llgrammar.y" { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ; break;} case 295: -#line 1024 "llgrammar.y" { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ; break;} case 296: -#line 1025 "llgrammar.y" { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ; break;} case 297: -#line 1029 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ; break;} case 298: -#line 1031 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 299: -#line 1033 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 300: -#line 1035 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} case 301: -#line 1037 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ; break;} case 302: -#line 1040 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 303: -#line 1042 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 304: -#line 1044 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 305: -#line 1046 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 306: -#line 1048 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 307: -#line 1050 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 308: -#line 1058 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ; break;} case 309: -#line 1060 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ; break;} case 310: -#line 1062 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 311: -#line 1065 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 312: -#line 1068 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 313: -#line 1071 "llgrammar.y" { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ; break;} case 321: -#line 1088 "llgrammar.y" { yyval.count = 0; ; break;} case 323: -#line 1092 "llgrammar.y" { yyval.count = 1; ; break;} case 324: -#line 1093 "llgrammar.y" { yyval.count = yyvsp[-2].count + 1; ; break;} case 327: -#line 1100 "llgrammar.y" { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 328: -#line 1103 "llgrammar.y" { yyval.ltokenList = ltokenList_new (); ; break;} case 330: -#line 1107 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 331: -#line 1108 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ; break;} case 332: -#line 1111 "llgrammar.y" { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);; break;} case 333: -#line 1114 "llgrammar.y" { yyval.term = checkSort (yyvsp[0].term); ; break;} case 334: -#line 1121 "llgrammar.y" { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ; break;} case 336: -#line 1123 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 338: -#line 1129 "llgrammar.y" { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok); symtable_exitScope (g_symtab); ; break;} case 339: -#line 1133 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} case 340: -#line 1135 "llgrammar.y" { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);; break;} case 342: -#line 1139 "llgrammar.y" { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ; break;} case 343: -#line 1140 "llgrammar.y" { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ; break;} case 347: -#line 1148 "llgrammar.y" { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 348: -#line 1151 "llgrammar.y" { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ; break;} case 349: -#line 1152 "llgrammar.y" { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ; break;} case 350: -#line 1155 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 351: -#line 1156 "llgrammar.y" { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ; break;} case 353: -#line 1160 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} case 354: -#line 1161 "llgrammar.y" { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} case 355: -#line 1162 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ; break;} case 356: -#line 1163 "llgrammar.y" { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ; break;} case 357: -#line 1164 "llgrammar.y" { yyval.term = computePossibleSorts (yyvsp[0].term); ; break;} case 358: -#line 1165 "llgrammar.y" { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ; break;} case 359: -#line 1168 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 361: -#line 1173 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 362: -#line 1176 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 363: -#line 1178 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok); yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 364: -#line 1182 "llgrammar.y" { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 365: -#line 1185 "llgrammar.y" { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 366: -#line 1186 "llgrammar.y" { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ; break;} case 367: -#line 1189 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 368: -#line 1190 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 369: -#line 1194 "llgrammar.y" { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ; break;} case 370: -#line 1196 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 371: -#line 1198 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 373: -#line 1201 "llgrammar.y" { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ; break;} case 374: -#line 1203 "llgrammar.y" { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 375: -#line 1205 "llgrammar.y" { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ; break;} case 376: -#line 1207 "llgrammar.y" { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok), (termNode)0); ; break;} case 377: -#line 1210 "llgrammar.y" { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ; break;} case 378: -#line 1212 "llgrammar.y" { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ; break;} case 379: -#line 1215 "llgrammar.y" { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ; break;} case 380: -#line 1216 "llgrammar.y" { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ; break;} case 386: -#line 1226 "llgrammar.y" { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ; break;} case 387: -#line 1227 "llgrammar.y" { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ; break;} case 388: -#line 1228 "llgrammar.y" { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ; break;} case 389: -#line 1229 "llgrammar.y" { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ; break;} case 390: -#line 1231 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-1].term); yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); ; break;} case 391: -#line 1236 "llgrammar.y" { termNodeList x = termNodeList_new (); termNodeList_addh (x, yyvsp[-3].term); termNodeList_addh (x, yyvsp[-1].term); @@ -3589,62 +3237,49 @@ case 391: ; break;} case 392: -#line 1241 "llgrammar.y" { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ; break;} case 393: -#line 1251 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ; break;} case 394: -#line 1252 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ; break;} case 395: -#line 1253 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ; break;} case 396: -#line 1254 "llgrammar.y" { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ; break;} case 397: -#line 1258 "llgrammar.y" { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ; break;} case 398: -#line 1260 "llgrammar.y" { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ; break;} case 399: -#line 1263 "llgrammar.y" { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si)); si->kind = SPE_QUANT; symtable_enterScope (g_symtab, si); ; break;} case 400: -#line 1267 "llgrammar.y" { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ; break;} case 401: -#line 1270 "llgrammar.y" { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ; break;} case 402: -#line 1271 "llgrammar.y" { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ; break;} case 403: -#line 1274 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ; break;} case 404: -#line 1275 "llgrammar.y" { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ; break;} } /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" + yyvsp -= yylen; yyssp -= yylen; @@ -3864,7 +3499,6 @@ yyerrhandle: } return 1; } -#line 1290 "llgrammar.y" # include "bison.reset" @@ -3951,5 +3585,4 @@ static void yyprint (FILE *f, int t, YYSTYPE value) /*drl added 11/27/2001*/ -/*@=arraybounds@*/ -/*@=arrayboundsread@*/ +/*@=bounds@*/