实验二LL语法分析器Word文件下载.docx

上传人:b****3 文档编号:13446403 上传时间:2022-10-10 格式:DOCX 页数:35 大小:281.68KB
下载 相关 举报
实验二LL语法分析器Word文件下载.docx_第1页
第1页 / 共35页
实验二LL语法分析器Word文件下载.docx_第2页
第2页 / 共35页
实验二LL语法分析器Word文件下载.docx_第3页
第3页 / 共35页
实验二LL语法分析器Word文件下载.docx_第4页
第4页 / 共35页
实验二LL语法分析器Word文件下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

实验二LL语法分析器Word文件下载.docx

《实验二LL语法分析器Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验二LL语法分析器Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。

实验二LL语法分析器Word文件下载.docx

3、对下列文法,用LL

(1)分析法对任意输入的符号串进行分析:

(1)E->

TG

(2)G->

+TG|—TG

(3)G->

ε

(4)T->

FS

(5)S->

*FS|/FS

(6)S->

(7)F->

(E)

(8)F->

i

输出的格式如下:

5、实验源程序

LL1.java

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.table.DefaultTableModel;

importjava.sql.*;

importjava.util.Vector;

publicclassLL1extendsJFrameimplementsActionListener

{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

JTextFieldtf1;

JTextFieldtf2;

JLabell;

JButtonb0;

JPanelp1,p2,p3;

JTextAreat1,t2,t3;

JButtonb1,b2,b3;

JLabell0,l1,l2,l3,l4;

JTabletable;

Statementsta;

Connectionconn;

ResultSetrs;

DefaultTableModeldtm;

StringVn[]=null;

Vector<

String>

P=null;

intfirstComplete[]=null;

//存储已判断过first的数据

charfirst[][]=null;

//存储最后first结果

intfollowComplete[]=null;

//存储已判断过follow的数据

charfollow[][]=null;

//存储最后follow结果

charselect[][]=null;

//存储最后select结果

intLL=0;

//标记是否为LL

(1)

Stringvt_tou[]=null;

//储存Vt

Objectshuju[][]=null;

//存储表达式数据

charyn_null[]=null;

//存储能否推出空

LL1()

{

setLocation(100,0);

setSize(700,780);

tf1=newJTextField(13);

tf2=newJTextField(13);

l=newJLabel("

>

"

);

l0=newJLabel("

输入字符串:

l1=newJLabel("

输入的文法为:

"

l2=newJLabel("

l3=newJLabel("

分析的结果:

l4=newJLabel("

预测分析表:

//p1=newJPanel();

p2=newJPanel();

p3=newJPanel();

t1=newJTextArea(24,20);

t2=newJTextArea(1,30);

t3=newJTextArea(24,40);

b0=newJButton("

确定(S为开始)"

b1=newJButton("

判断文法"

b2=newJButton("

输入"

b3=newJButton("

清空"

table=newJTable();

JScrollPanejp1=newJScrollPane(t1);

JScrollPanejp2=newJScrollPane(t2);

JScrollPanejp3=newJScrollPane(t3);

p2.add(tf1);

p2.add(l);

p2.add(tf2);

p2.add(b0);

p2.add(b1);

p2.add(l0);

p2.add(l2);

p2.add(jp2);

p2.add(b2);

p2.add(b3);

p2.add(l1);

p2.add(l3);

p2.add(jp1);

p2.add(jp3);

p3.add(l4);

p3.add(newJScrollPane(table));

add(p2,"

Center"

add(p3,"

South"

b0.addActionListener(this);

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

table.setPreferredScrollableViewportSize(newDimension(660,200));

setVisible(true);

}

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==b0)

Stringa=tf1.getText();

Stringb=tf2.getText();

t1.append(a+'

→'

+b+'

\n'

}

if(e.getSource()==b1)

t3.setText("

intVnnum=0,k;

Vn=newString[100];

P=newVector<

();

Strings[]=t1.getText().split("

\n"

for(inti=0;

i<

s.length;

i++)

if(s.length<

2){

文法输入有误,请重新输入"

//判断长度是否符合

return;

if(s[i].charAt(0)<

='

Z'

&

s[i].charAt(0)>

A'

s[i].charAt

(1)=='

for(k=0;

k<

Vnnum;

k++)

if(Vn[k].equals(s[i].substring(0,1))){

break;

if(Vnnum==0||k>

=Vnnum)

Vn[Vnnum]=s[i].substring(0,1);

//存入Vn数据

Vnnum++;

P.add(s[i]);

else

yn_null=newchar[100];

first=newchar[Vnnum][100];

intflag=0;

StringfirstVn[]=null;

firstComplete=newint[Vnnum];

Vn[i]!

=null;

i++)//依次求FIRST**

flag=0;

firstVn=newString[20];

if((flag=add_First(first[i],Vn[i],firstVn,flag))==-1)return;

firstComplete[i]=1;

t3.append("

first集:

+"

//显示FIRST**

first("

+Vn[i]+"

)={"

for(intj=0;

first[i][j]!

\0'

;

j++)

t3.append(first[i][j]+"

"

}"

follow=newchar[Vnnum][100];

StringfollowVn[]=null;

followComplete=newint[Vnnum];

i++)//求FOLLOW**

followVn=newString[20];

if((flag=tianjiaFollow(follow[i],Vn[i],followVn,flag))==-1)return;

followComplete[i]=1;

follow集:

//显示FOLLOW**

follow("

follow[i][j]!

t3.append(follow[i][j]+"

select=newchar[P.size()][100];

P.size();

i++)//求SELECT**

tianjiaSelect(select[i],(String)P.elementAt(i),flag);

select集:

//显示SELECT**

select("

+(String)P.elementAt(i)+"

select[i][j]!

t3.append(select[i][j]+"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1