资源简介
参照TINY语法分析器的实现,运用所学知识用C语言或者C++语言实现C-MINUS词法分析器,可输出token,再在词法分析的基础上实现C-MINUS语法分析器,可输出语法树。 本资源是运用自顶向下方法中的递归下降分析方法进行语法分析,是学习编译器理解编译器的重要方法,上传本资源帮助大家学习
代码片段和文件信息
#include “globals.h“
#include “scan.h“
#include “parse.h“
#include “util.h“
/* 声明全局变量 */
int lineno = 0;
FILE * source;
FILE * listing;
FILE * code;
/* 设置调试开关 */
int EchoSource = TRUE; //将C-MINUS源程序回显到带有行号的列表
int TraceScan = TRUE; //将扫描程序识别出token时,就显示出每个记号的信息
int TraceParse = TRUE; //将语法树以线性化格式显示
int Error = FALSE;
int main()
{
TreeNode * syntaxTree; //语法树
char inp[120]; /* 源代码文件名 */
char outp[120]; /* 输出编译结果文件名 */
memset(inp0120);
strcpy(inp “F://test2.txt“);
source = fopen(inp “r“);
memset(outp0120);
strcpy(outp “F://result2.txt“);
listing = fopen(outp “w“);
if (source == NULL)
{
fprintf(stderr “File %s not found\n“ inp);
exit(1);
}
// listing = stdout; /* 将结果输出至屏幕 */
fprintf(listing “COMPILATION: %s\n“ inp);
//SCAN
// while (getToken() != ENDFILE);
//PARSE
syntaxTree = parse();
if (TraceParse)
{
fprintf(listing “\nSyntax tree:\n“);
printTree(syntaxTree);
fprintf(listing “\nEnd of file!\n“);
}
fclose(source);
fclose(listing);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4737 2016-06-02 13:54 Compiler3.0\compiler2.dsp
文件 524 2016-04-05 13:55 Compiler3.0\compiler2.dsw
文件 82944 2016-06-02 15:41 Compiler3.0\compiler2.ncb
文件 49664 2016-06-02 15:41 Compiler3.0\compiler2.opt
文件 1360 2016-06-02 15:22 Compiler3.0\compiler2.plg
文件 2490368 2016-06-06 18:01 Compiler3.0\compiler2.sdf
文件 963 2016-04-05 19:46 Compiler3.0\compiler2.sln
..A..H. 7680 2016-06-02 13:46 Compiler3.0\compiler2.suo
..A..H. 40448 2016-06-06 18:01 Compiler3.0\compiler2.v12.suo
文件 6629 2016-05-25 12:19 Compiler3.0\compiler2.vcxproj
文件 1565 2016-05-25 12:19 Compiler3.0\compiler2.vcxproj.filters
文件 412672 2016-06-06 17:07 Compiler3.0\Debug\compiler2.bsc
文件 1145 2016-06-06 14:36 Compiler3.0\Debug\compiler2.Build.CppClean.log
文件 550912 2016-06-06 17:53 Compiler3.0\Debug\compiler2.exe
文件 1202660 2016-06-06 17:53 Compiler3.0\Debug\compiler2.ilk
文件 2686 2016-06-06 17:53 Compiler3.0\Debug\compiler2.log
文件 2485248 2016-06-06 17:53 Compiler3.0\Debug\compiler2.pdb
文件 520 2016-06-06 17:07 Compiler3.0\Debug\compiler2.tlog\BscMake.command.1.tlog
文件 552 2016-06-06 17:07 Compiler3.0\Debug\compiler2.tlog\bscmake.read.1.tlog
文件 400 2016-06-06 17:07 Compiler3.0\Debug\compiler2.tlog\bscmake.write.1.tlog
文件 2422 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\cl.command.1.tlog
文件 6430 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\CL.read.1.tlog
文件 2722 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\CL.write.1.tlog
文件 156 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\compiler2.lastbuildstate
文件 1310 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\li
文件 2732 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\li
文件 576 2016-06-06 17:53 Compiler3.0\Debug\compiler2.tlog\li
文件 8391 2016-06-06 17:53 Compiler3.0\Debug\main.obj
文件 169396 2016-06-06 17:53 Compiler3.0\Debug\main.sbr
文件 28534 2016-06-06 15:55 Compiler3.0\Debug\parse.obj
............此处省略23个文件信息
评论
共有 条评论