编译原理
文章平均质量分 81
shl_shl
大连理工大学软件学院
展开
-
SLR文法代码
#include #include #includeusing namespace std;/*E->E+TE->TT->T*FT->FF->(E)F->id*//*初始化分析表*/void Initial(string analysis[12][9]){ /*移进规约*/ analysis[0][0] = "s5"; analysis[0][3] = "s4"; a原创 2016-11-28 20:56:54 · 1698 阅读 · 0 评论 -
LL(1)文法代码(有一定的纠错能力)
#include #include #include using namespace std;/*产生式为:E -> TE`E` -> + TE`T -> FT`T` -> *FT`T` -> εF -> (E)F -> a*/stack s;/*给终结符编号*/int GetNumofTerminal(char ter){ if (ter == 'a'){ re原创 2016-11-28 20:51:02 · 1484 阅读 · 0 评论 -
Lex-构造语法分析器(VS2013)
编写一个词法分析器,它针对输入文件,实现以下功能: 1)每遇到dlut,就输出“大工软院”,对于其他的串原样输出。 2)统计输入文件中字母的数目。//flex.exe和libfl.lib都是老师提供的步骤一:创建.l文件1)打开记事本,写如下代码,然后重命名改成.l文件步骤二:生成lex.yy.c把刚写的.l文件和flex.exe放在一个原创 2016-12-01 16:12:40 · 4644 阅读 · 3 评论 -
基于SLR文法,将输入串翻译成三地址代码序列
要求:输入:(b+c*d)+c*d输出:t1= c*dt2=b+t1t3= c*dt4=t2+t3本次的题目和之前的功能很类似,都是基于SLR文法的,所有代码与之前有很多共同之处。#include #include #includeusing namespace std;/*E->E+TE->TT->T*FT->FF->(E)F->id*//原创 2016-12-21 21:44:36 · 3770 阅读 · 1 评论 -
以S属性的语法制导定义为基础,实现语法制导的翻译过程
要求:1.以S属性的语法制导定义为基础,将下表的语义规则嵌套在语法分析的过程中,即实现语法制导的翻译过程。产 生 式 语 义 规 则 L -> En print (E.val) E-> E1+ T E.val :=E1.val +T.val原创 2016-12-09 10:35:24 · 3998 阅读 · 1 评论