资源简介
LR(0)完整的语法分析方法(拓广文法、识别活前缀状态机、LR0表、识别字符串)内有word详细说明

代码片段和文件信息
// ConsoleApplication14.cpp : 此文件包含 “main“ 函数。程序执行将在此处开始并结束。
//
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
set N_;
set T_;
set ALL_;
stack s;
struct pragram
{
string left;
string right;
}pragram[200];
struct all
{
string left;
vector right;
}all[20];
int ncount1=1;
int showVet(vector a)
{
for(int i=0;i {
cout< }
cout< }
int input() //拆解表达式
{
freopen(“input.txt““r“stdin); //可以选择文件 1(PPT109页面) 121(PPT121页面) 118(PPT118页面)
cin >> n;
for (int i = 0; i < n; i++)
{
string left;
cin >> left;
char c;
int t=-1;
while (1)
{
scanf(“%c“&c);
if(t==-1) {t++;continue;}
if (c == ‘#‘) break;
if(c==‘|‘)
{
count1++;
t=0;
pragram[count1].left = left;
continue;
}
pragram[count1].left = left;
pragram[count1].right = pragram[count1].right+c;
t++;
}
count1++;
}
cout< cout<<“拓广文法后:“< string a=pragram[1].left; //拿到第一条表达式左部
a=a+“‘“;
pragram[0].left=a;
pragram[0].right=pragram[1].left;
for (int i =0;i< count1; i++)
{
cout << pragram[i].left<<“->“;
cout< ALL_.insert(pragram[i].left);
ALL_.insert(pragram[i].right);
}
cout< }
int N() //挑出非终极符号
{
cout<<“非终极符号“< for(int i=0;i {
string P=pragram[i].left;
N_.insert(P);
}
set::iterator it;
for(it=N_.begin();it!=N_.end();it++)
{
cout<<*it< }
}
int split() //分离所有符号
{
string bc;
set::iterator itit_Nit1;
for(it=ALL_.begin();it!=ALL_.end();)
{
int check=0;
string a=*it;
int t=a.find(“ “); //空格拆分
if(t!=-1)
{
b=a.substr(0t);
c=a.substr(t+1a.length());
check=1;
}
if(check==1)
{
ALL_.erase(it);
ALL_.insert(b);
ALL_.insert(c);
it=ALL_.begin();
}
else
{
++it;
}
}
}
int T() //挑选终极符号
{
set::iterator itit_Nit1;
for(it=T_.begin();it!=T_.end();)
{
int check=0;
string a=*it; //拿到字符
for(it_N=N_.begin();it_N!=N_.end();it_N++)
{
string b=*it_N;
if(a==b)
{ check=1;
break;
}
}
if(check==1)
{
T_.erase(it++);
}
else{
it++;
}
}
cout<<“终极符号“< for(it1=T_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-01-07 16:11 LR0分析表\
文件 54658 2019-01-07 15:47 LR0分析表\LR0表.jpg
文件 60 2019-01-07 15:52 LR0分析表\input.txt
文件 17987 2019-01-07 16:09 LR0分析表\main.cpp
文件 1151997 2019-01-07 16:09 LR0分析表\main.exe
文件 135860 2019-01-07 16:09 LR0分析表\main.o
文件 426088 2019-01-07 16:10 LR0分析表\reader_me.docx
文件 119091 2019-01-07 16:01 LR0分析表\活前缀自动机图.jpg
文件 56668 2019-01-07 15:47 LR0分析表\进程图.jpg
- 上一篇:基于STM32的锂电池组并行充电系统的设计
- 下一篇:ansys导线找形命令流
相关资源
- 一个labview仿真的函数信号发生器.vi
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 编译原理课程设计:词法语法编译器
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- 《编译原理》清华大学版中的pl0扩充
- PL/0功能扩充break功能
- LR0分析LR0分析LR0分析LR0分析LR0分析
- 编译原理LR(0)语法分析
- 编译原理中间代码生成程序
- 编译原理:LR分析程序
- 编译原理实验:词法分析,语法分析
- 吉林大学编译原理课件
- 编译原理龙书答案
- 编译原理 第三章课后习题答案
- 易语言变量和数组的编译原理
- 编译原理语法分析器、词法分析器
- 山东大学编译原理PL/0语言 compiler实验
- FOR循环语句的翻译程序设计简单优先
- NFA的确定化NFA->DFA完整可运行代码
- 哈工大威海编译原理实验报告和源代
- 哈工大威海-编译原理实验报告和源码
- 编译原理课设c编译器
- 赋值语句翻译四元式
- 河北工业大学编译原理实验代码及实
- VHDL简易交通灯设计 quartus 2
- 编译原理课程设计 while do循环语句翻
- 编译原理课程设计do——while简单优先
- 南开大学编译原理课件及作业
评论
共有 条评论