递归下降分析法的简单例子的c语言实现
来源:互联网 发布:小米手环数据清除 编辑:程序博客网 时间:2024/06/02 02:53
我们举的简单例子是
G[s]:
S→a |∧| (T)
T→T, S | S
转化为LL1文法
S →a |∧| (T)
T →ST'
T'→,ST'| ε
c语言代码实现
#include<stdio.h>char scaner(char*input,int* p);void S(char*input,int* p);void T(char*input,int* p);void T1(char*input,int* p);void error();int sym=0;int main(){ int p=0; char input[200]={0}; printf("请输入你要识别的单词\n"); printf("单词只能由 ( ) a ^ , 组成,且单词必须以$#结尾\n"); scanf("%[^#]s",input); printf("the word you input is : %s\n",input); sym=scaner(input,&p); S(input,&p); if(sym=='$') printf("sucess\n"); else printf("fail"); do { ; }while(1); return 0; }char scaner(char*input,int *p){ char temp=input[*p]; (*p)++; return temp; }void S(char*input,int* p){ if(sym=='a'||sym=='^') sym=scaner(input,p); else if(sym=='(') { sym=scaner(input,p); T(input,p); if(sym==')') sym=scaner(input,p); else error(); } return ; } void T(char*input,int* p) { S(input,p); T1(input,p); return ; } void T1(char*input,int* p) { if(sym==','){ sym=scaner(input,p); S(input,p); T1(input,p);} else if(sym!=')') error(); } void error() { printf("error!!!"); return ; }
- 递归下降分析法的简单例子的c语言实现
- 简单的递归下降分析
- 梯度下降法的C语言实现
- Java实现C语言语义分析(递归下降)
- C语言实现的简单通讯录例子
- 最速下降法的C语言实现
- [算法]简单的背包问题递归解法,C语言实现
- C语言实现简单的面向对象例子
- C语言实现简单的面向对象例子
- 汉诺塔递归的c语言实现(递归)
- 【龙书笔记】用Python实现一个简单数学表达式从中缀到后缀语法的翻译器(采用递归下降分析法)
- 递归下降分析法
- 递归下降分析法
- C语言:递归的简单介绍
- C语言 简单的递归算法
- 【C语言】用递归函数是实现函数功能的几个例子
- C语言调用lua的简单例子
- C语言实现随即梯度下降,批量梯度下降法
- geotools 使用 部分代码总结
- 80X86学习笔记--常用伪指令语句
- Eclipse与MyEclipse的联系和区别
- vc++中的cdc类
- 深入浅出分析C#接口的作用
- 递归下降分析法的简单例子的c语言实现
- 数组计算
- Transmitters
- 传说中的Java烟花程序
- hdu1242-搜索小练
- Ackerman函数
- 用 JAVA 开发游戏连连看
- oracle归档日志管理
- 选择排序算法