資源簡介
LR分析法的實現
一、實驗目的
實現一個關于表達式的LR語法分析程序,識別用戶輸入的包含變量與整數的混合算術表達式(不包含減法與除法運算)。
二、實驗主要內容
1、文法如下:
0) SE
1) EE+E
2) EE*E
3) E(E)
4) Ei
2、對應的LR分析表如下:
狀態 ACTION GOTO
+ * ( ) i # E
0 S2 S3 1
1 S4 S5 acc
2 S2 S3 6
3 r4 r4 r4 r4
4 S2 S3 7
5 S2 S3 8
6 S4 S5 S9
代碼片段和文件信息
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Stack;
public?class?LR?{
private?int[][]?ELR={{-1-12-13-11}
{45-1-1-10-1}
{-1-12-13-16}
{104104-1104-1104-1}
{-1-12-13-17}
{-1-12-13-18}
{45-19-1-1-1}
{1015-1101-1101-1}
{102102-1102-1102-1}
{103103-1103-1103-1}};
private?List?symbol=new?ArrayList<>();
private?Stack?stateStack=new?Stack<>();
private?Stack?symbolStack=new?Stack<>();
private?List?expre=new?ArrayList<>();
private?String?statement;
private?int?length=0;
public?LR(String?expression){
statement=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4551??2012-12-22?23:42??LR.java
評論
共有 條評論