1 20 50 150 500
欢迎来到瑞博软件站,找素材,搜软件,就上瑞博软件站!
当前位置 >首页 >软件下载 >电脑软件 >编程开发

java词法分析器 绿色版

软件信息
  • 分类:编程开发
  • 大小:26KB
  • 语言: 中文
  • 环境: WinAll, Win7
  • 更新:2024-11-12
  • 评级:
  • 系统: Windows Linux Mac Ubuntu
  • 软件类别: 国产软件 / 免费软件 / 编程工具
  • 插件情况:
  • 相关链接: http://www.cr173.com

java词法分析器是由C语言编译而成,网搜了一下,发现描述java词法分析的还是很少,所以把自己写好的发这边来,让大家参考下。大家可以在我的基础上增加一些自己的代码,使其更加完善。需要注意的是,这些代码中有一些功能还未完善,大家可以自己研究研究。

词法分析器步骤

先写其正则式,然后NFA,然后DFA,然后对其进行优化,最后准备工作做好了,就可以开始写代码了。

主函数

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]='';
} //将一个字符添加到缓冲区
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);//这个函数实现对关键字进行判断

下载地址

热门软件

Top