资源简介
(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 菱形水晶按钮
评论
共有 条评论