资源简介
编译原理实验,包括词法分析,语法分析,生成四元式
代码片段和文件信息
import javax.swing.Jframe;
/**
* @author HITROBINHO@HOTMAIL.COM
* 主界面类,显示可视化界面
*/
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.util.Vector;
import java.util.regex.Pattern;
/**
* 主类
* @author hitrobinho
* 功能:构造出界面
*/
public class CodeAnalyse {
public CodeAnalyse(){
Mainframe mainframe = new Mainframe();
mainframe.setDefaultCloseOperation(Jframe.DO_NOTHING_ON_CLOSE);
mainframe.setVisible(true);
}
public static void main(String args[]){
new CodeAnalyse();
}
}
class Mainframe extends Jframe{
private static final long serialVersionUID = 1L;
//private JTextArea keywordArea = new JTextArea();
//private JTextArea demArea = new JTextArea();
private JTextArea baseCodeText = new JTextArea();
private JTextArea resultText = new JTextArea();
public Mainframe(){
settitle(“代码分析器“);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int WIDTH = 500;
int HEIGHT = 625;
setSize(WIDTH HEIGHT);
setLocation((screenSize.width - WIDTH)/2 (screenSize.height - HEIGHT)/2);
MainPanel mainPanel = new MainPanel();
add(mainPanel);
baseCodeText.setText(“int main()\n{\n int a;\n int b;\n a=0;\n b=1;\n b=a+b+3;\n b=a+b/3;\n if(a>c)\n {\n a=c+d;\n a=b;\n }\n else\n {\n b=a+3;\n }\n while(a>c)\n {\n a=c;\n }\n}“);
/**主窗口关闭,程序即退出,添加次监听器,提示是否退出程序,保证数据安全*/
addWindowListener(new MainWindowListener());
}
/**主界面窗口关闭监听器*/
class MainWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
int close = JOptionPane.showConfirmDialog(null “现在退出可能会造成数据丢失,您确定要退出吗?“
“退出“ JOptionPane.YES_NO_OPTION);
if(close == JOptionPane.YES_OPTION){
System.exit(0);
}
}
}
/**类功能:
*主界面
*/
class MainPanel extends JPanel{
private static final long serialVersionUID = 1L;
private JPanel basePanel = new JPanel();
// private JPanel baseChoosePanel = new JPanel();
private JPanel resultPanel = new JPanel();
private JButton chooseFileButton = new JButton(“浏览文件...“);
private JButton analyseButton = new JButton(“分析“);
private JScrollPane baseScrollPane;
private JScrollPane resultScrollPane;
public MainPanel(){
setLayout(new GridLayout(20));
//显示要进行分析的代码
basePanel.setLayout(new BorderLayout());
//chooseFileButton.addActionListener(new chooseFileButtonAction());
baseScrollPane = new JScrollPane(baseCodeText);
// baseChoosePanel.add(baseCodeText);
// baseChooseP
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 307 2010-01-05 13:16 lab\.classpath
文件 379 2010-01-05 13:16 lab\.project
文件 629 2010-01-05 13:16 lab\.settings\org.eclipse.jdt.core.prefs
文件 15043 2010-01-05 14:12 lab\bin\a.class
文件 555 2010-01-05 14:12 lab\bin\CodeAnalyse.class
文件 1748 2010-01-05 14:12 lab\bin\Mainfr
文件 1660 2010-01-05 14:12 lab\bin\Mainfr
文件 898 2010-01-05 14:12 lab\bin\Mainfr
文件 1817 2010-01-05 14:12 lab\bin\Mainfr
文件 308 2010-01-05 14:12 lab\bin\Node.class
文件 329 2010-01-05 14:12 lab\bin\SYS.class
文件 14324 2010-01-09 20:09 lab\src\a.class
文件 412 2010-01-09 20:09 lab\src\CodeAnalyse.class
文件 30596 2010-03-12 12:57 lab\src\CodeAnalyse.java
文件 1477 2010-01-09 20:09 lab\src\Mainfr
文件 1594 2010-01-09 20:09 lab\src\Mainfr
文件 754 2010-01-09 20:09 lab\src\Mainfr
文件 1580 2010-01-09 20:09 lab\src\Mainfr
文件 253 2010-01-09 20:09 lab\src\Node.class
文件 275 2010-01-09 20:09 lab\src\SYS.class
目录 0 2010-01-05 13:16 lab\.settings
目录 0 2010-01-05 13:19 lab\bin
目录 0 2010-01-09 17:43 lab\src
目录 0 2010-01-05 13:16 lab
----------- --------- ---------- ----- ----
74938 24
- 上一篇:java调用网易云音乐接口
- 下一篇:采用java编写的C语言词法分析器(可执行)
相关资源
- mysql数据处理,java用户登录处理
- springboot2.0+spring cloud+eureka(分布式项
- 前端开发(uCharts)大全
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- jacob 1.19
- javaweb网上购物系统源码(附数据库脚
- jsp+servlet+jdbc开发学生信息后台管理系
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 安全测试工具ysoserial
- 计算机网络CRC循环冗余检测系统
- 基于JAVA_JSP电子书系统(源码+数据库
- 泛微OA维护手册.docx
- Java网络编程知识点总结.xmind
- websockets实现tomcat日志在线输出
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
评论
共有 条评论