• 大小: 1.27MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-08-28
  • 语言: C/C++
  • 标签: C-Minus;  

资源简介

参照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\link.command.1.tlog

     文件       2732  2016-06-06 17:53  Compiler3.0\Debug\compiler2.tlog\link.read.1.tlog

     文件        576  2016-06-06 17:53  Compiler3.0\Debug\compiler2.tlog\link.write.1.tlog

     文件       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个文件信息

评论

共有 条评论

相关资源