實現方法
改語法分析器附帶詞法分析器;
通過將詞法分析的單詞壓入語法分析棧中,採用 LL(1) 型文法進行分析;
實現功能
能夠識別簡單語法,包括:
1.變量聲明;
2.變量賦值;
3.變量的運算;
4.if,for,while等循環或條件語句;
5.自動過濾註釋語句。
文法語言
<程序> → <語句><程序> | Ɛ;
<語句> → <變量定義語句> | <賦值語句> | <函數調用語句> | <if語句>| <循環語句> | Ɛ
<變量定義語句> → <變量類型><標識符表>;
<賦值語句> → <標識符> = <表達式>;
<函數調用語句> → <標識符> ( <標識符表> );
<if語句> → if ( <條件表達式> ) { <語句> } <else語句>
<else語句> → else{ <語句> } | Ɛ
<循環語句> → while ( <條件表達式> ) { <語句> }
<標識符表> → <標識符>| <標識符表>,<標識符>
<條件表達式> → <表達式><比較運算符><表達式>
<比較運算符> → > | >= | < | <= | != | ==
<變量類型>→ char | short | int | long | float | double
<表達式> → +T | -T | T | <表達式> + T | <表達式>-T
T → F | T*F | T/F
F → <標識符> | <無符號整數> | (<表達式 >)
正確示例截圖
錯誤示例截圖
源碼獲取
源碼和可運行的程序jar包均已打包,獲取方式如下:
CSDN資源下載鏈接:
https://download.csdn.net/download/weixin_44155115/12284107
公衆號獲取:
關注微信公衆號 “科技毒瘤君”,回覆 “語法分析器”