ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:281.77KB ,
资源ID:18758782      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18758782.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理语法分析器java完美运行版教学文案Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理语法分析器java完美运行版教学文案Word文档下载推荐.docx

1、输出的格式如下:5、实验源程序LL1.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.sql.*;import java.util.Vector;public class LL1 extends JFrame implements ActionListener /* * */ private static final long serialVersionUID = 1L; JTextField tf1

2、; JTextField tf2; JLabel l; JButton b0; JPanel p1,p2,p3; JTextArea t1,t2,t3; JButton b1,b2,b3; JLabel l0,l1,l2,l3,l4; JTable table; Statement sta; Connection conn; ResultSet rs; DefaultTableModel dtm; String Vn=null; Vector P=null; int firstComplete=null;/存储已判断过first的数据 char first=null;/存储最后first结果

3、int followComplete=null;/存储已判断过follow的数据 char follow=null;/存储最后follow结果 char select=null;/存储最后select结果 int LL=0;/标记是否为LL(1) String vt_tou=null;/储存Vt Object shuju=null;/存储表达式数据 char yn_null=null;/存储能否推出空 LL1() setLocation(100,0); setSize(700,780); tf1=new JTextField(13); tf2=new JTextField(13); l=new

4、 JLabel(); l0=new JLabel(输入字符串: l1=new JLabel(输入的文法为: l2=new JLabel( l3=new JLabel(分析的结果: l4=new JLabel(预测分析表: /p1=new JPanel(); p2=new JPanel(); p3=new JPanel(); t1=new JTextArea(24,20); t2=new JTextArea(1,30); t3=new JTextArea(24,40); b0=new JButton(确定(S为开始) b1=new JButton( 判断文法 b2=new JButton(输入

5、b3=new JButton(清空 table=new JTable(); JScrollPane jp1=new JScrollPane(t1); JScrollPane jp2=new JScrollPane(t2); JScrollPane jp3=new JScrollPane(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.ad

6、d(jp1); p2.add(jp3); p3.add(l4); p3.add(new JScrollPane(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(new Dime

7、nsion(660,200); setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=b0) String a=tf1.getText(); String b=tf2.getText(); t1.append(a+b+n if(e.getSource()=b1) t3.setText( int Vnnum=0,k; Vn=new String100; P=new Vector(); String s=t1.getText().split(n for(int i=0;is.length;i+)

8、if(s.length2)文法输入有误,请重新输入/判断长度是否符合 return; if(si.charAt(0)Asi.charAt(1)=) for(k=0;k=Vnnum) VnVnnum=si.substring(0, 1);/存入Vn数据 Vnnum+; P.add(si); else yn_null=new char100; first=new charVnnum100; int flag=0; String firstVn=null; firstComplete=new intVnnum;Vni!=null;i+) /依次求 FIRST* flag=0; firstVn=new

9、 String20; if(flag=add_First(firsti,Vni,firstVn,flag)=-1)return; firstCompletei=1; t3.append(first集:+ /显示FIRST*first(+Vni+)= for(int j=0;firstij!0;j+) t3.append(firstij+ , follow=new charVnnum100; String followVn=null; followComplete=new intVnnum;i+) /求FOLLOW* followVn=new String20; if(flag=tianjiaF

10、ollow(followi,Vni,followVn,flag)=-1)return; followCompletei=1;follow集: /显示FOLLOW*follow(followij! t3.append(followij+ select=new charP.size()100;P.size();i+) /求SELECT* tianjiaSelect(selecti,(String)P.elementAt(i),flag);select集: /显示SELECT*select(+(String)P.elementAt(i)+selectij! t3.append(selectij+i+

11、)/判断select交集是否为空 int biaozhi=0; char save=new char100;j|t.charAt(j)=0;i-) zifufzifu=s.charAt(i); fzifu+; int buzhou=2; char n=new char65;/存储要显示的内容步骤 分析栈 剩余输入串 所用产生式或匹配 n0=1 n15= n14= int u=29; for(int i=fzifu-1; nu=zifui; u+; while(!(fenxiffenxi-1=zifufzifu-1=)/剩余输入串不为#则分析 int i,j; char t=zifufzifu-

12、1; char k=fenxiffenxi-1; if(t=k)/产生式匹配 n49=k; n50=匹 n51=配 t3.append(String.copyValueOf(n)+ n=new char65; fzifu-; ffenxi-; if(buzhouy-)/处理分析栈,出栈 nu=fenxiy; u=29; for(int y=fzifu-1;y-)/处理剩余字符串,消除一个字符 nu=zifuy; buzhou+; continue; for(i=0;i+)/搜寻所用产生式的左部 if(Vni.equals(String.valueOf(k)break;vt_tou.length

13、;j+)/判断是否匹配 if(vt_touj.equals(String.valueOf(t)break; if(j=vt_tou.length)/全部产生式都不能符合则报错 t3.append(String.copyValueOf(n);该串不是该文法的句型 Object result1=shujuij; if(result1=null) else/找到所用产生式 n49=Vni.charAt(0); u=50; String result=(String)result1; for(int y=0;y|t.charAt(k)/表达式右端第i个不是非终结符 if(flag=0|puanduanChar(a,t.charAt(k) if(t.charAt(k)=)/#时直接加入first if(k+1=t.length() aflag=t.charAt(k); flag+; int flag1=0; for

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

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