• 大小: 0.02M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


使用C++开发一个小型的C语言编译器,实现词法分析,语法分析,语法制导翻译,语义分析和中间代码生成。 数据结构都是使用的C++ STL,语法分析使用的LR(1)分析法。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#define rep(ian) for(int i=a;i#define per(ian) for(int i=n-1;i>=a;i--)
#define all(x) (x).begin()(x).end()
typedef pair> Production; //产生式
const int WIDTH = 16; //setw(WIDTH)
// head

struct Project { //项目集
string left;
vector right;
set expect;

const bool operator<(const Project &p) const {
if (left < p.left) return true;
if (left > p.left) return false;
if (right < p.right) return true;
if (right > p.right) return false;
if (expect < p.expect) return true;
return false;
}

const bool operator==(const Project &p) const {
if (left == p.left && right == p.right && expect == p.expect) return true;
return false;
}
};

namespace project { //产生项目集

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       48393  2018-06-17 00:06  Analysis.txt
     文件         259  2018-06-17 00:06  Code.txt
     文件        2751  2018-06-12 17:14  Grammar.txt
     文件       38178  2018-06-08 16:47  LR(1).txt
     文件      276448  2018-06-08 16:47  output.out
     文件         106  2018-06-16 23:17  Program.txt
     文件         188  2018-06-17 00:06  Token.txt
     文件       21996  2018-06-17 00:09  源.cpp

评论

共有 条评论