java詞法分析器
綠色版- 軟件大小:25 KB
- 更新日期:2014-11-27
- 軟件語(yǔ)言:簡(jiǎn)體中文
- 軟件類別:編程工具
- 軟件授權(quán):綠化版
- 軟件官網(wǎng):未知
- 適用平臺(tái):WinXP, Win7, WinAll
- 軟件廠商:
軟件介紹人氣軟件相關(guān)文章網(wǎng)友評(píng)論下載地址
java詞法分析器是一款基于C語(yǔ)言編譯制作,專門用于JAVA語(yǔ)言分析,需要注意的是,這些代碼中有一些功能還未完善,大家可以自己研究研究。
詞法分析器步驟
先寫其正則式,然后NFA,然后DFA,然后對(duì)其進(jìn)行優(yōu)化,最后準(zhǔn)備工作做好了,就可以開始寫代碼了。
主函數(shù)
enum Token_Type {
keyword =1, //關(guān)鍵字
Identifier, //標(biāo)識(shí)符
operatorr, //運(yùn)算符
operatorrd, //單運(yùn)算符
constant, //常量
escape, //轉(zhuǎn)義符
separator, //界限符
notype, //沒(méi)有類型
zhushi //注釋類型
};
對(duì)其單詞的類型定義成枚舉。
typedef struct Token {
Token_Type type; //其類型
char *lexeme ; //字符串
int value; //屬性值
}Token;
//返回單詞的結(jié)構(gòu)。
void InitScanner(char *ch){
fp1 = fopen(ch,"r+");
LineNo = 1;
}//初始化分析器。
void CloseScanner(){
fclose(fp1);
}//關(guān)閉分析器
void EmptyTokenString(){
memset(TokenBuffer,0,100);
}//清空緩沖區(qū)
static void AddCharTokenString(char Char)
{
int TokenLenth=strlen(TokenBuffer);
if(TokenLenth+1==sizeof(TokenBuffer)) return;
TokenBuffer[TokenLenth]=Char;
TokenBuffer[TokenLenth+1]='