WEB开发网
开发学院软件开发C++ 词法分析程序 阅读

词法分析程序

 2008-03-08 12:29:31 来源:WEB开发网   
核心提示:这个是我编译原理课程设计的 内容,呵呵 我遍的是词法分析,词法分析程序,基本的功能都能够实现,如词法分析,词法查错,删除无实质意义的字符等
这个是我编译原理课程设计的 内容,呵呵 我遍的是词法分析,基本的功能都能够实现,如词法分析,词法查错,删除无实质意义的字符等,不懂编译的就不用看了,编译真的很难!!!不过好象没什么用 #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]='

Tags:词法 分析 程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接