文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++词法分析程序
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
热点TOP10
·进程和线程编程
·C语言编程易犯毛病集合
·打字游戏
·Awk 基础入门:Awk 实例编程
·asp.net中调用javascript函数实现多功能日期控件示例
·C语言编程常见问题解答之常用函数的包含文件(1)
·C# GridView 排序及分页
·C #中的几个线程同步对象方法
·无废话C#设计模式之三:Abstract Factory
·C# DataGridView隔行显示不同的颜色

词法分析程序

日期:2008年6月17日 作者: 查看:[大字体 中字体 小字体]


这个是我编译原理课程设计的 内容,呵呵 我遍的是词法分析,基本的功能都能够实现,如词法分析,词法查错,删除无实质意义的字符等,不懂编译的就不用看了,编译真的很难!!!不过好象没什么用

#include<iostream.h>
#include<ctype.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>

#define ID 6   
#define INT 7
#define LT 8
#define LE 9
#define EQ 10
#define NE 11
#define GT 12
#define GE 13
#define FZ 14       
#define DEV 15

 

struct KeyWord        //关键字结构
{
 char *word;
 int id;
};

KeyWord keyword[]={    //关键字数组
 ,
 ,
 ,
 ,
 ,
 ,
 ,
 
};


char TOKEN[20];
int graphnum=1;     //记录错误所在的位置


int lookup(char *string);
void out(int id ,char *string);
void report_error(char ERR_CH);
bool isalpha(char c) ;
bool isdigit(char c);
bool isalnum(char c);
void scanner_example(FILE *fp);

 

int lookup(char *string)
{
 for(int i=0;i<sizeof(keyword)/sizeof(KeyWord);i++)
 {
  if(strcmp(string,keyword[i].word)==0)
   return keyword[i].id;
 }
 return 0;
}

void out(int id ,char *string)
{
 printf("(%d,%s) ",id,string);;
}

void report_error(char ERR_CH)        //错误处理程序
{
 printf("undeclared identifler %c int %d line! ",ERR_CH,graphnum);
}

bool isalpha(char c)  
{
 if( (c>='a'&&c<='z') (c>='A'&&c<='Z') )
  return true;
 else
  return false;
}

bool isdigit(char c)
{
 if(c>='0'&&c<='9')
  return true;
 else
  return false;
}

bool isalnum(char c)
{
 if( isalpha(c) isdigit(c) )
  return true;
 else
  return false;
}

void scanner_example(FILE *fp)
{
 char ch;
 int i,c;
 
 while(!feof(fp))
 {

 ch=fgetc(fp);
 if(isalpha(ch)) 
 {
  TOKEN[0]=ch;
  ch=fgetc(fp);
  i=1;
  while(isalnum(ch)) 
  
  TOKEN[i]='

(出处:清风网络学院


[1] 




上一篇:创世纪的C++ Builder--入门例子

下一篇:打字游戏

相关文章:
·一次入侵过程的公开分析
·添加或删除启动时自动运行的程序
·万能五笔2001注册码分析及暴力破解 上
·不用任何软件(木马程序)盗取账号密码
·性能分析工具的使用
·为Canon PIXMA iP1000喷墨打印机安装驱动程序
·Access使用宏控制程序
·网吧技术分析:不掉线的路由器
·卸载并不难!轻松卸载程序六技巧
·SQL Server企业管理器和查询分析器简介
相关软件:
·C语言程序设计
·Windows环境下32位汇编语言程序设计
·3D 动画与建模:人体的综合与分析技术
·零起点教你如何破解软件和制作注册机 and 视频+程序
·硅谷 C++程序设计视频教程 齐幼菊
·C语言程序设计视频教程 CSF 教材:谭浩强《c程序设计》
·热带鱼水族箱屏幕保护程序 V2.0 汉化版
·Matlab程序设计
·FLASH个人简历源程序(FLA)
·vb6程序员指南

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot