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

📄 main.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
char *xxxvers[] = "\nFORTRAN 77 PASS 1, VERSION 1.21,  20 APRIL 1979\n";#include "defs"main(argc, argv)int argc;char **argv;{char *s;int k, retcode;FILEP opf();#define DONE(c)	{ retcode = c; goto finis; }--argc;++argv;while(argc>0 && argv[0][0]=='-')	{	for(s = argv[0]+1 ; *s ; ++s) switch(*s)		{		case 'w':			if(s[1]=='6' && s[2]=='6')				{				ftn66flag = YES;				s += 2;				}			else				nowarnflag = YES;			break;		case 'U':			shiftcase = NO;			break;		case 'u':			undeftype = YES;			break;		case 'O':			optimflag = YES;			if( isdigit(s[1]) )				{				k = *++s - '0';				if(k > MAXREGVAR)					{					warn1("-O%d: too many register variables", k);					maxregvar = MAXREGVAR;					}				else					maxregvar = k;				}			break;		case 'd':			debugflag = YES;			break;		case 'p':			profileflag = YES;			break;		case 'C':			checksubs = YES;			break;		case '1':			onetripflag = YES;			break;		case 'I':			if(*++s == '2')				tyint = TYSHORT;			else if(*s == '4')				{				shortsubs = NO;				tyint = TYLONG;				}			else if(*s == 's')				shortsubs = YES;			else				fatal1("invalid flag -I%c\n", *s);			tylogical = tyint;			break;		default:			fatal1("invalid flag %c\n", *s);		}	--argc;	++argv;	}if(argc != 4)	fatal1("arg count %d", argc);asmfile  = opf(argv[1]);initfile = opf(argv[2]);textfile = opf(argv[3]);initkey();if(inilex( copys(argv[0]) ))	DONE(1);fprintf(diagfile, "%s:\n", argv[0]);fileinit();procinit();if(k = yyparse())	{	fprintf(diagfile, "Bad parse, return code %d\n", k);	DONE(1);	}if(nerr > 0)	DONE(1);if(parstate != OUTSIDE)	{	warn("missing END statement");	endproc();	}doext();preven(ALIDOUBLE);prtail();#if FAMILY==SCJ	puteof();#endifDONE(0);finis:	done(retcode);	return(retcode);}done(k)int k;{static int recurs	= NO;if(recurs == NO)	{	recurs = YES;	clfiles();	}exit(k);}LOCAL FILEP opf(fn)char *fn;{FILEP fp;if( fp = fopen(fn, "w") )	return(fp);fatal1("cannot open intermediate file %s", fn);/* NOTREACHED */}LOCAL clfiles(){clf(&textfile);clf(&asmfile);clf(&initfile);}clf(p)FILEP *p;{if(p!=NULL && *p!=NULL && *p!=stdout)	{	if(ferror(*p))		fatal("writing error");	fclose(*p);	}*p = NULL;}

⌨️ 快捷键说明

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