资源简介

编译原理实验,目的把用户输入的代码转化成汇编语言的代码。一个简单的编译器的实现。主要采用算符优先的算法。开发环境VS2013,语言C++

在 BYYL.cpp中的读取文件路径中添加案例,如在a.txt中写上
program test
var a : real ;var b:bool ;
begin
while A<C and B<D do
if A=1 then C:=C+1
else while A<=D do A:=A*2;
B := A+C+D+(-2)
end

资源截图

代码片段和文件信息

// BYYL.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include 
#include  
#include  
#include “lastProduce.h“
using namespace std;

void printGens()
{
for (int i = 0; i < genStructs.size(); i++)
{
cout << genStructs[i].label << “:(“ << genStructs[i].op << ““ << genStructs[i].addr1 << ““ << genStructs[i].addr2 << ““ << genStructs[i].result << “)\n“;
}
}

int _tmain(int argc _TCHAR* argv[])
{

printReadtext(“F:/a.txt“);
flTable t;
printTokenResult2(); //输出token集
string Error;
bool b = t.Match(tokens Error);  //完成优先关系表,语法树,输出符号栈
if (!b) { cout << Error << endl; return 0; }
else cout << “规约成功“ << endl;
printGens(); //输出四元式
codeTable ct;
ct.printcodes();  //输出代码生成
system(“pause“);
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-21 18:03  BYYL\
     目录           0  2018-01-21 18:03  BYYL\BYYL\
     文件     8912896  2018-01-21 18:03  BYYL\BYYL.sdf
     文件         958  2018-01-21 18:03  BYYL\BYYL.sln
     文件       44032  2018-01-21 18:03  BYYL\BYYL.v12.suo
     文件         843  2018-01-21 16:00  BYYL\BYYL\BYYL.cpp
     文件        4914  2018-01-21 13:37  BYYL\BYYL\BYYL.vcxproj
     文件        2146  2018-01-21 13:37  BYYL\BYYL\BYYL.vcxproj.filters
     目录           0  2018-01-21 18:00  BYYL\BYYL\Debug\
     文件        6497  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.log
     文件     1845634  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.obj
     文件     1638400  2018-01-17 10:37  BYYL\BYYL\Debug\BYYL.pch
     目录           0  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\
     文件         188  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\BYYL.lastbuildstate
     文件        1566  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\cl.command.1.tlog
     文件        9332  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\CL.read.1.tlog
     文件        1366  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\CL.write.1.tlog
     文件        1460  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\link.command.1.tlog
     文件        2728  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\link.read.1.tlog
     文件         736  2018-01-21 18:00  BYYL\BYYL\Debug\BYYL.tlog\link.write.1.tlog
     文件       11306  2018-01-17 10:37  BYYL\BYYL\Debug\stdafx.obj
     文件      371712  2018-01-21 18:00  BYYL\BYYL\Debug\vc120.idb
     文件      692224  2018-01-21 18:00  BYYL\BYYL\Debug\vc120.pdb
     文件       12896  2018-01-20 19:39  BYYL\BYYL\Fristvt.h
     文件        3619  2018-01-21 18:03  BYYL\BYYL\GenStruct.h
     文件        6838  2018-01-21 17:11  BYYL\BYYL\lastProduce.h
     文件        3606  2018-01-19 16:33  BYYL\BYYL\prog.h
     文件        1489  2018-01-17 09:13  BYYL\BYYL\ReadMe.txt
     文件        1002  2018-01-21 16:16  BYYL\BYYL\register.h
     文件         210  2018-01-17 09:13  BYYL\BYYL\stdafx.cpp
     文件         234  2018-01-17 09:13  BYYL\BYYL\stdafx.h
............此处省略11个文件信息

评论

共有 条评论