资源简介
1.本人就读于JLU,苦于刚开始做编译原理实验时上网很难搜到可用的相关材料,故辛辛苦苦做完后把自己搜到的材料和写的程序奉献给后来居上的学弟,希望你们能从中学到东西,哪怕只有一点点,我也所做无憾了;
2.该资源分值较大,但保证物超所值!里面包含了我自己100%原创的Java程序和down的CSDN上的另一份程序,本人无意冒犯,只是觉得好就顺手推荐一下,还有我自己写的LL(1)分析表和别人分享的一本详尽的电子书,相必大家也会很喜欢;
3.有一点希望大家注意:请大家适当借鉴,有所创新,严禁抄袭,否则后果自负,不过相信大家肯定不是那种人啦,但套话还是免不了的。
欢迎大家批评指正,如果觉得做得还行就赞一个,嘿嘿!
代码片段和文件信息
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Compiler extends Jframe {
JPanel northJP = new JPanel() southJP = new JPanel();// 此对话框采用边界布局,根据中、南部而分别创建中、南面板
JScrollPane scrollJSP = new JScrollPane();
JScrollPane scrollJSP2 = new JScrollPane();
static JTextArea displayJTA = new JTextArea();
static JTextArea displayJTA2 = new JTextArea();
JButton doTokenJB = new JButton(“词法分析“) doGrammarJB = new JButton(“语法分析“)helpJB=new JButton(“帮助“);
JComboBox select;
public Compiler(){
settitle(“SNL语言的词法&LL(1)语法分析器“);
// 使窗口长宽均为屏幕长宽的4/5,且居中显示
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int windowWidth = (int) (0.8 * screenSize.width) windowHeight = (int) (0.8 * screenSize.height);
setBounds((int) ((screenSize.width - windowWidth) * 0.5)
(int) ((screenSize.height - windowHeight) * 0.5) windowWidth
windowHeight);
setLayout(new BorderLayout());
add(northJP BorderLayout.CENTER);
add(southJP BorderLayout.SOUTH);
northJP.setLayout(new GridLayout(1 2));
southJP.setLayout(new FlowLayout());
northJP.add(scrollJSP);
scrollJSP.setViewportView(displayJTA);
displayJTA.setFont(new Font(“宋体“ Font.PLAIN 16));
northJP.add(scrollJSP2);
scrollJSP2.setViewportView(displayJTA2);
displayJTA2.setFont(new Font(“宋体“ Font.PLAIN 16));
select=new JComboBox();
select.addItem(“外部表示“);
select.addItem(“内部表示“);
southJP.add(select);
southJP.add(doTokenJB);
southJP.add(doGrammarJB);
southJP.add(helpJB);
Data.initialize();
doTokenJB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(DoToken.doToken(displayJTA.getText())){
doGrammarJB.setEnabled(true);
}else{
doGrammarJB.setEnabled(false);
}
if(select.getSelectedItem().toString().equals(“外部表示“)){
displayJTA2.setText(Data.tokenShow.toString());
}else{
displayJTA2.setText(Data.tokenShow2.toString());
}
}
});
doGrammarJB.setEnabled(false);// 设置语法分析按钮初始时不可用
doGrammarJB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
displayJTA2.setText(DoGrammar.doGrammar());
}
});
helpJB.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String s=“1.进行词法分析时,可以选择Token的外部和内部表示:“
+ “\n 外部表示是由类型信息:1为分隔符;2为保留字;3为标识符;4为数字常量“
+ “\n 和内容信息构成,直接显示给用户,方便易读;“
+ “\n 内部表示则是真实Token序列的展现,依次为:当前单词的行号,类型信息,该单词在存储该类型的列表中所处的下标,它是语法分析的输入。“
+ “\n2.在语法分析的结果中,每个单词前都用圆括号包含为了匹配到该终极符而规约的SNL对应下标的规则,用户不妨检验一二。“
+ “\n3.为了安全起见,若词法分析失败,则语法分析功能将不可用,直到词法分析成功。“
+ “\n4.为了简单起见,语法分析时直接将所有标识符统一表示为ID,将所有数字常量统一表示为INTC。“;
JOptionPane.showMessageDialog(Compiler.this s“帮助“JOptionPane.INFORMATION_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-06-20 12:16 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\
目录 0 2015-06-20 12:14 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\
文件 301 2015-06-17 04:47 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\.classpath
文件 388 2015-06-17 04:47 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\.project
目录 0 2015-06-20 12:14 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\.settings\
文件 598 2015-06-17 04:47 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\.settings\org.eclipse.jdt.core.prefs
目录 0 2015-06-20 12:14 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\
文件 1419 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Compiler$1.class
文件 779 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Compiler$2.class
文件 1608 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Compiler$3.class
文件 2975 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Compiler.class
文件 16356 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Data.class
文件 3374 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\DoGrammar.class
文件 5303 2015-06-20 12:12 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\DoToken.class
文件 419 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Rule.class
文件 809 2015-06-17 05:44 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\TestData.txt
文件 379 2015-06-20 12:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\bin\Token.class
目录 0 2015-06-20 12:14 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\src\
文件 3569 2015-06-19 00:39 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\src\Compiler.java
文件 22758 2015-06-17 05:47 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\src\Data.java
文件 3284 2015-06-19 00:38 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\src\DoGrammar.java
文件 9055 2015-06-20 12:12 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\src\DoToken.java
文件 809 2015-06-17 05:44 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\Compiler6171\src\TestData.txt
文件 39936 2015-06-18 13:04 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\SNL语言文法_3.doc
文件 16896 2015-06-17 04:46 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\SNL语言文法的LL(1)分析表.xls
目录 0 2015-06-20 12:14 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\snljava\
文件 301 2015-06-12 08:58 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\snljava\.classpath
文件 383 2015-06-12 09:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\snljava\.project
目录 0 2015-06-20 12:14 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\snljava\.settings\
文件 598 2015-06-12 08:58 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\snljava\.settings\org.eclipse.jdt.core.prefs
文件 95 2015-06-12 09:11 用Java实现的基于SNL语言的词法分析与LL(1)语法分析编译器\snljava\.settings\org.jboss.ide.eclipse.as.core.prefs
............此处省略284个文件信息
- 上一篇:java 超级马里奥
- 下一篇:毕向东老师35天基础java全部源代码
相关资源
- 编译原理实验 词法分析设计 MFC
- 设计实现一个编译器(java)
- 华中科技大学 编译原理 面向过程的
- tiger编译器完整版包括编译报告
- snlc编译器 c java
- 小型的java编译器GUI
- 词法分析器实现java和c++
- [现代编译器的Java实现].(美)Andrew
- 现代编译器的Java实现.(美)Andrew.W
- 现代编译器的Java实现(第二版).pd
- C语言词法分析器(Java版.带界面)
- 词法分析器Java语言编写附实验报告
- Java实现具有词法匹配、语法分析和中
- 编译原理词法分析器 java版
- 编译原理词法分析器实现Java带界面源
- c0编译器 词法分析 文法分析 生成目
- 利用Java编写简单的C语言词法分析器
- java实现的c语言简单编译器
- Java实现PL0词法分析、语法分析、语义
- 含界面的java的词法分析器
- 编译原理 词法分析 语法分析 Java版
- 使用直接分析法编制C语言子集的词法
- 词法分析器(java实现)
- 编译原理综合实习代码
- 词法分析器java语言版本
- 采用java编写的C语言词法分析器(可执
- C编译器java编写词法分析,语法分析,
- java编写的PL/0词法分析器
- 词法分析器和语法分析器java实现代码
- java实现的图形界面词法分析程序
评论
共有 条评论