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

📄 gram.c

📁 把fortran语言编的程序转为c语言编的程序, 运行环境linux
💻 C
📖 第 1 页 / 共 4 页
字号:
  57,  57,  57,  57,  57,  57,  57,  57,  57,  10,  10,  10,  74,   7,   8,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,  16,  16,  16,  50,  50,  50,  50,  51,  51,  64,  64,  65,  65,  66,  66,  80,  54,  54,  67,  67,  81,  82,  76,  83,  84,  77,  77,  85,  85,  45,  45,  45,  70,  70,  86,  86,  72,  72,  87,  36,  18,  18,  19,  19,  75,  75,  89,  88,  88,  90,  90,  43,  43,  91,  91,   3,  68,  68,  92,  92,  95,  93,  94,  94,  96,  96,  11,  69,  69,  97,  20,  20,  71,  21,  21,  22,  22,  38,  38,  38,  39,  39,  39,  39,  39,  39,  39,  39,  39,  39,  39,  39,  39,  39,  12,  12,  13,  13,  13,  13,  13,  13,  37,  37,  37,  37,  32,  40,  40,  44,  44,  48,  48,  48,  48,  48,  48,  48,  47,  49,  49,  49,  41,  41,  42,  42,  42,  42,  42,  42,  42,  42,  58,  58,  58,  58,  58,  58,  58,  58,  58,  99,  23,  24,  24,  98,  98,  98,  98,  98,  98,  98,  98,  98,  98,  98,   4, 100, 101, 101, 101, 101,  73,  73,  35,  25,  25,  46,  46,  14,  14,  28,  28,  59,  78,  79, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 104, 111, 111, 111, 106, 113, 113, 113, 108, 108, 105, 105, 114, 114, 115, 115, 115, 115, 115, 115,  15, 107, 109, 110, 110,  29,  29,   6,   6,  30,  30,  30,  31,  31,  31,  31,  31,  31,   5,   5,   5,   5,   5, 112 };yytabelem yyr2[]={   0,   0,   3,   2,   2,   2,   3,   3,   2,   1,   1,   3,   4,   3,   4,   4,   5,   3,   0,   1,   1,   0,   1,   2,   3,   1,   3,   1,   3,   0,   2,   3,   1,   3,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,   2,   1,   5,   7,   5,   5,   0,   2,   1,   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,   3,   3,   0,   6,   0,   0,   0,   2,   3,   1,   3,   1,   2,   1,   1,   3,   1,   1,   1,   3,   3,   2,   1,   5,   1,   3,   0,   3,   0,   2,   3,   1,   3,   1,   1,   1,   3,   1,   3,   3,   4,   1,   0,   2,   1,   3,   1,   3,   1,   1,   2,   4,   1,   3,   0,   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,   1,   1,   1,   5,   1,   1,   1,   1,   3,   1,   1,   3,   3,   3,   3,   2,   3,   1,   7,   4,   1,   2,   2,   6,   2,   2,   5,   3,   1,   4,   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,   3,   5,   5,   5,   0 };yytabelem yychk[]={-1000,  -1, -55,  -2, 256,   3,   1, -56, -57, -58,  18,  37,   4,  60,  23,  69,  44,  -7,  40, -10, -50, -64, -65, -66, -67, -68, -69,  66,  43,  57, -98,  33,  97, -99,  36,  35,  39,  -8,  27,  42,  53,  41,  30,  50,  55,-100,  20,  29,-101,-102,  48, -35,  64, -14,  49,  -9,  19,  45,  46,  47,-103,  24,  58,  68,  52,  63,  28,  34,  31,  54,  25,  72,  32,  21,  67, 100,-104,-106,-107,-109,-110,-111,-113,  62,  73,  59,  22,  65,  38,  51,  56,  26, -17,   5, -59, -60, -60, -60, -60,  44, -73,  78, -52, -33,  14,  78,  99, -73,  78,  78,  78,  78, -73,  78, -97,  83, -70, -86, -33, -51,  85,  83, -71, -59, -98,  70, -59, -59, -59, -16,  82, -71, -71, -71, -71, -81, -71, -37, -33, -59, -59, -59,  74, -59, -59, -59, -59, -59, -59, -59,-105, -42,  82,  84,  74, -37, -48, -41, -12,  12,  13,   5,   6,   7,   8, -49,  80,  81,  11,  10,   9,-105,  74,-105,-108, -42,  82,-105,  78, -59, -59, -59, -59, -59, -53, -52, -53, -52, -52, -60, -33, -26,  74, -33, -76, -51, -36, -33, -33, -33, -80,  74, -82, -76, -92, -93, -95, -33,  78,  14,  74, -78, -73,  74, -78, -36, -51, -33, -33, -80, -82, -92,  76, -32,  74,  -4,   6,  74,  75, -25, -46, -38,  82, -39,  74, -47, -37, -48, -12,  90, -40, -38, -40,  74,  -3,   6, -33,  74, -33, -41,-114, -42,  74,-115,  82,  84, -15,  15, -12,  82,  83,  84,  85, -41, -41, -29,  78,  -6, -37,  74,  78, -30, -39,  -5, -31, -38, -47,  74, -30,-112,-112,-112,-112, -41,  82, -61,  74, -26, -26, -52, -71,  75, -27, -34, -33,  82, -75,  74, -77, -84, -73, -75, -54, -37, -19, -18, -37,  74,  74,  -7,  83, -86,  83, -72, -87, -33,  -3, -24, -23,  98, -33, -38, -38,  74, -36, -38, -21, -40, -22, -38,  71, -38,  75,  78, -12,  82,  83,  84, -13,  89,  88,  87,  86,  85,  91,  93,  92,  95,  94,  96,  -3, -38, -39, -38, -38, -38, -73, -91,  -3,  75,  75,  78, -41, -38,  82,  84, -41, -41, -41, -41, -41,  75,  78, -29, -29, -29,  78,  78,  78, -38, -39,  -5, -31,-112,-112,  75, -62, -63,  14, -26, -74,  75,  78, -16, -88, -89,  99,  78, -85, -45, -44, -12, -47, -33, -48,  74, -36,  75,  78,  83,  78, -19, -94, -96, -11,  14, -20, -33,  75,  78,  76, -79,  74,  76,  75, -79,  82,  75,  77,  78, -33,  75, -46, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,  75,  78,  75,  74,  78,  75,-115, -41,  75,  -6,  78, -39,  -5, -39,  -5, -39,  -5,  75,  78,  78,  78,  75,  78,  76, -75, -34,  75,  78, -90, -43, -38,  82, -85,  82, -44, -37, -83, -18,  78,  75,  78,  81,  78, -87, -38, -73, -38, -28, -38,  70,  75, -32,  74, -40, -38,  -3, -39, -91,  -3, -73, -23, -33, -39, -23, -23, -23, -63,  14, -16, -90,  77, -45, -44, -77, -23, -96, -11, -33, -24,  75,  78, -79,  75,  78,  75,  75, -38,  75,  75,  75,  75, -43, -38,  83,  75, -38,  -3,  78,  -3 };yytabelem yydef[]={   1,  -2,   0,   0,   9,  10,   2,   3,   4,   5,   0, 240,   8,  18,  18,  18,  18, 229,   0,  37,  -2,  39,  40,  41,  -2,  43,  44,  45,  47, 139, 199, 240, 202,   0, 240, 240, 240,  67, 139, 139, 139, 139,  87, 139, 134,   0, 240, 240, 215, 216, 240, 218, 240, 240, 240,  54, 224, 240, 240, 240, 243, 240, 236, 237,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,  66,   0,   0,   0,   0, 256, 240, 240, 240, 240, 240, 259, 260, 261, 263, 264, 265,   6,  36,   7,  21,  21,   0,   0,  18,   0, 230,  29,  19,  20,   0,  89,   0, 230,   0,   0,   0,  89, 127, 135,   0,  46,  99, 101, 102,  74,   0,   0,  -2, 203, 204,   0, 206, 207,  53, 241,   0,   0,   0,   0,  89, 127,   0, 169,   0, 214,   0,   0, 174, 174,   0,   0,   0,   0,   0, 244,  -2, 246, 247,   0, 191, 192,   0,   0, 178, 179, 180, 181, 182, 183, 184, 161, 162, 186, 187, 188, 248,   0, 249, 250,  -2, 267, 254,   0, 301, 301, 301, 301,   0,  11,  22,  13,  29,  29,   0, 139,  17,   0, 111,  91, 229,  73, 111,  77,  79,  81,   0,  86,   0, 124, 126,   0,   0,   0,   0,   0,   0,   0,   0,   0,  70,   0,  76,  78,  80,  85, 123,   0, 170,  -2,   0, 223,   0, 219,   0, 232, 234,   0, 144,   0, 146, 147, 148,   0,   0, 221, 175, 222,   0, 225, 122,  -2,   0, 231, 272,   0, 189,   0, 270, 273, 274,   0, 278,   0,   0,   0,   0,   0, 197, 272, 251,   0, 283, 285,   0,   0, 255,  -2, 288, 289,   0,  -2,   0, 257, 258, 262, 279, 280, 301, 301,  12,   0,  14,  15,  29,  52,  30,   0,  32,  34,  35,  67, 113,   0,   0,   0, 106,   0,  83,   0, 109, 107,   0,   0, 128,   0, 100,  75,   0, 103,   0, 242, 201, 210,   0,   0,   0, 242,   0,  71, 212,   0,   0, 141,  -2,   0,   0, 220,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 163, 164, 165, 166, 167, 168, 235,   0, 144, 153, 159,   0,   0,   0, 120,  -2, 269,   0,   0, 275, 276, 277, 193, 194, 195, 196, 198, 268,   0, 253,   0, 252,   0,   0,   0,   0, 144,   0,   0, 281, 282,  23,   0,  25,  27,  16, 111,  31,   0,  50,   0,   0,  51,   0,  92,  94,  96,   0,  98, 176, 177,   0,  72,  82,   0,  90,   0,   0,   0, 129, 131, 133, 136, 137,  48,   0,   0, 229,   0,   0,   0,  68,   0, 171, 174,   0, 213,   0, 233, 149, 150, 151, 152,  -2, 155, 156, 157, 158, 160, 145,   0, 208,   0,   0, 229, 271, 272, 190, 284,   0,  -2, 291,  -2, 293,  -2, 295,  -2,   0,   0,   0,  24,   0,   0,  67,  33, 112,   0, 114, 116, 119, 118,  93,   0,  97,  84,  91, 110,   0, 125,   0,   0,   0, 104, 105,   0,   0, 209, 238, 205, 242, 172, 174,   0, 143,   0, 144,   0, 121,   0,   0, 169,  -2,   0,   0,   0,  26,  28,  49, 115,   0,  95,  96,   0,   0, 130, 132, 138, 200, 211,   0,  69, 173,   0, 185, 227, 228, 286, 298, 299, 300, 117, 119,  88, 108, 239,   0,   0, 217 };# ifdef YYDEBUG# include "y.debug"# 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 */yytabelem yyerrflag = 0;  /* error recovery flag */yyparse(){	yytabelem yys[YYMAXDEPTH];	int yyj, yym;	register YYSTYPE *yypvt;	register int yystate, yyn;	register yytabelem *yyps;	register YYSTYPE *yypv;	register yytabelem *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 >= 3)		if(yychar < 0 || yytoknames[yychar] == 0)			printf("char %d in %s", yychar, yystates[yystate]);		else			printf("%s in %s", yytoknames[yychar], yystates[yystate]);#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) {		yychar = yylex();#ifdef YYDEBUG		if(yydebug >= 2) {			if(yychar <= 0)				printf("lex EOF\n");			else if(yytoknames[yychar])				printf("lex %s\n", yytoknames[yychar]);			else				printf("lex (%c)\n", yychar);		}#endif		if(yychar < 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) {			yychar = yylex();#ifdef YYDEBUG			if(yydebug >= 2)				if(yychar < 0)					printf("lex EOF\n");				else					printf("lex %s\n", yytoknames[yychar]);#endif			if(yychar < 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 */#ifdef YYDEBUG			yyerror("syntax error\n%s", yystates[yystate]);			if(yytoknames[yychar])				yyerror("saw %s\n", yytoknames[yychar]);			else if(yychar >= ' ' && yychar < '\177')				yyerror("saw `%c'\n", yychar);			else if(yychar == 0)				yyerror("saw EOF\n");			else				yyerror("saw char 0%o\n", yychar);#else			yyerror( "syntax error" );#endifyyerrlab:			++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 ");				if(yytoknames[yychar])					printf("%s\n", yytoknames[yychar]);				else if(yychar >= ' ' && yychar < '\177')					printf("`%c'\n", yychar);				else if(yychar == 0)					printf("EOF\n");				else					printf("char 0%o\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) {	char *s;		printf("reduce %d in:\n\t", yyn);		for(s = yystates[yystate]; *s; s++) {			putchar(*s);			if(*s == '\n' && *(s+1))				putchar('\t');		}	}#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 218 "gram.in" */{/* stat:   is the nonterminal for Fortran statements */		  lastwasbranch = NO; } break;case 5:/* # line 224 "gram.in" */{ /* forbid further statement function definitions... */		  if (parstate == INDATA && laststfcn != thisstno)			parstate = INEXEC;		  thisstno++;		  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;			}		  freetemps();		} break;case 6:/* # line 244 "gram.in" */{ if (can_include)			doinclude( yypvt[-0].charpval );		  else {			fprintf(diagfile, "Cannot open file %s\n", yypvt[-0].charpval);			done(1);			}		} break;case 7:/* # line 252 "gram.in" */{ if (yypvt[-2].labval)			lastwasbranch = NO;		  endproc(); /* lastwasbranch = NO; -- set in endproc() */		} break;case 8:/* # line 257 "gram.in" */{ unclassifiable();/* flline flushes the current line, ignoring the rest of the text there */		  flline(); } break;case 9:/* # line 263 "gram.in" */{ flline();  needkwd = NO;  inioctl = NO;		  yyerrok; yyclearin; } break;case 10:/* # line 268 "gram.in" */{		if(yystno != 0)			{			yyval.labval = thislabel =  mklabel(yystno);			if( ! headerdone ) {				if (procclass == CLUNKNOWN)					procclass = CLMAIN;				puthead(CNULL, procclass);				}			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;				if(thislabel->labtype != LABFORMAT)					p1_label((long)(thislabel - labeltab));				}			}		else    yyval.labval = thislabel = NULL;		} break;case 11:/* # line 296 "gram.in" */{startproc(yypvt[-0].extval, CLMAIN); } break;case 12:/* # line 298 "gram.in" */{	warn("ignoring arguments to main program");			/* hashclear(); */			startproc(yypvt[-1].extval, CLMAIN); } break;case 13:/* # line 302 "gram.in" */{ if(yypvt[-0].extval) NO66("named BLOCKDATA");		  startproc(yypvt[-0].extval, CLBLOCK); } break;case 14:/* # line 305 "gram.in" */{ entrypt(CLPROC, TYSUBR, (ftnint) 0,  yypvt[-1].extval, yypvt[-0].chval); } break;case 15:/* # line 307 "gram.in" */{ entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yypvt[-1].extval, yypvt[-0].chval); } break;case 16:/* # line 309 "gram.in" */{ entrypt(CLPROC, yypvt[-4].ival, varleng, yypvt[-1].extval, yypvt[-0].chval); } break;case 17:

⌨️ 快捷键说明

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