资源简介
编译原理课程设计,包含源代码,词法分析,语法分析,LR0,LLI
代码片段和文件信息
#include
#include
#define N 80
//定义关键字
char word[32][10]={“auto““short““int““long““float““double““char““struct““union““enum““typedef““const““unsigned““signed““extern““register““static““volatile““void““if““else““switch““case““for““do““while““goto““continue““break““default““sizeof““return“};
void Analyse(char a[]);
void main()
{
int i;
char a[N];
printf(“请输入源程序:(以$结束)\n“);
for(i=0;i {
scanf(“%c“&a[i]);
if(a[i]==‘$‘)
break;
}
a[i+1]=‘\0‘;
i=0;
printf(“词法分析结果为:\n“);
Analyse(a);
}
void Analyse(char a[])
{
int i=0j=0n=0m=0temp=0;
char b[N];
while(a[i]!=‘$‘)
{
if(a[i]>=65&&a[i]<=122)//a-z A-Z [ ] \ ^ _ ‘
{
j=0; //0-9 95
while((a[i]>=65 && a[i]<=122)||(a[i]>=‘0‘ && a[i]<=‘9‘)||a[i]==‘_‘)
{
b[j]=a[i];
j++;
i++;
}
i--;
b[j]=‘\0‘;
for(n=0;n<32;n++) //判断关键字
{
if(strcmp(bword[n])==0)
{
printf(“<关键字%d“n+1);
while(word[n][m]!=‘\0‘)
{
printf(“%c“word[n][m]);
m++;
}
printf(“>\n“);
temp=1;
}
} //标识符
if(temp==0)
printf(“<标识符10%s >\n“b);
}
else
{
switch(a[i])//符号
{
case ‘#‘: printf(“<0$>\n“);
case ‘+‘: printf(“<运算符13+ >\n“);break;
case ‘-‘: printf(“<运算符14- >\n“);break;
case ‘*‘: printf(“<运算符15* >\n“);break;
case ‘/‘: printf(“<运算符16/ >\n“);break;
case ‘:‘:
if(a[i+1]==‘=‘)
{
printf(“<运算符18:= >\n“); //a : = 3
i++;
}
//else printf(“<界符17:>\n“); // 冒号作为界符
break;
case ‘<‘:
if(a[i+1]==‘=‘)
{
printf(“<运算符21<= >\n“);// <=运算符
i++;
}
else if(a[i+1]==‘>‘) // <> 相当于 !=
{
printf(“<运算符22<> >\n“);
i++;
}
else printf(“<界符20< >\n“); //界符 <
break;
case ‘>‘:
if(a[i+1]==‘=‘)
{
printf(“<运算符24>= >\n“); // >= 运算符
i++;
}
else printf(“<界符23> >\n“); // > 界符
break;
case ‘=‘: printf(“<25=>\n“);break;
case ‘;‘: printf(“<界符26; >\n“);break;
case ‘(‘: printf(“<界符27( >\n“);break;
case ‘)‘: printf(“<界符28) >\n“);break;
case ‘{‘: printf(“<界符29{ >\n“);break;
case ‘}‘: printf(“<界符30} >\n“);break;
case‘ ‘: break;
case‘\n‘: break;
default:
if(a[i]>=‘0‘&&a[i]<=‘9‘)
printf(“<数字%c >\n“a[i]);
else
printf(“‘%c‘输入错误!\n“a[i]);
break;
}
}
i++;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-12 09:50 编译课设\
文件 35047 2019-06-26 15:50 编译课设\first.jpg
文件 29031 2019-06-26 16:00 编译课设\follow.jpg
目录 0 2019-06-27 11:28 编译课设\源码\
目录 0 2019-06-27 11:24 编译课设\源码\LR0\
文件 5297 2019-06-27 10:16 编译课设\源码\LR0\Analyze.java
文件 464 2019-06-27 10:11 编译课设\源码\LR0\Item.java
文件 5996 2019-06-27 10:17 编译课设\源码\LR0\LR0.java
文件 29 2019-06-27 09:55 编译课设\源码\LR0\grammer.txt
文件 2699 2019-06-27 09:16 编译课设\源码\cifa.cpp
目录 0 2019-06-27 09:14 编译课设\源码\ll1\
文件 2024 2019-04-18 11:43 编译课设\源码\ll1\EventListener.class
文件 10248 2019-04-18 11:43 编译课设\源码\ll1\GetInfor.class
文件 13512 2019-04-18 11:43 编译课设\源码\ll1\GetInfor.java
文件 1985 2019-04-18 11:43 编译课设\源码\ll1\LL1Analyse.class
文件 2747 2019-04-18 11:43 编译课设\源码\ll1\LL1Analyse.java
目录 0 2019-06-27 09:14 编译课设\源码\ll1\demo\
文件 13541 2019-04-18 11:42 编译课设\源码\ll1\demo\GetInfor.java
文件 63 2017-03-02 09:41 编译课设\源码\ll1\grammar.txt
文件 2699 2019-04-04 10:29 编译课设\源码\词法分析.txt
文件 330803 2019-07-12 09:48 编译课设\编译原理报告.docx
文件 56320 2019-06-26 15:04 编译课设\词法分析流程图.vsd
- 上一篇:基于DS18B20设计温度报警器
- 下一篇:gps地图匹配算法
相关资源
- 简易编译器,实现词法分析,语法分
- tiny词法分析,语法分析,语义分析,
- 编译原理 算符优先分析程序
- 编译原理-非递归预测实验-C代码实现
- 编译原理实验
- 编译原理自顶向下语法分析源代码+实
- 编译原理布尔表达式计算器
- LR语法分析器
- 编译原理语法制导翻译器 课程设计
- 编译原理——语法分析器
- 一个简单的赋值语句语法分析可以运
- 编译原理实验指导书
- 第四次上机—自下而上的语法分析
- 编译原理预测分析法语法分析程序
- 编译课程设计算数表达式转换成四元
- 广东工业大学编译原理试卷
- 编译原理词法分析器实验从文件读入
- 编译原理将简单程序翻译成四元式
- LALR1语法分析生成器
- 项目集规范族
- 《编译原理》实验 识别无符号数的词
- 编译原理语法分析器实验报告.doc版
- 在语法分析器的基础上构造的三地址
- 北方工业大学语法分析器 (1)完整实
- 编译原理实验词法,语法,语义
- 编译原理语法分析实验代码
- 编译原理三上机实验报告
- 预测分析表构造算法的程序实现
- 自顶向下语法分析器。。。。。。。
- C_minus语言词法分析器
评论
共有 条评论