编译语言-语法分析器的设计

编译语言-语法分析器的设计

ID:46826594

大小:85.56 KB

页数:9页

时间:2019-11-28

编译语言-语法分析器的设计_第1页
编译语言-语法分析器的设计_第2页
编译语言-语法分析器的设计_第3页
编译语言-语法分析器的设计_第4页
编译语言-语法分析器的设计_第5页
资源描述:

《编译语言-语法分析器的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三语法分析器的设计一、实验内容设计、编写和调试构造LR(0)项目集规范簇或实现基于LR分析表对给定的符号串进行LR分析的程序。以下两个内容任选其中一项:(1)对于给定的文法,实现构造识别该文法全部活前缀DFA的程序。(2)对于给定的LR分析表和符号串,设计程序以实现所输入符号串是否为合法符号串。要求用JAVA语言编程。(可参考实验指导书P149至P156)二、程序代码AnalysisOfGrammer.javapackageanalysis;importjavax.swing.*;importjavax.swing.table.Def

2、aultTableModel;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.util.LinkedList;publicclassAnalysisOfGrammerextendsJApplet{privateJFileChooserjfc=newJFileChooser(newFile("."));privateJButtonjbt1=newJButton("打开文法文件");privateJButtonjbt2=newJButton("构造LR规范簇

3、");privateJButtonjbt3=newJButton("构造LR分析表");privateJButtonjbt4=newJButton("清空");privateJButtonjbt5=newJButton("退出");privateJLabeljl1=newJLabel("LR(0)项目集规范簇");privateJLabeljl2=newJLabel("LR(0)分析表");privateJPanelp3=newJPanel();privateJTextAreajta1=newJTextArea();privateStri

4、ng[]grammer=newString[50];privateintcount=0;privateLinkedListlist=newLinkedList();privateObjectcontent[][]=newObject[100][4];intnum1=0;String[][]cache=newString[50][100];int[]location=newint[50];intback=0;publicvoidclear1(){grammer=null;}publ

5、icvoidclear2(){num1=0;9/9list=null;content=null;cache=null;location=null;back=0;}publicAnalysisOfGrammer(){JPanelp1=newJPanel();p1.setLayout(newGridLayout(1,5));p1.add(jbt1);p1.add(jbt2);p1.add(jbt3);p1.add(jbt4);p1.add(jbt5);add(p1,BorderLayout.NORTH);JPanelp4=newJPanel(

6、);p4.setLayout(newGridLayout(1,2));JPanelp2=newJPanel();p2.setLayout(newBorderLayout());p2.add(newJLabel("文法为:"),BorderLayout.NORTH);p2.add(newJScrollPane(jta1),BorderLayout.CENTER);p4.add(p2);p4.add(p3);add(p4,BorderLayout.CENTER);jbt1.addActionListener(newActionListener

7、(){publicvoidactionPerformed(ActionEvente){jta1.setText("");open();}});jbt2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(jta1.getText().equals(""))JOptionPane.showMessageDialog(null,"请打开文法文件!");else{DNF();list.get(1).setNextState("接受态")

8、;for(intk=0;k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。