資源簡介
編譯原理實驗,包括詞法分析,語法分析,生成四元式

代碼片段和文件信息
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
?*?功能:構(gòu)造出界面
?*/
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}“);
/**主窗口關(guān)閉,程序即退出,添加次監(jiān)聽器,提示是否退出程序,保證數(shù)據(jù)安全*/
addWindowListener(new?MainWindowListener());
}
/**主界面窗口關(guān)閉監(jiān)聽器*/
class?MainWindowListener?extends?WindowAdapter{
public?void?windowClosing(WindowEvent?e){
int?close?=?JOptionPane.showConfirmDialog(null?“現(xiàn)在退出可能會造成數(shù)據(jù)丟失,您確定要退出嗎?“?
“退出“?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
評論
共有 條評論