没有合适的资源?快使用搜索试试~ 我知道了~
词法分析器设计与实现代码
5星 · 超过95%的资源 需积分: 20 72 下载量 96 浏览量
2009-05-21
18:48:08
上传
评论 2
收藏 4KB TXT 举报
温馨提示
试读
8页
实验内容 设计及实现C语言程序的词法分析器。 实验要求 对任给的一个C语言源程序,能够进行预处理虑掉空格、回车换行符、tab键及注释。一行结束应配上一个特殊字符,标识一个单词结束。 识别各类单词符号,如关键字、标识符、运算符、常数、界符,结果以二元式形式输出。并构造符号表。 输出有词法错误的单词及所在行号。
资源推荐
资源详情
资源评论
#include <iostream>
#include<string>
using namespace std; //VC命名空间
#define MAX 22
char ch =' ';
string key[15]={"begin","end","if","then","else","while","int","float", "char","char","until"};
int Iskey(string c){ //关键字判断
int i;
for(i=0;i<MAX;i++) {
if(key[i].compare(c)==0) return 1;
}
return 0;
}
int IsLetter(char c) { //判断是否为字母
if(((c<='z')&&(c>='a'))||((c<='Z')&&(c>='A'))) return 1;
#include<string>
using namespace std; //VC命名空间
#define MAX 22
char ch =' ';
string key[15]={"begin","end","if","then","else","while","int","float", "char","char","until"};
int Iskey(string c){ //关键字判断
int i;
for(i=0;i<MAX;i++) {
if(key[i].compare(c)==0) return 1;
}
return 0;
}
int IsLetter(char c) { //判断是否为字母
if(((c<='z')&&(c>='a'))||((c<='Z')&&(c>='A'))) return 1;
else return 0;
}
int IsDigit(char c){ //判断是否为数字
if(c>='0'&&c<='9') return 1;
else return 0;
}
void analyse(FILE *fpin){ //定义文件指针
string arr="";
while((ch=fgetc(fpin))!=EOF) { //EOF:文件的结尾
arr="";
if(ch==' '||ch=='\t'||ch=='\n'){}
else if(IsLetter(ch)){
while(IsLetter(ch)||IsDigit(ch)) {
if((ch<='Z')&&(ch>='A')) ch=ch+32;
}
int IsDigit(char c){ //判断是否为数字
if(c>='0'&&c<='9') return 1;
else return 0;
}
void analyse(FILE *fpin){ //定义文件指针
string arr="";
while((ch=fgetc(fpin))!=EOF) { //EOF:文件的结尾
arr="";
if(ch==' '||ch=='\t'||ch=='\n'){}
else if(IsLetter(ch)){
while(IsLetter(ch)||IsDigit(ch)) {
if((ch<='Z')&&(ch>='A')) ch=ch+32;
剩余7页未读,继续阅读
资源评论
- 飘落影2011-11-14里面只有代码部分,要是能加上状态分析图就更好了
- ningjianbin2014-05-17里面只有代码部分,要是能加上状态分析图就更好了,学习了 好像有点错误 不过自己改改没有问题
- mcgrdaddt2012-05-01里面只有代码部分,要是能加上状态分析图就更好了,学习了
- 肖简陌2014-05-23还可以吧 借鉴一下
xu19870617
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功