⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gram.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
📖 第 1 页 / 共 4 页
字号:
   0,   1,   0,   2,   3,   1,   3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   3,   1,   5,   6,   5,   2,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   0,   4,   6,   3,   4,   5,   3,   1,   3,   3,   3,   3,   3,   3,   3,   3,   1,   3,   1,   3,   1,   1,   1,   3,   3,   2,   0,   3,   0,   2,   3,   1,   3,   1,   1,   1,   3,   1,   3,   3,   4,   0,   2,   1,   3,   1,   3,   1,   1,   2,   4,   1,   3,   0,   1,   3,   3,   0,   4,   1,   3,   1,   3,   1,   2,   2,   3,   1,   1,   3,   5,   1,   3,   0,   1,   7,   1,   3,   2,   2,   3,   1,   1,   3,   3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   2,   1,   1,   2,   2,   1,   1,   1,   1,   1,   1,   2,   2,   3,   3,   1,   3,   3,   1,   3,   1,   1,   3,   0,   1,   1,   3,   1,   3,   1,   1,   1,   3,   3,   3,   3,   2,   3,   3,   3,   3,   3,   2,   3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   4,   5,   5,   0,   1,   1,   1,   1,   1,   1,   1,   5,   1,   3,   1,   1,   3,   3,   3,   3,   2,   3,   1,   7,   2,   2,   6,   2,   2,   5,   3,   4,   5,   2,   1,   1,  10,   1,   3,   4,   3,   3,   1,   1,   3,   3,   7,   7,   0,   1,   3,   1,   3,   1,   2,   1,   1,   1,   3,   0,   0,   0,   1,   2,   2,   2,   2,   2,   2,   2,   3,   4,   4,   2,   3,   1,   3,   3,   1,   1,   1,   3,   1,   1,   1,   1,   1,   3,   3,   1,   3,   1,   1,   1,   2,   2,   2,   1,   3,   3,   4,   4,   1,   3,   1,   5,   1,   1,   1,   3,   3,   3,   3,   3,   3,   1,   5,   5,   5,   0 };short yychk[]={-1000,  -1, -71,  -2, 256,   3,   1, -72, -73, -74,  19,  38,   4,  61,  24,  70,  45,  -8,  41, -11, -46, -77, -78, -79, -80, -81, -82,  67,  44,  58,-106,  34,-107,  37,  36,  40,  -9,  28,  43,  54,  42,  51,-103,  56,-108,  21,  30,-109,-110,  49, -32,  65, -15,  50, -10,  31,  20,  46,  47,  48,-111,  25,  59,  69,  53,  64,  29,  35,  32,  55,  26,  73,  33,  22,  68,-112,-114,-115,-117,-118,-119,-121,  63,  74,  60,  23,  66,  39,  52,  57,  27, -17,   5, -75, -76, -76, -76, -76,  45, -86,  79, -34, -30,  15,  79, -86,  79,  79,  79,  79,  79,-102,  84, -83, -83, -75,-106,  71, -75, -75, -75,  -7,  83, -83, -83, -83, -83, -83, -86, -36, -30, -75, -75, -75,  75, -75, -75, -75,-104, -75, -75, -75, -75,-113, -41,  83,  85,  75, -36, -45, -40, -13,  13,  14,   5,   7,   8,   9,  81,  82,-113,  75,-113,-116, -41,  83,-113,  79, -75, -75, -75, -75, -75, -35, -34, -35, -34, -34, -76, -30, -23,  75, -30, -47,  86,  84, -33, -30, -30, -30, -90,  75, -97, -98,-100, -30, -84, -91, -30, -47,  75, -88,  75, -88, -33, -47, -30, -30, -90, -97,-105, -70, -67, -55, -66,  15,  75,  77, -29,  75,  -4,   7,  75,  76, -22, -43, -37,  83, -38,  75, -44, -36, -45, -13,  91, -39, -37, -39,  75,-105,  -3,   7, -30,  75, -30, -40,-122, -41,  75,-123,  83,  85, -16,  16, -13,  83,  84,  85,  86, -40, -40, -26,  79,  -6, -36,  75,  79, -27, -38,  -5, -28, -37, -44,  75, -27,-120,-120,-120,-120, -40,  83, -23, -23, -34, -83,  76, -24, -31, -30,  83, -87,  75, -86,  15, -87, -48, -36,  75,  -8,  84,  79, -85, -92, -30,  -3, -37, -37,  75, -33,  84,  79, -64, -68,  75, -69, -65, -55, -66, -37, -19, -39, -20, -37,  72, -37,  76,  79, -13,  83,  84,  85, -14,  90,  89,  88,  87,  86,  92,  94,  93,  96,  95,  97,  -3, -37, -38, -37, -37, -37, -86, -96,  -3,  76,  76,  79, -40, -37,  83,  85, -40, -40, -40, -40, -40,  76,  79, -26, -26, -26,  79,  79,  79, -38,  -5, -28,-120,-120, -23, -87,  76,  79,  -7, -93, -94, -33,  84,  76,  79, -99,-101, -12,  15, -18, -30, -91,  76,  79,  77, -89,  76, -89,  83, -62, -61, -49, -55, -53, -54, -50, -44,  13,  14,   5,   6, -52,   7,  81,  82, -51,  75,  12,  11,  10,   8,   9, -67, -68,  75, -63, -60, -59, -58,  81,  82, -57, -56,   7, -55,  75,  79, -64, -68,  76,  78,  79, -30,  76, -43, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,  76,  79,  76,  75,  79,  76,-123, -40,  76,  -6,  79, -38,  -5, -38,  -5, -38,  -5,  79,  79,  79,  -7, -31,  76,  79, -95, -42, -37,  83, -36,  76,  79,  82,  79, -92, -37, -86,  71,  76,  84,  79,  83,  83, -53, -51, -53, -51, -59,  76,  79,  78,  81,  82,  83,  84, -58, -58,  85, -59, -55, -65, -68, -29,  75, -39, -37,  -3, -38, -96,  -3, -86, -21, -30, -38, -21, -21, -21, -95,  78,-101, -12, -30, -21, -30, -89, -61, -49, -55, -53, -49, -59, -60, -58, -58, -57, -57, -57,  76,  77,  76,  79,  76,  76, -37,  76,  77,  76,  76,  76, -42, -37,  76, -63, -59,  -3, -25, -37,  76,  79,  79,  -3, -37 };short yydef[]={   1,  -2,   0,   0,   9,  10,   2,   3,   4,   5,   0, 266,   8,  17,  17,  17,  17, 255,   0,  30,  -2,  32,  33,  34,  35,  36,  37, 110,  40, 110, 229, 266,   0, 266, 266, 266,  57, 110, 110, 110, 110, 110,  -2, 105,   0, 266, 266, 241, 242, 266, 244, 266, 266, 266,  45, 114, 250, 266, 266, 266, 269, 266, 262, 263,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,   0,   0,   0,   0, 282, 266, 266, 266, 266, 266, 285, 286, 287, 289, 290, 291,   6,  29,   7,  20,  20,   0,   0,  17,   0, 256,  22,  18,  19,   0,   0, 256,   0,   0,   0,  98, 106,   0,  38,   0, 267, 231, 232,   0, 234, 235,  44, 267,   0,   0,   0,   0,  98,   0,   0, 205,   0, 240,   0,   0, 210, 210,   0,   0,   0,   0,   0,   0, 270,  -2, 272, 273,   0, 221, 222,   0,   0, 212, 213, 214, 215, 216, 217, 197, 198, 274,   0, 275, 276,  -2, 293, 280,   0, 326, 326, 326, 326,   0,  11,  21,  12,  22,  22,   0, 110,  16,   0,  83, 255,  64,   0,  63,  83,  67,  69,  71,   0,  96,   0,   0,   0,  39,  75,  77,  78,   0,   0,   0,   0,  60,   0,  66,  68,  70,  95, 113,   0, 116, 120, 124, 125,   0,   0, 206,  -2,   0, 249,   0, 245,   0, 258, 260,   0, 180,   0, 182, 183, 184,   0,   0, 247, 211, 248,   0, 112, 251,  94,  -2,   0, 257, 298,   0, 219,   0, 296, 299, 300,   0, 304,   0,   0,   0,   0,   0, 227, 298, 277,   0, 309, 311,   0,   0, 281,  -2, 314, 315,   0,  -2,   0, 283, 284, 288, 305, 306, 326, 326,  13,  14,  22,  83,  23,   0,  25,  27,  28,  57,  85,   0,   0,  82,   0,  73,   0,  99,   0,   0,   0,  79,   0, 268,   0, 268,   0,  61,   0,   0, 121, 122, 130,   0, 133,   0, 138, 238,   0,   0, 177,  -2,   0,   0, 246,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 199, 200, 201, 202, 203, 204, 261,   0, 180, 189, 195,   0,   0,   0,  92,  -2, 295,   0,   0, 301, 302, 303, 223, 224, 225, 226, 228, 294,   0, 279,   0, 278,   0,   0,   0, 180,   0,   0, 307, 308,  15,  57,  24,   0,  43,   0,   0,  62,  65,  72,   0,   0, 100, 102, 104, 107, 108,  76,  41,   0,   0, 255,   0,  58,   0,   0, 118, 139, 142, 151, 143, 144, 145, 146, 147, 148, 149, 150, 154,   0,   0, 155,   0, 160, 161, 162, 158, 159, 117, 123, 130,   0,   0,  -2, 163,   0,   0, 168, 171, 173, 174,   0,   0, 135, 136, 207, 210,   0, 239,   0, 259, 185, 186, 187, 188,  -2, 191, 192, 193, 194, 196, 181,   0, 236,   0,   0, 255, 297, 298, 220, 310,   0,  -2, 317,  -2, 319,  -2, 321,   0,   0,   0,  42,  26,  84,   0,  86,  88,  91,  90,  74,  97,   0,   0,   0,  80,  81,   0, 233, 268, 115,   0,   0,   0, 152, 156, 153, 157, 131, 126,   0, 130,   0,   0,   0,   0, 164, 165,   0,   0,   0, 134, 137, 208, 210,   0, 179,   0, 180,   0,  93,   0,   0, 205,  -2,   0,   0,   0,  87,   0, 101, 103, 109, 230,   0,  59, 119, 140, 142, 151, 141, 129,   0, 166, 167, 169, 170, 172, 175,   0, 209,   0, 218, 253, 254, 312,   0, 323, 324, 325,  89,  91, 127,   0, 128,   0, 237, 264, 132,   0,   0, 243, 265 };#ifndef lintstatic char yaccpar_sccsid[] = "@(#)yaccpar	4.1	(Berkeley)	2/11/83";#endif## define YYFLAG -1000# define YYERROR goto yyerrlab# define YYACCEPT return(0)# define YYABORT return(1)/*	parser for yacc output	*/#ifdef YYDEBUGint yydebug = 0; /* 1 for debugging */#endifYYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */int yychar = -1; /* current input token number */int yynerrs = 0;  /* number of errors */short yyerrflag = 0;  /* error recovery flag */yyparse() {	short yys[YYMAXDEPTH];	short yyj, yym;	register YYSTYPE *yypvt;	register short yystate, *yyps, yyn;	register YYSTYPE *yypv;	register short *yyxi;	yystate = 0;	yychar = -1;	yynerrs = 0;	yyerrflag = 0;	yyps= &yys[-1];	yypv= &yyv[-1]; yystack:    /* put a state and value onto the stack */#ifdef YYDEBUG	if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );#endif		if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }		*yyps = yystate;		++yypv;		*yypv = yyval; yynewstate:	yyn = yypact[yystate];	if( yyn<= YYFLAG ) goto yydefault; /* simple state */	if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;	if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;	if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */		yychar = -1;		yyval = yylval;		yystate = yyn;		if( yyerrflag > 0 ) --yyerrflag;		goto yystack;		} yydefault:	/* default state action */	if( (yyn=yydef[yystate]) == -2 ) {		if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;		/* look through exception table */		for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */		while( *(yyxi+=2) >= 0 ){			if( *yyxi == yychar ) break;			}		if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */		}	if( yyn == 0 ){ /* error */		/* error ... attempt to resume parsing */		switch( yyerrflag ){		case 0:   /* brand new error */			yyerror( "syntax error" );		yyerrlab:			++yynerrs;		case 1:		case 2: /* incompletely recovered error ... try again */			yyerrflag = 3;			/* find a state where "error" is a legal shift action */			while ( yyps >= yys ) {			   yyn = yypact[*yyps] + YYERRCODE;			   if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){			      yystate = yyact[yyn];  /* simulate a shift of "error" */			      goto yystack;			      }			   yyn = yypact[*yyps];			   /* the current yyps has no shift onn "error", pop stack */#ifdef YYDEBUG			   if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );#endif			   --yyps;			   --yypv;			   }			/* there is no state on the stack with an error shift ... abort */	yyabort:			return(1);		case 3:  /* no shift yet; clobber input char */#ifdef YYDEBUG			if( yydebug ) printf( "error recovery discards char %d\n", yychar );#endif			if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */			yychar = -1;			goto yynewstate;   /* try again in the same state */			}		}	/* reduction by production yyn */#ifdef YYDEBUG		if( yydebug ) printf("reduce %d\n",yyn);#endif		yyps -= yyr2[yyn];		yypvt = yypv;		yypv -= yyr2[yyn];		yyval = yypv[1];		yym=yyn;			/* consult goto table to find next state */		yyn = yyr1[yyn];		yyj = yypgo[yyn] + *yyps + 1;		if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];		switch(yym){			case 3:# line 259 "gram.in"{ lastwasbranch = NO; } break;case 5:# line 262 "gram.in"{ if(yypvt[-1].labval && (yypvt[-1].labval->labelno==dorange))			enddo(yypvt[-1].labval->labelno);		  if(lastwasbranch && thislabel==NULL)			warn("statement cannot be reached");		  lastwasbranch = thiswasbranch;		  thiswasbranch = NO;		  if(yypvt[-1].labval)			{			if(yypvt[-1].labval->labtype == LABFORMAT)				err("label already that of a format");			else				yypvt[-1].labval->labtype = LABEXEC;			}		  if(!optimflag)			{			argtemplist = hookup(argtemplist, activearglist);			activearglist = CHNULL;			}		} break;case 6:# line 282 "gram.in"{ doinclude( yypvt[-0].charpval ); } break;case 7:# line 284 "gram.in"{ lastwasbranch = NO;  endproc(); } break;case 8:# line 286 "gram.in"{ execerr("unclassifiable statement", CNULL);  flline(); } break;case 9:# line 288 "gram.in"{ flline();  needkwd = NO;  inioctl = NO; 		  yyerrok; yyclearin; } break;case 10:# line 293 "gram.in"{#ifdef SDB		if( sdbflag )			{			linenostab(lineno);			}#endif		if(yystno != 0)			{			yyval.labval = thislabel =  mklabel(yystno);			if(thislabel->labdefined)				execerr("label %s already defined",					convic(thislabel->stateno) );			else	{				if(thislabel->blklevel!=0 && thislabel->blklevel<blklevel				    && thislabel->labtype!=LABFORMAT)					warn1("there is a branch to label %s from outside block",					      convic( (ftnint) (thislabel->stateno) ) );				thislabel->blklevel = blklevel;				thislabel->labdefined = YES;				}			}		else    yyval.labval = thislabel = NULL;		} break;case 11:# line 321 "gram.in"{startproc(yypvt[-0].namval, CLMAIN); } break;case 12:# line 323 "gram.in"{ if(yypvt[-0].namval) NO66("named BLOCKDATA");		  startproc(yypvt[-0].namval, CLBLOCK); } break;case 13:# line 326 "gram.in"{ entrypt(CLPROC, TYSUBR, (ftnint) 0,  yypvt[-1].namval, yypvt[-0].chval); } break;case 14:# line 328 "gram.in"{ entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yypvt[-1].namval, yypvt[-0].chval); } break;case 15:# line 330 "gram.in"{ entrypt(CLPROC, yypvt[-4].ival, varleng, yypvt[-1].namval, yypvt[-0].chval); } break;case 16:# line 332 "gram.in"{ if(parstate==OUTSIDE || procclass==CLMAIN			|| procclass==CLBLOCK)				execerr("misplaced entry statement", CNULL);			entrypt(CLENTRY, 0, (ftnint) 0, yypvt[-1].namval, yypvt[-0].chval);		} break;case 17:# line 340 "gram.in"{ newproc(); } break;case 19:# line 347 "gram.in"{ yyval.namval = mkname(toklen, token); } break;case 20:# line 350 "gram.in"{ yyval.namval = NULL; } break;case 22:# line 355 "gram.in"{ yyval.chval = 0; } break;case 23:# line 357 "gram.in"{ NO66(" () argument list");		  yyval.chval = 0; } break;case 24:# line 360 "gram.in"{yyval.chval = yypvt[-1].chval; } break;case 25:# line 364 "gram.in"{ yyval.chval = (yypvt[-0].namval ? mkchain(yypvt[-0].namval,CHNULL) : CHNULL ); } break;case 26:# line 366 "gram.in"{ if(yypvt[-0].namval) yypvt[-2].chval = yyval.chval = hookup(yypvt[-2].chval, mkchain(yypvt[-0].namval,CHNULL)); } break;case 27:# line 370 "gram.in"{ if((yypvt[-0].namval->vstg!=STGUNKNOWN && yypvt[-0].namval->vstg!=STGARG)				|| (yypvt[-0].namval->vclass == CLPARAM) ) {			dclerr("name declared as argument after use", yypvt[-0].namval);			yyval.namval = NULL;		  } else			yypvt[-0].namval->vstg = STGARG;		} break;case 28:# line 378 "gram.in"{ NO66("altenate return argument");		  yyval.namval = 0;  substars = YES; } break;case 29:# line 385 "gram.in"{		char *s;		s = copyn(toklen+1, token);		s[toklen] = '\0';		yyval.charpval = s;		} break;case 38:# line 472 "gram.in"{ NO66("SAVE statement");		  saveall = YES; } break;case 39:# line 475 "gram.in"{ NO66("SAVE statement"); } break;case 40:# line 477 "gram.in"{		if (parstate == OUTSIDE)			{			newproc();			startproc(PNULL, CLMAIN);			parstate = INSIDE;			}		if (parstate < INDCL)			parstate = INDCL;		fmtstmt(thislabel);		setfmt(thislabel);		} break;case 41:# line 490 "gram.in"{ NO66("PARAMETER statement"); } break;case 42:# line 494 "gram.in"{ settype(yypvt[-3].namval, yypvt[-5].ival, yypvt[-0].ival);		  if(ndim>0) setbound(yypvt[-3].namval,ndim,dims);		} break;case 43:# line 498 "gram.in"{ settype(yypvt[-2].namval, yypvt[-4].ival, yypvt[-0].ival);		  if(ndim>0) setbound(yypvt[-2].namval,ndim,dims);		} break;case 44:# line 504 "gram.in"{ varleng = yypvt[-0].ival; } break;case 45:# line 508 "gram.in"{ varleng = (yypvt[-0].ival<0 || yypvt[-0].ival==TYLONG ? 0 : typesize[yypvt[-0].ival]);		  vartype = yypvt[-0].ival;		} break;case 46:# line 513 "gram.in"{ yyval.ival = TYLONG; } break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -