📄 main.cpp
字号:
#include <stdio.h>
#include <iostream>
#include <stdarg.h>
#include "lex.h"
#include "parse.h"
using namespace std;
int errors = 0;
// 报告错误
void Error (char *format, ...) {
va_list args;
errors++;
printf ("Line %d: ", lineno);
va_start(args, format);
vfprintf(stdout, format, args);
va_end(args);
printf("\n");
}
// 显示错误的计数
void ErrorSummary () {
printf ("%d error(s) were found.\n", errors);
}
// 分析过程中发生错误时由分析器调用
// (分析错误或栈溢出)
void yyerror(char *msg) {
Error (msg);
}
// 该函数在文件结尾是被lexer调用
// 你可以用yyin重新定向到其他文件
// 成功, 返回 0.
extern "C" int yywrap(void) {
return 1;
}
// 主函数:报告所有的token序列
int main (int argc, char *argv[]) {
// 设置输入流
yyin = NULL;
if (argc == 2)
yyin = fopen (argv[1], "rt");
if (yyin == NULL)
yyin = stdin;
yyparse (); // 调用分析器
ErrorSummary ();
return errors ? 1 : 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -