资源简介
这是一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。利用C语言编制递归下降分析程序,并对简单语言进行语法分析。
代码片段和文件信息
#include “wordscan.h“
//char prog[80];
//int synpmnkksum=0;
//char ch;
void lrparser();
void yucu();
void statement();
void expression();
void term();
void factor();
int kk=0;
void lrparser() {
if (syn==1) { //begin
scaner();
yucu();
if (syn==6) { //end
scaner();
if (syn==0 && kk==0) printf(“success \n“);
} else {
if(kk!=1) printf(“errorlose ‘end‘ ! \n“);
kk=1;
}
} else {
printf(“errorlose ‘begin‘ ! \n“);
kk=1;
}
return;
}
void yucu() {
statement();
while(syn==26) {
scaner();
statement();
}
return;
}
void statement() {
if (syn==10) { //为标识符
scaner();
if (syn==18) { //为 :=
scaner();
expression();
} else {
printf(“error!“);
kk=1;
}
} else {
printf(“error!“);
kk=1;
}
return;
}
void expression() {
term();
while(syn==13 || syn==14) {
scaner();
term();
}
return;
}
void term() {
factor();
while(syn==15 || syn==16) {
scaner();
factor();
}
return;
}
void factor() {
if(syn==10 || syn==11)scaner(); //为标识符或整常数时,读下一个单词符号
else if(syn==27) {
scaner();
expression();
if(syn==28)scaner();
else {
printf(“ ‘)‘ 错误\n“);
kk=1;
}
} else {
printf(“表达式错误\n“);
kk=1;
}
return;
}
void main() {
p=0;int i;
printf(“********************语法分析程序***************\n“);
printf(“请输入源程序:\n“);
do {
scanf(“%c“&ch);
prog[p++]=ch;
} while(ch!=‘#‘);
p=0;
scaner();
lrparser();
printf(“语法分析结束!\n“);
getch();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1601 2017-12-25 22:23 main.c
文件 1915 2017-12-23 15:24 wordscan.h
文件 13973 2018-01-03 09:28 编译原理_递归下降分析语法分析_C语言版.docx
相关资源
- 北邮-编译原理-词法分析
- 现代编译原理-C语言描述
- 编译原理实验报告+代码+使用说明
- 编译原理课程设计-C语言子集编译器
- 赋值语句翻译c语言实现四元式
- 编译原理用C++消除左递归
- 编译原理简易C编译器
- 实现语法分析器-编译原理
- 编译原理 LR分析器 c++代码
- 设计并实现TINYC语言的扫描程序TINYC
- LL(1)文法分析全过程(FIRST/FLLOW/S
- 编译原理 LR0项目集规范族的构造 L
- 山东大学编译原理实验源代码c++版
- 简单函数绘图语言的解释器
- Lex和Yacc从入门到精通.pdf
- 简易词法分析器——基于C语言
- LL(1)文法的实现-mfc-编译原理学习
- 词法分析代码内有报告
- 编译原理LL1文法的mfc实现含消除左递
- 编译原理词法分析实验
- pl/0语言的编译器
- C++实现编译原理自动机、LL1文法、及
- 编译原理语义分析程序 c++实现
- 编译原理 课程设计 DAG 报告+源码C++版
- 编译原理课程设计----语法分析器(
- 编译原理简单的编译器源码
- C语言实现一个编译器-编译原理南开大
- 编译原理课程实验报告词法分析器及
- 编译原理与技术李文生:LR分析法C+
- C语言简化编译器前端 编译原理 LR1
评论
共有 条评论