资源简介
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导线找形命令流
相关资源
- OUC编译原理全部实验
- 编译原理上机源代码LR语法分析器
- 编译原理LR0分析代码完整
- 哈工大编译原理实验三语义分析实验
- 编译原理实验报告,词法分析,语法
- 算符优先分析程序的设计可趁设计
- 山东大学编译原理实验
- LR0分析器
- 编译原理语法分析实验报告
- 编译原理-语法分析-LL1
- 编译原理优先算法代码,及详细实验
- 编译原理 课后习题答案 陈意云 张昱
- 基于vhdl的串行发送器,状态机编写
- 编译原理语法树的实现
- 论文研究-基于Verilog HDL的有限状态机
- 基于FPGA的VGA时序彩条信号设计实现
- 编译原理实验MiniPascal编译器设计 Fl
- 子集构造法NFA的确定化
- 程序设计语言 编译原理 第三版 国防
- 编译原理First集Follow集求解
- 用有限状态机思想实现矩阵按键扫描
- 云南大学软件学院编译原理实验1-5
- 山东科技大学编译原理课程设计
- 编译原理 实现TINY+编译器 课程实验报
- 广工编译原理历年真题及答案
- seu编译原理课程设计
- 符号表设计与实现
- 2014-20152编译原理-期末B卷.docx
- 时间片轮询与状态机
- NFA确定化与DFA最小化
评论
共有 条评论