资源简介

代码片段和文件信息
#include
using namespace std;
const int maxn = 1002;
const int n_key = 41;
const int n_oper = 21;
char c;
string key_word[n_key] = {“auto“ “enum“ “restrict“ “unsigned“ “break“
“extern“ “return“ “void“ “case“ “float“
“short“ “volatile“ “char“ “for“ “signed“
“while“ “const“ “goto“ “sizeof“ “_Bool“
“continue“ “if“ “static“ “_Complex“ “default“
“inline“ “struct“ “_Imaginary“ “do“ “int“
“switch“ “double“ “long“ “typedef“ “else“
“register“ “union“ “scanf“ “printf“ “cin“
“cout“
};
string oper[] = {“+“ “-“ “*“ “/“ “^“
“<“ “>“ “++“ “--“ “==“
“*=“ “/=“ “>=“ “<=“ “<<“
“>>“ “>>=“ “<<=“ “%“ “&“
“^“
};
char bound[] = {‘‘ ‘;‘ ‘(‘ ‘)‘ ‘[‘ ‘]‘ ‘{‘ ‘}‘};
struct Word{ //词结构体
int id;
string value;
};
struct Num{
int id;
int vi;
double vd;
};
Num n[maxn]; //数字
Word w[maxn]; //词
map m; //标识符
int f = 0 ff = 0;
//语法分析
typedef pair P;
map pre_list;
typedef set Sets;
map first follow wenfa select; //first follow
Sets Term Nterm; //终极符,非终极符
string Start;
typedef struct node{
string value;
string type;
int number;
}pro;
vector watest;
//translation翻译
//词法分析
bool is_oper(string s){
for(int i=0; i return false;
}
bool is_bound(char c){
for(int i=0; i return false;
}
bool is_key(string s){
for(int i=0; i return false;
}
int stoi(string s){ //get int
int ans = 0;
for(int i=0; i return ans;
}
double stof(string s){ //get double
long long ans = 0;
int fd = -1 fe = -1;
for(int i=0; i if(s[i] == ‘.‘){
fd = i;
continue;
}
if(s[i] == ‘e‘){
fe = i;
continue;
}
ans = ans * 10 + s[i] - ‘0‘;
}
if(fd != -1 && fe == -1) return double(ans)/(pow(10 s.size() - fd - 1));
else if(fd == -1 && fe != -1){
long long temp = ans % (long long)pow(10 s.size() - fe - 1); //得到e后的数字
ans /= pow(10 s.size() - fe - 1); //得到e前的数字
return double(ans*pow(10 temp));
}
else{
long long temp = ans % (long long)pow(10 s.size() - fe - 1); //得到e后的数字
cout< ans /= pow(10 s.size() - fe - 1);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-07-29 15:44 编译器\
文件 1617 2015-06-25 19:21 编译器\grammar.txt
文件 193 2015-06-25 15:36 编译器\programe.txt
文件 34619 2015-07-02 10:16 编译器\word_grammar_translation.cpp
相关资源
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 编译原理课程设计:词法语法编译器
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- 《编译原理》清华大学版中的pl0扩充
- PL/0功能扩充break功能
- 编译原理LR(0)语法分析
- 编译原理中间代码生成程序
- 编译原理:LR分析程序
- 编译原理实验:词法分析,语法分析
- 吉林大学编译原理课件
- 编译原理龙书答案
- 编译原理 第三章课后习题答案
- 易语言变量和数组的编译原理
- 编译原理语法分析器、词法分析器
- 山东大学编译原理PL/0语言 compiler实验
- FOR循环语句的翻译程序设计简单优先
- NFA的确定化NFA->DFA完整可运行代码
- 哈工大威海编译原理实验报告和源代
- 哈工大威海-编译原理实验报告和源码
- 编译原理课设c编译器
- 赋值语句翻译四元式
- 河北工业大学编译原理实验代码及实
- 编译原理课程设计 while do循环语句翻
- 编译原理课程设计do——while简单优先
- 南开大学编译原理课件及作业
- 华工往年编译原理试卷
- 编译原理课程设计for循环LR法三元式
- 哈工程-编译原理课程设计(2016级)
评论
共有 条评论