JAVA版 C語言詞法分析器

    本題目是編譯原理實驗,現在只發布核心代碼,僅供交流,歡迎評論!

 

    實驗要求:

根據編譯中的分詞原理,編寫一個詞法分析程序:

1. 輸入:任意一個C語言程序的源代碼。

2. 處理:對輸入進行分析,分離出保留字、標識符、常量、算符和界符。

3. 輸出:對應的二元式(種別編碼自定,可暫編爲一類對應一個編碼)。

   

 

一、說明

 /**
 *
 * @author 劉小文
 * 本詞法分析器只對一部分進行了分析,並沒有包含全部的信息,暫編一類對應一個編碼
 * (1)關鍵字:二元式定義如下:(單詞種別爲1,關鍵字名稱)   yes
 *       關鍵字表:"auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if","int","long","register","return","short","signed","static", "sizeof","struct","switch","typedef","union","unsigned","void","volatile","while" 
 *
 * (2)標識符:二元式定義如下:(單詞種別爲2,標識符名稱)   yes
 *
 * (3)常     數:二元式定義如下:(單詞種別3,常數值)     yes
 *       常數表:整型常數、浮點型常數、布爾型常數、字符型常數、字符串
 *
 * (4)運算符:二元式定義如下:(單詞種別4,運算符)     no 三目運算符沒有判斷
 *    運算符表:+、+=、++、-、-=、--、*、*=、/、/=、%、%=、>、>=、<、<=、=、==、!、!= 、. 、->、>>、<<、&、&&、||、||、~、^  
 *
 * (5)界    符:二元式定義如下:(單詞種別5,界符)      yes
 *    界符表:#、;、,、(、)、{、}、[、]
 *   
 *                   no 不加雙引號的漢字誤判爲標識符,應爲非法字符 ;加雙引號的漢字,正確的判斷爲字符串常數
 */

二、詞法分析器核心代碼

 

三、運行結果

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章