java编译词法分析器是一款非常实用的java编程辅助工具,主要功能为可帮助编程人员来进行JAVA的语言分析,可有效的节省时间提高编程效率,欢迎需要的朋友下载使用。
词法分析器步骤:
主函数
enum Token_Type {
keyword =1, //关键字
Identifier, //标识符
operatorr, //运算符
operatorrd, //单运算符
constant, //常量
escape, //转义符
separator, //界限符
notype, //没有类型
zhushi //注释类型
};
对其单词的类型定义成枚举。
typedef struct Token {
Token_Type type; //其类型
char *lexeme ; //字符串
int value; //属性值
}Token;
//返回单词的结构。
void InitScanner(char *ch){
fp1 = fopen(ch,"r+");
LineNo = 1;
}//初始化分析器。
void CloseScanner(){
fclose(fp1);
}//关闭分析器
void EmptyTokenString(){
memset(TokenBuffer,0,100);
}//清空缓冲区
static void AddCharTokenString(char Char)
{
int TokenLenth=strlen(TokenBuffer);
if(TokenLenth+1==sizeof(TokenBuffer)) return;
TokenBuffer[TokenLenth]=Char;
TokenBuffer[TokenLenth+1]='\0';
} //将一个字符添加到缓冲区
static char GetChar(){
char Char;
Char = fgetc(fp1);
return Char;
}//从文件中读取一个字符
static void BackChar(char Char) {
if(Char!=EOF){
ungetc(Char,fp1);
}
}//将其字符后退一个。
static Token JudgeKeyToken(char *IDstring);//这个函数实现对关键字进行判断
词法分析器步骤:
主函数
enum Token_Type {
keyword =1, //关键字
Identifier, //标识符
operatorr, //运算符
operatorrd, //单运算符
constant, //常量
escape, //转义符
separator, //界限符
notype, //没有类型
zhushi //注释类型
};
对其单词的类型定义成枚举。
typedef struct Token {
Token_Type type; //其类型
char *lexeme ; //字符串
int value; //属性值
}Token;
//返回单词的结构。
void InitScanner(char *ch){
fp1 = fopen(ch,"r+");
LineNo = 1;
}//初始化分析器。
void CloseScanner(){
fclose(fp1);
}//关闭分析器
void EmptyTokenString(){
memset(TokenBuffer,0,100);
}//清空缓冲区
static void AddCharTokenString(char Char)
{
int TokenLenth=strlen(TokenBuffer);
if(TokenLenth+1==sizeof(TokenBuffer)) return;
TokenBuffer[TokenLenth]=Char;
TokenBuffer[TokenLenth+1]='\0';
} //将一个字符添加到缓冲区
static char GetChar(){
char Char;
Char = fgetc(fp1);
return Char;
}//从文件中读取一个字符
static void BackChar(char Char) {
if(Char!=EOF){
ungetc(Char,fp1);
}
}//将其字符后退一个。
static Token JudgeKeyToken(char *IDstring);//这个函数实现对关键字进行判断
网站类容多为转载,如有侵权,请联系站长删除
上一个:perl开发工具 ActivePerl(Perl 执行工具) 5.22.3.2204 官方安装版(支持32位和64位) 下载-
下一个:Keil C51下载 Keil C51 V9.00 uVision4特别版 下载-