📄 gram.c
字号:
case 153:/* # line 816 "gram.in" */{ if(yypvt[-1].ival == OPMINUS) yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL); else yyval.expval = yypvt[-0].expval; } break;case 154:/* # line 821 "gram.in" */{ yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break;case 155:/* # line 823 "gram.in" */{ NO66(".EQV. operator"); yyval.expval = mkexpr(OPEQV, yypvt[-2].expval,yypvt[-0].expval); } break;case 156:/* # line 826 "gram.in" */{ NO66(".NEQV. operator"); yyval.expval = mkexpr(OPNEQV, yypvt[-2].expval, yypvt[-0].expval); } break;case 157:/* # line 829 "gram.in" */{ yyval.expval = mkexpr(OPOR, yypvt[-2].expval, yypvt[-0].expval); } break;case 158:/* # line 831 "gram.in" */{ yyval.expval = mkexpr(OPAND, yypvt[-2].expval, yypvt[-0].expval); } break;case 159:/* # line 833 "gram.in" */{ yyval.expval = mkexpr(OPNOT, yypvt[-0].expval, ENULL); } break;case 160:/* # line 835 "gram.in" */{ NO66("concatenation operator //"); yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break;case 161:/* # line 839 "gram.in" */{ yyval.ival = OPPLUS; } break;case 162:/* # line 840 "gram.in" */{ yyval.ival = OPMINUS; } break;case 163:/* # line 843 "gram.in" */{ yyval.ival = OPEQ; } break;case 164:/* # line 844 "gram.in" */{ yyval.ival = OPGT; } break;case 165:/* # line 845 "gram.in" */{ yyval.ival = OPLT; } break;case 166:/* # line 846 "gram.in" */{ yyval.ival = OPGE; } break;case 167:/* # line 847 "gram.in" */{ yyval.ival = OPLE; } break;case 168:/* # line 848 "gram.in" */{ yyval.ival = OPNE; } break;case 169:/* # line 852 "gram.in" */{ yyval.expval = mkprim(yypvt[-0].namval, LBNULL, CHNULL); } break;case 170:/* # line 854 "gram.in" */{ NO66("substring operator :"); yyval.expval = mkprim(yypvt[-1].namval, LBNULL, yypvt[-0].chval); } break;case 171:/* # line 857 "gram.in" */{ yyval.expval = mkprim(yypvt[-3].namval, mklist(yypvt[-1].chval), CHNULL); } break;case 172:/* # line 859 "gram.in" */{ NO66("substring operator :"); yyval.expval = mkprim(yypvt[-4].namval, mklist(yypvt[-2].chval), yypvt[-0].chval); } break;case 173:/* # line 864 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-3].expval, mkchain((char *)yypvt[-1].expval,CHNULL)); } break;case 174:/* # line 868 "gram.in" */{ yyval.expval = 0; } break;case 176:/* # line 873 "gram.in" */{ if(yypvt[-0].namval->vclass == CLPARAM) yyval.expval = (expptr) cpexpr( ( (struct Paramblock *) (yypvt[-0].namval) ) -> paramval); } break;case 178:/* # line 880 "gram.in" */{ yyval.expval = mklogcon(1); } break;case 179:/* # line 881 "gram.in" */{ yyval.expval = mklogcon(0); } break;case 180:/* # line 882 "gram.in" */{ yyval.expval = mkstrcon(toklen, token); } break;case 181:/* # line 883 "gram.in" */ { yyval.expval = mkintcon( convci(toklen, token) ); } break;case 182:/* # line 884 "gram.in" */ { yyval.expval = mkrealcon(tyreal, token); } break;case 183:/* # line 885 "gram.in" */ { yyval.expval = mkrealcon(TYDREAL, token); } break;case 185:/* # line 890 "gram.in" */{ yyval.expval = mkcxcon(yypvt[-3].expval,yypvt[-1].expval); } break;case 186:/* # line 894 "gram.in" */{ NOEXT("hex constant"); yyval.expval = mkbitcon(4, toklen, token); } break;case 187:/* # line 897 "gram.in" */{ NOEXT("octal constant"); yyval.expval = mkbitcon(3, toklen, token); } break;case 188:/* # line 900 "gram.in" */{ NOEXT("binary constant"); yyval.expval = mkbitcon(1, toklen, token); } break;case 190:/* # line 906 "gram.in" */{ yyval.expval = yypvt[-1].expval; } break;case 193:/* # line 912 "gram.in" */{ yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break;case 194:/* # line 914 "gram.in" */{ yyval.expval = mkexpr(OPSTAR, yypvt[-2].expval, yypvt[-0].expval); } break;case 195:/* # line 916 "gram.in" */{ yyval.expval = mkexpr(OPSLASH, yypvt[-2].expval, yypvt[-0].expval); } break;case 196:/* # line 918 "gram.in" */{ yyval.expval = mkexpr(OPPOWER, yypvt[-2].expval, yypvt[-0].expval); } break;case 197:/* # line 920 "gram.in" */{ if(yypvt[-1].ival == OPMINUS) yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL); else yyval.expval = yypvt[-0].expval; } break;case 198:/* # line 925 "gram.in" */{ NO66("concatenation operator //"); yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break;case 200:/* # line 930 "gram.in" */{ if(yypvt[-3].labval->labdefined) execerr("no backward DO loops", CNULL); yypvt[-3].labval->blklevel = blklevel+1; exdo(yypvt[-3].labval->labelno, NPNULL, yypvt[-0].chval); } break;case 201:/* # line 937 "gram.in" */{ exdo((int)(ctls - ctlstack - 2), NPNULL, yypvt[-0].chval); NOEXT("DO without label"); } break;case 202:/* # line 942 "gram.in" */{ exenddo(NPNULL); } break;case 203:/* # line 944 "gram.in" */{ exendif(); thiswasbranch = NO; } break;case 205:/* # line 947 "gram.in" */{ exelif(yypvt[-2].expval); lastwasbranch = NO; } break;case 206:/* # line 949 "gram.in" */{ exelse(); lastwasbranch = NO; } break;case 207:/* # line 951 "gram.in" */{ exendif(); lastwasbranch = NO; } break;case 208:/* # line 955 "gram.in" */{ exif(yypvt[-1].expval); } break;case 209:/* # line 959 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-2].namval, yypvt[-0].chval); } break;case 211:/* # line 964 "gram.in" */{ yyval.chval = mkchain(CNULL, (chainp)yypvt[-1].expval); } break;case 212:/* # line 968 "gram.in" */{ exequals((struct Primblock *)yypvt[-2].expval, yypvt[-0].expval); } break;case 213:/* # line 970 "gram.in" */{ exassign(yypvt[-0].namval, yypvt[-2].labval); } break;case 216:/* # line 974 "gram.in" */{ inioctl = NO; } break;case 217:/* # line 976 "gram.in" */{ exarif(yypvt[-6].expval, yypvt[-4].labval, yypvt[-2].labval, yypvt[-0].labval); thiswasbranch = YES; } break;case 218:/* # line 978 "gram.in" */{ excall(yypvt[-0].namval, LBNULL, 0, labarray); } break;case 219:/* # line 980 "gram.in" */{ excall(yypvt[-2].namval, LBNULL, 0, labarray); } break;case 220:/* # line 982 "gram.in" */{ if(nstars < maxlablist) excall(yypvt[-3].namval, mklist(revchain(yypvt[-1].chval)), nstars, labarray); else many("alternate returns", 'l', maxlablist); } break;case 221:/* # line 988 "gram.in" */{ exreturn(yypvt[-0].expval); thiswasbranch = YES; } break;case 222:/* # line 990 "gram.in" */{ exstop(yypvt[-2].ival, yypvt[-0].expval); thiswasbranch = yypvt[-2].ival; } break;case 223:/* # line 994 "gram.in" */{ yyval.labval = mklabel( convci(toklen, token) ); } break;case 224:/* # line 998 "gram.in" */{ if(parstate == OUTSIDE) { newproc(); startproc(ESNULL, CLMAIN); } } break;case 225:/* # line 1007 "gram.in" */{ exgoto(yypvt[-0].labval); thiswasbranch = YES; } break;case 226:/* # line 1009 "gram.in" */{ exasgoto(yypvt[-0].namval); thiswasbranch = YES; } break;case 227:/* # line 1011 "gram.in" */{ exasgoto(yypvt[-4].namval); thiswasbranch = YES; } break;case 228:/* # line 1013 "gram.in" */{ if(nstars < maxlablist) putcmgo(putx(fixtype(yypvt[-0].expval)), nstars, labarray); else many("labels in computed GOTO list", 'l', maxlablist); } break;case 231:/* # line 1025 "gram.in" */{ nstars = 0; yyval.namval = yypvt[-0].namval; } break;case 232:/* # line 1029 "gram.in" */{ yyval.chval = yypvt[-0].expval ? mkchain((char *)yypvt[-0].expval,CHNULL) : CHNULL; } break;case 233:/* # line 1031 "gram.in" */{ yyval.chval = yypvt[-0].expval ? mkchain((char *)yypvt[-0].expval, yypvt[-2].chval) : yypvt[-2].chval; } break;case 235:/* # line 1036 "gram.in" */{ if(nstars < maxlablist) labarray[nstars++] = yypvt[-0].labval; yyval.expval = 0; } break;case 236:/* # line 1040 "gram.in" */{ yyval.ival = 0; } break;case 237:/* # line 1042 "gram.in" */{ yyval.ival = 2; } break;case 238:/* # line 1046 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break;case 239:/* # line 1048 "gram.in" */{ yyval.chval = hookup(yypvt[-2].chval, mkchain((char *)yypvt[-0].expval,CHNULL) ); } break;case 240:/* # line 1052 "gram.in" */{ if(parstate == OUTSIDE) { newproc(); startproc(ESNULL, CLMAIN); }/* This next statement depends on the ordering of the state table encoding */ if(parstate < INDATA) enddcl(); } break;case 241:/* # line 1065 "gram.in" */{ intonly = YES; } break;case 242:/* # line 1069 "gram.in" */{ intonly = NO; } break;case 243:/* # line 1074 "gram.in" */{ endio(); } break;case 245:/* # line 1079 "gram.in" */{ ioclause(IOSUNIT, yypvt[-0].expval); endioctl(); } break;case 246:/* # line 1081 "gram.in" */{ ioclause(IOSUNIT, ENULL); endioctl(); } break;case 247:/* # line 1083 "gram.in" */{ ioclause(IOSUNIT, IOSTDERR); endioctl(); } break;case 249:/* # line 1086 "gram.in" */{ doio(CHNULL); } break;case 250:/* # line 1088 "gram.in" */{ doio(CHNULL); } break;case 251:/* # line 1090 "gram.in" */{ doio(revchain(yypvt[-0].chval)); } break;case 252:/* # line 1092 "gram.in" */{ doio(revchain(yypvt[-0].chval)); } break;case 253:/* # line 1094 "gram.in" */{ doio(revchain(yypvt[-0].chval)); } break;case 254:/* # line 1096 "gram.in" */{ doio(CHNULL); } break;case 255:/* # line 1098 "gram.in" */{ doio(revchain(yypvt[-0].chval)); } break;case 256:/* # line 1100 "gram.in" */{ doio(CHNULL); } break;case 257:/* # line 1102 "gram.in" */{ doio(revchain(yypvt[-0].chval)); } break;case 259:/* # line 1109 "gram.in" */{ iostmt = IOBACKSPACE; } break;case 260:/* # line 1111 "gram.in" */{ iostmt = IOREWIND; } break;case 261:/* # line 1113 "gram.in" */{ iostmt = IOENDFILE; } break;case 263:/* # line 1120 "gram.in" */{ iostmt = IOINQUIRE; } break;case 264:/* # line 1122 "gram.in" */{ iostmt = IOOPEN; } break;case 265:/* # line 1124 "gram.in" */{ iostmt = IOCLOSE; } break;case 266:/* # line 1128 "gram.in" */{ ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, yypvt[-0].expval); endioctl(); } break;case 267:/* # line 1134 "gram.in" */{ ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, ENULL); endioctl(); } break;case 268:/* # line 1142 "gram.in" */{ ioclause(IOSUNIT, yypvt[-1].expval); endioctl(); } break;case 269:/* # line 1147 "gram.in" */{ endioctl(); } break;case 272:/* # line 1155 "gram.in" */{ ioclause(IOSPOSITIONAL, yypvt[-0].expval); } break;case 273:/* # line 1157 "gram.in" */{ ioclause(IOSPOSITIONAL, ENULL); } break;case 274:/* # line 1159 "gram.in" */{ ioclause(IOSPOSITIONAL, IOSTDERR); } break;case 275:/* # line 1161 "gram.in" */{ ioclause(yypvt[-1].ival, yypvt[-0].expval); } break;case 276:/* # line 1163 "gram.in" */{ ioclause(yypvt[-1].ival, ENULL); } break;case 277:/* # line 1165 "gram.in" */{ ioclause(yypvt[-1].ival, IOSTDERR); } break;case 278:/* # line 1169 "gram.in" */{ yyval.ival = iocname(); } break;case 279:/* # line 1173 "gram.in" */{ iostmt = IOREAD; } break;case 280:/* # line 1177 "gram.in" */{ iostmt = IOWRITE; } break;case 281:/* # line 1181 "gram.in" */{ iostmt = IOWRITE; ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, yypvt[-1].expval); endioctl(); } break;case 282:/* # line 1188 "gram.in" */{ iostmt = IOWRITE; ioclause(IOSUNIT, ENULL); ioclause(IOSFMT, ENULL); endioctl(); } break;case 283:/* # line 1197 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].tagval, CHNULL); } break;case 284:/* # line 1199 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].tagval, yypvt[-2].chval); } break;case 285:/* # line 1203 "gram.in" */{ yyval.tagval = (tagptr) yypvt[-0].expval; } break;case 286:/* # line 1205 "gram.in" */{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval,revchain(yypvt[-3].chval)); } break;case 287:/* # line 1209 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].expval, CHNULL); } break;case 288:/* # line 1211 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].tagval, CHNULL); } break;case 290:/* # line 1216 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].expval, mkchain((char *)yypvt[-2].expval, CHNULL) ); } break;case 291:/* # line 1218 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].tagval, mkchain((char *)yypvt[-2].expval, CHNULL) ); } break;case 292:/* # line 1220 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].expval, mkchain((char *)yypvt[-2].tagval, CHNULL) ); } break;case 293:/* # line 1222 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].tagval, mkchain((char *)yypvt[-2].tagval, CHNULL) ); } break;case 294:/* # line 1224 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].expval, yypvt[-2].chval); } break;case 295:/* # line 1226 "gram.in" */{ yyval.chval = mkchain((char *)yypvt[-0].tagval, yypvt[-2].chval); } break;case 296:/* # line 1230 "gram.in" */{ yyval.tagval = (tagptr) yypvt[-0].expval; } break;case 297:/* # line 1232 "gram.in" */{ yyval.tagval = (tagptr) yypvt[-1].expval; } break;case 298:/* # line 1234 "gram.in" */{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain((char *)yypvt[-3].expval, CHNULL) ); } break;case 299:/* # line 1236 "gram.in" */{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain((char *)yypvt[-3].tagval, CHNULL) ); } break;case 300:/* # line 1238 "gram.in" */{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, revchain(yypvt[-3].chval)); } break;case 301:/* # line 1242 "gram.in" */{ startioctl(); } break; } goto yystack; /* stack new state and value */}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -