资源简介
只限定为字母,可对文法做等价压缩变换
Superwhite (深白色) qq:411373639
代码片段和文件信息
//////////shenbaie/////////////08.09.22///////////////
#include “iostream.h“
#include “stdio.h“
#include “string.h“
#define max 255
//********************************************
struct law{
char ll;
char lr[max];
int del;
int fl;
int fr;
}law[max];
int ijkh;
int static m;
int count f;
int static num1num2num_vnnum_vt;
char cvn[max]cvt[max];
//*******************************************
bool isUp(char ch) //判断一个字符
{
return (ch>=‘A‘ && ch<=‘Z‘);
}
bool isLow(char ch)
{
return (ch>=‘a‘ && ch<=‘z‘);
}
bool IsDigit(char ch)
{
return(ch>=‘0‘&&ch<=‘9‘);
}
//**************************************************
void input() // 输入规则并得到终结非终结符个数
{
num1=0; num2=0;
cout<<“输入规则个数:“; cin>>f; count=f;
for(i=0;i {
j=0;
cin>>law[i].ll; cout<<“::=“;
cin>>law[i].lr; cout< law[i].fl=0; law[i].fr=0; law[i].del=0; //初始化
cvn[num1]=law[i].ll; num1++; //cvn
while(law[i].lr[j]!=‘\0‘)
{
cvt[num2]=law[i].lr[j]; //cvt
j++; num2++;
}
}
num_vn=num1; num_vt=num2;
for(i=0;i {
for(j=i+1;j {
if(cvn[i]==cvn[j])
num_vn--;
if(isLow(cvn[i]))
num_vn--;
}
}
//********************test*************
cout<<“左边:“;
for(i=0;i cout< cout<
for(i=0;i {
if(isUp(cvt[i])) // 大写-1
num_vt--;
for(j=i+1;j {
if(cvt[i]==cvt[j])
num_vt--;
}
}
//***********test****************
cout<<“右边:“;
for(i=0;i cout< cout<
cout<<“你输入的规则中--非终结符:“< }
//*****************************************
void Rule1()
{
int over=0;
law[0].fl=1;
for(i=0;i {
if(strlen(law[i].lr)==1 && isUp
相关资源
- 编译原理三级项目pl0扩展
- 编译原理课后练习习题
- 编译原理考点,编译原理考点整理。
- 2018燕山大学软件工程编译原理
- R语言 关联规则 apriori算法
- 编译原理实验-计算器-完成品
- 聚类做预处理,基于关联规则推荐算
- cocos creator 不规则形状按钮
- 编译原理实验 C0编译器的 设计与实现
- 编译原理陈火旺第三版课后练习答案
- 北邮编译原理课程设计
- 西农编译原理实习报告
- 广工2015编译原理实验报告
- 从正则文法构造有穷状态自动机实验
- DXC采集规则
- 543个thor规则.f4thor
- sstap全局代理规则.rar
- 程序设计语言编译原理第三版-成火旺
- 华中科技大学编译原理实验yacc源码
- 编译原理识别活缀的DFA
- ABAQUS子程序UMAT&VUMAT编写规则
- 24位AD转换器CS5532应用规则
- 编译原理实验 计算器 语法树 逆波兰
- FOR循环语句的翻译LR,输出三地址
- 编译原理实验指导含源代码
- -优酷采集规则.rar
- 编译原理实验报告完整版词法语法语
- 编译原理及实现课后答案
- 《编译原理第二版》龙书部分习题答
- 中秋博饼规则纯js+css
评论
共有 条评论