Beispiel #1
0
int
main(int argc, char **argv)
{
	Tokenrow tr;
	time_t t;
	STATIC char ebuf[BUFSIZ];

#if defined(__GNO__) && defined(__STACK_CHECK__)
	atexit(printStack);
#endif
	setbuf(stderr, ebuf);
	t = time(NULL);
	curtime = ctime(&t);
	maketokenrow(3, &tr);
	expandlex();
	setup(argc, argv);
	fixlex();
	iniths();
	genline();
	process(&tr);
	flushout();
	fflush(stderr);
	exit(nerrs > 0);
	return 0;
}
Beispiel #2
0
int main(int argc, char **argv) {
	Tokenrow tr;			/* token row */
	time_t t;				/* 保存当前时间的整数值 */
	char ebuf[BUFSIZ];		/* stderr buffer(stderr默认是没有buffer的,我们为其建立一个buffer) */

	setbuf(stderr, ebuf);	/* 设定标准错误的输出缓冲区为ebuf */
	t = time(NULL);			/* 获得当前时间的整数值 */
	curtime = ctime(&t);	/* 获得当前时间的字串值(例如: Sat Jul  4 12:27:13 2003)保存到全局变量curtime中 */
	maketokenrow(3, &tr);	/* 建立一个 token row(默认分配3个Token结构) */
	expandlex();			/* 展开状态机 */
	setup(argc, argv);		/* 建立关键字hash表;处理命令行选项参数;将输入源文件压栈 */
	fixlex();				/* 适时的关闭兼容C++单行注释兼容特性 */
	iniths();				/* 初始化hideset,TODO: 啥是hideset? */
	genline();				/* 产生一个行控制(line control)信息 */
	process(&tr);			/* 开始处理源程序 */
	flushout();				/* flush output buffer to stdout */
	fflush(stderr);			/* flush stderr buffer */
	exit(nerrs > 0);		/* 退出进程 */
	return 0;
}
Beispiel #3
0
int main(int argc, char **argv)
{
    Tokenrow tr;
    time_t t;
    char ebuf[BUFSIZ];

    setbuf(stderr, ebuf);
    t = time(NULL);
    curtime = ctime(&t);
    maketokenrow(3, &tr);
    expandlex();
    setup(argc, argv);
    fixlex();
    iniths();
    genline();
    process(&tr);
    flushout();
    fflush(stderr);
    exit(nerrs > 0);
    return 0;
}