資源簡介
(1)能夠完成六種雙目關系運算:<,>,<=,>=,==,!=,由于能力有限,只能完成如param1<param2而不能對param1+param2<param3+param4的分析
(2)因為LL(1)文法是自頂而下的,而且是從左往右分析,所以很難對多種有不同優先級運算進行分析,在這里我只使用了加法和賦值
(3)文法描述
1. S->if (B) then {S}else{S}
2. S->i:=E
3. E->TE’
4. E’-> +T E’
5. E’->%
6. T->i
7. B->i rop i 注:%代表空
代碼片段和文件信息
import?java.io.*;
import?java.util.*;
import?java.lang.*;
import?javax.swing.*;
import?java.awt.*;
import?java.awt.event.*;
public?class?Analyseframe?extends?Jframe?{
Stack?stack=?new?Stack();;
ArrayList?boolList;//?布爾控制式
ArrayList?EQUList1;//?then的賦值表達式
ArrayList?EQUList2;//?else的賦值表達式
????String?boolExp;
String?EQUExp1;
String?EQUExp2;
ArrayList?stringlink?=?new?ArrayList();//?保存if語句所有的信息
linkedList?stringList?=?new?linkedList();//?輸入串
String?stackHead?=?““;//?記錄棧首值和輸入串串的首字符
String?stringHead?=?““;
int?biaozhi?=?0;//?在LL(1)分析中?1:匹配,2:不匹配要尋找產生式
int?n;//?步驟n
int?endbiaozhi?=?0;//?分析不成功要推出的標志?1:不成功,即在分析表中對應的是一個空串而不是產生式
String?chanshengshichuan?=?““;//?產生式是字符串string需要一個字符一個字符的進行比較
String?c
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14749??2010-01-07?14:01??Analysefr
?????文件?????449536??2010-01-10?14:17??我的編譯課程設計.doc
-----------?---------??----------?-----??----
???????????????464285????????????????????2
- 上一篇:坦克大戰Java源碼
- 下一篇:Swing 菱形水晶按鈕
評論
共有 條評論