📄 gram.c
字号:
case 193:# line 1077 "gram.in"{ yyval.expval = mkexpr(OPOR, yypvt[-2].expval, yypvt[-0].expval); } break;case 194:# line 1079 "gram.in"{ yyval.expval = mkexpr(OPAND, yypvt[-2].expval, yypvt[-0].expval); } break;case 195:# line 1081 "gram.in"{ yyval.expval = mkexpr(OPNOT, yypvt[-0].expval, ENULL); } break;case 196:# line 1083 "gram.in"{ NO66("concatenation operator //"); yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break;case 197:# line 1087 "gram.in"{ yyval.ival = OPPLUS; } break;case 198:# line 1088 "gram.in"{ yyval.ival = OPMINUS; } break;case 199:# line 1091 "gram.in"{ yyval.ival = OPEQ; } break;case 200:# line 1092 "gram.in"{ yyval.ival = OPGT; } break;case 201:# line 1093 "gram.in"{ yyval.ival = OPLT; } break;case 202:# line 1094 "gram.in"{ yyval.ival = OPGE; } break;case 203:# line 1095 "gram.in"{ yyval.ival = OPLE; } break;case 204:# line 1096 "gram.in"{ yyval.ival = OPNE; } break;case 205:# line 1100 "gram.in"{ yyval.expval = mkprim(yypvt[-0].namval, PNULL, CHNULL); } break;case 206:# line 1102 "gram.in"{ NO66("substring operator :"); if( yypvt[-1].namval->vclass != CLPARAM ) { yyval.expval = mkprim(yypvt[-1].namval, PNULL, yypvt[-0].chval); } else { errstr("substring of parameter %s", varstr(VL,yypvt[-1].namval->varname) ); YYERROR ; } } break;case 207:# line 1112 "gram.in"{ if( yypvt[-3].namval->vclass != CLPARAM ) { yyval.expval = mkprim(yypvt[-3].namval, mklist(yypvt[-1].chval), CHNULL); } else { errstr("can not subscript parameter %s", varstr(VL,yypvt[-3].namval->varname) ); YYERROR ; } } break;case 208:# line 1121 "gram.in"{ if( yypvt[-4].namval->vclass != CLPARAM ) { NO66("substring operator :"); yyval.expval = mkprim(yypvt[-4].namval, mklist(yypvt[-2].chval), yypvt[-0].chval); } else { errstr("can not subscript parameter %s", varstr(VL,yypvt[-4].namval->varname) ); YYERROR ; } } break;case 209:# line 1133 "gram.in"{ yyval.chval = mkchain(yypvt[-3].expval, mkchain(yypvt[-1].expval,CHNULL)); } break;case 210:# line 1137 "gram.in"{ yyval.expval = 0; } break;case 212:# line 1142 "gram.in"{ yyval.expval = mklogcon(1); } break;case 213:# line 1143 "gram.in"{ yyval.expval = mklogcon(0); } break;case 214:# line 1144 "gram.in"{ yyval.expval = mkstrcon(toklen, token); } break;case 215:# line 1145 "gram.in" { yyval.expval = mkintcon( convci(toklen, token) ); } break;case 216:# line 1146 "gram.in" { yyval.expval = mkrealcon(TYREAL, convcd(toklen, token)); } break;case 217:# line 1147 "gram.in" { yyval.expval = mkrealcon(TYDREAL, convcd(toklen, token)); } break;case 218:# line 1151 "gram.in"{ yyval.expval = mkcxcon(yypvt[-3].expval,yypvt[-1].expval); } break;case 220:# line 1157 "gram.in"{ if (optimflag && parstate != INDCL) yyval.expval = mkexpr(OPPAREN, yypvt[-1].expval, ENULL); else yyval.expval = yypvt[-1].expval; } break;case 223:# line 1166 "gram.in"{ yyval.expval = mkexpr(yypvt[-1].ival, yypvt[-2].expval, yypvt[-0].expval); } break;case 224:# line 1168 "gram.in"{ yyval.expval = mkexpr(OPSTAR, yypvt[-2].expval, yypvt[-0].expval); } break;case 225:# line 1170 "gram.in"{ yyval.expval = mkexpr(OPSLASH, yypvt[-2].expval, yypvt[-0].expval); } break;case 226:# line 1172 "gram.in"{ yyval.expval = mkexpr(OPPOWER, yypvt[-2].expval, yypvt[-0].expval); } break;case 227:# line 1174 "gram.in"{ if(yypvt[-1].ival == OPMINUS) yyval.expval = mkexpr(OPNEG, yypvt[-0].expval, ENULL); else yyval.expval = yypvt[-0].expval; } break;case 228:# line 1179 "gram.in"{ NO66("concatenation operator //"); yyval.expval = mkexpr(OPCONCAT, yypvt[-2].expval, yypvt[-0].expval); } break;case 230:# line 1234 "gram.in"{ if( !do_name_err ) { if(yypvt[-3].labval->labdefined) execerr("no backward DO loops", CNULL); yypvt[-3].labval->blklevel = blklevel+1; exdo(yypvt[-3].labval->labelno, yypvt[-0].chval); } } break;case 231:# line 1243 "gram.in"{ exendif(); thiswasbranch = NO; } break;case 233:# line 1246 "gram.in"{ exelif(yypvt[-2].expval); lastwasbranch = NO; } break;case 234:# line 1248 "gram.in"{ exelse(); lastwasbranch = NO; } break;case 235:# line 1250 "gram.in"{ exendif(); lastwasbranch = NO; } break;case 236:# line 1254 "gram.in"{ exif(yypvt[-1].expval); } break;case 237:# line 1258 "gram.in"{ if( yypvt[-2].namval->vclass != CLPARAM ) { yyval.chval = mkchain(yypvt[-2].namval, yypvt[-0].chval); do_name_err = 0; } else { err("symbolic constant not allowed as DO variable"); do_name_err = 1; } } break;case 238:# line 1269 "gram.in"{ exequals(yypvt[-2].expval, yypvt[-0].expval); } break;case 239:# line 1271 "gram.in"{ if( yypvt[-0].namval->vclass != CLPARAM ) { exassign(yypvt[-0].namval, yypvt[-2].labval); } else { err("can only assign to a variable"); } } break;case 242:# line 1280 "gram.in"{ inioctl = NO; } break;case 243:# line 1282 "gram.in"{ exarif(yypvt[-6].expval, yypvt[-4].labval, yypvt[-2].labval, yypvt[-0].labval); thiswasbranch = YES; } break;case 244:# line 1284 "gram.in"{ excall(yypvt[-0].namval, PNULL, 0, labarray); } break;case 245:# line 1286 "gram.in"{ excall(yypvt[-2].namval, PNULL, 0, labarray); } break;case 246:# line 1288 "gram.in"{ if(nstars < MAXLABLIST) excall(yypvt[-3].namval, mklist(yypvt[-1].chval), nstars, labarray); else err("too many alternate returns"); } break;case 247:# line 1294 "gram.in"{ exreturn(yypvt[-0].expval); thiswasbranch = YES; } break;case 248:# line 1296 "gram.in"{ exstop(yypvt[-2].ival, yypvt[-0].expval); thiswasbranch = yypvt[-2].ival; } break;case 249:# line 1300 "gram.in"{ yyval.labval = mklabel( convci(toklen, token) ); } break;case 250:# line 1304 "gram.in"{ if(parstate == OUTSIDE) { newproc(); startproc(PNULL, CLMAIN); } if( yystno != 0 && thislabel->labtype != LABFORMAT) if (optimflag) optbuff (SKLABEL, 0, thislabel->labelno, 1); else putlabel(thislabel->labelno); } break;case 251:# line 1318 "gram.in"{ exgoto(yypvt[-0].labval); thiswasbranch = YES; } break;case 252:# line 1320 "gram.in"{ if( yypvt[-0].namval->vclass != CLPARAM ) { exasgoto(yypvt[-0].namval); thiswasbranch = YES; } else { err("must go to label or assigned variable"); } } break;case 253:# line 1327 "gram.in"{ if( yypvt[-4].namval->vclass != CLPARAM ) { exasgoto(yypvt[-4].namval); thiswasbranch = YES; } else { err("must go to label or assigned variable"); } } break;case 254:# line 1334 "gram.in"{ if(nstars < MAXLABLIST) if (optimflag) optbuff (SKCMGOTO, fixtype(yypvt[-0].expval), nstars, labarray); else putcmgo (fixtype(yypvt[-0].expval), nstars, labarray); else err("computed GOTO list too long"); } break;case 257:# line 1349 "gram.in"{ nstars = 0; yyval.namval = yypvt[-0].namval; } break;case 258:# line 1353 "gram.in"{ yyval.chval = (yypvt[-0].expval ? mkchain(yypvt[-0].expval,CHNULL) : CHNULL); } break;case 259:# line 1355 "gram.in"{ if(yypvt[-0].expval) if(yypvt[-2].chval) yyval.chval = hookup(yypvt[-2].chval, mkchain(yypvt[-0].expval,CHNULL)); else yyval.chval = mkchain(yypvt[-0].expval,CHNULL); else yyval.chval = yypvt[-2].chval; } break;case 261:# line 1365 "gram.in"{ if(nstars<MAXLABLIST) labarray[nstars++] = yypvt[-0].labval; yyval.expval = 0; } break;case 262:# line 1369 "gram.in"{ yyval.ival = 0; } break;case 263:# line 1371 "gram.in"{ yyval.ival = 1; } break;case 264:# line 1375 "gram.in"{ yyval.chval = mkchain(yypvt[-0].expval, CHNULL); } break;case 265:# line 1377 "gram.in"{ yyval.chval = hookup(yypvt[-2].chval, mkchain(yypvt[-0].expval,CHNULL) ); } break;case 266:# line 1381 "gram.in"{ if(parstate == OUTSIDE) { newproc(); startproc(PNULL, CLMAIN); } if(parstate < INDATA) enddcl(); if( yystno != 0 && thislabel->labtype != LABFORMAT) if (optimflag) optbuff (SKLABEL, 0, thislabel->labelno, 1); else putlabel(thislabel->labelno); yystno = 0; } break;case 267:# line 1397 "gram.in"{ intonly = YES; } break;case 268:# line 1401 "gram.in"{ intonly = NO; } break;case 269:# line 1406 "gram.in"{ endio(); } break;case 271:# line 1411 "gram.in"{ ioclause(IOSUNIT, yypvt[-0].expval); endioctl(); } break;case 272:# line 1413 "gram.in"{ ioclause(IOSUNIT, PNULL); endioctl(); } break;case 273:# line 1415 "gram.in"{ ioclause(IOSUNIT, IOSTDERR); endioctl(); } break;case 275:# line 1418 "gram.in"{ doio(PNULL); } break;case 276:# line 1420 "gram.in"{ doio(PNULL); } break;case 277:# line 1422 "gram.in"{ doio(yypvt[-0].chval); } break;case 278:# line 1424 "gram.in"{ doio(yypvt[-0].chval); } break;case 279:# line 1426 "gram.in"{ doio(yypvt[-0].chval); } break;case 280:# line 1428 "gram.in"{ doio(PNULL); } break;case 281:# line 1430 "gram.in"{ doio(yypvt[-0].chval); } break;case 282:# line 1432 "gram.in"{ doio(PNULL); } break;case 283:# line 1434 "gram.in"{ doio(yypvt[-0].chval); } break;case 285:# line 1441 "gram.in"{ iostmt = IOBACKSPACE; } break;case 286:# line 1443 "gram.in"{ iostmt = IOREWIND; } break;case 287:# line 1445 "gram.in"{ iostmt = IOENDFILE; } break;case 289:# line 1452 "gram.in"{ iostmt = IOINQUIRE; } break;case 290:# line 1454 "gram.in"{ iostmt = IOOPEN; } break;case 291:# line 1456 "gram.in"{ iostmt = IOCLOSE; } break;case 292:# line 1460 "gram.in"{ ioclause(IOSUNIT, PNULL); ioclause(IOSFMT, yypvt[-0].expval); endioctl(); } break;case 293:# line 1466 "gram.in"{ ioclause(IOSUNIT, PNULL); ioclause(IOSFMT, PNULL); endioctl(); } break;case 294:# line 1474 "gram.in"{ if(yypvt[-1].expval->headblock.vtype == TYCHAR) { ioclause(IOSUNIT, PNULL); ioclause(IOSFMT, yypvt[-1].expval); } else ioclause(IOSUNIT, yypvt[-1].expval); endioctl(); } break;case 295:# line 1484 "gram.in"{ endioctl(); } break;case 298:# line 1492 "gram.in"{ ioclause(IOSPOSITIONAL, yypvt[-0].expval); } break;case 299:# line 1494 "gram.in"{ ioclause(IOSPOSITIONAL, PNULL); } break;case 300:# line 1496 "gram.in"{ ioclause(IOSPOSITIONAL, IOSTDERR); } break;case 301:# line 1498 "gram.in"{ ioclause(yypvt[-1].ival, yypvt[-0].expval); } break;case 302:# line 1500 "gram.in"{ ioclause(yypvt[-1].ival, PNULL); } break;case 303:# line 1502 "gram.in"{ ioclause(yypvt[-1].ival, IOSTDERR); } break;case 304:# line 1506 "gram.in"{ yyval.ival = iocname(); } break;case 305:# line 1510 "gram.in"{ iostmt = IOREAD; } break;case 306:# line 1514 "gram.in"{ iostmt = IOWRITE; } break;case 307:# line 1518 "gram.in"{ iostmt = IOWRITE; ioclause(IOSUNIT, PNULL); ioclause(IOSFMT, yypvt[-1].expval); endioctl(); } break;case 308:# line 1525 "gram.in"{ iostmt = IOWRITE; ioclause(IOSUNIT, PNULL); ioclause(IOSFMT, PNULL); endioctl(); } break;case 309:# line 1534 "gram.in"{ yyval.chval = mkchain(yypvt[-0].tagval, CHNULL); } break;case 310:# line 1536 "gram.in"{ yyval.chval = hookup(yypvt[-2].chval, mkchain(yypvt[-0].tagval, CHNULL)); } break;case 311:# line 1540 "gram.in"{ yyval.tagval = (tagptr) yypvt[-0].expval; } break;case 312:# line 1542 "gram.in"{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval,yypvt[-3].chval); } break;case 313:# line 1546 "gram.in"{ yyval.chval = mkchain(yypvt[-0].expval, CHNULL); } break;case 314:# line 1548 "gram.in"{ yyval.chval = mkchain(yypvt[-0].tagval, CHNULL); } break;case 316:# line 1553 "gram.in"{ yyval.chval = mkchain(yypvt[-2].expval, mkchain(yypvt[-0].expval, CHNULL) ); } break;case 317:# line 1555 "gram.in"{ yyval.chval = mkchain(yypvt[-2].expval, mkchain(yypvt[-0].tagval, CHNULL) ); } break;case 318:# line 1557 "gram.in"{ yyval.chval = mkchain(yypvt[-2].tagval, mkchain(yypvt[-0].expval, CHNULL) ); } break;case 319:# line 1559 "gram.in"{ yyval.chval = mkchain(yypvt[-2].tagval, mkchain(yypvt[-0].tagval, CHNULL) ); } break;case 320:# line 1561 "gram.in"{ yyval.chval = hookup(yypvt[-2].chval, mkchain(yypvt[-0].expval, CHNULL) ); } break;case 321:# line 1563 "gram.in"{ yyval.chval = hookup(yypvt[-2].chval, mkchain(yypvt[-0].tagval, CHNULL) ); } break;case 322:# line 1567 "gram.in"{ yyval.tagval = (tagptr) yypvt[-0].expval; } break;case 323:# line 1569 "gram.in"{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain(yypvt[-3].expval, CHNULL) ); } break;case 324:# line 1571 "gram.in"{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, mkchain(yypvt[-3].tagval, CHNULL) ); } break;case 325:# line 1573 "gram.in"{ yyval.tagval = (tagptr) mkiodo(yypvt[-1].chval, yypvt[-3].chval); } break;case 326:# line 1577 "gram.in"{ startioctl(); } break; } goto yystack; /* stack new state and value */ }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -