资源简介

编译原理实验,包括词法分析,语法分析,生成四元式

资源截图

代码片段和文件信息

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\Mainframe$LexAnalyseButtonAction.class

     文件       1660  2010-01-05 14:12  lab\bin\Mainframe$MainPanel.class

     文件        898  2010-01-05 14:12  lab\bin\Mainframe$MainWindowListener.class

     文件       1817  2010-01-05 14:12  lab\bin\Mainframe.class

     文件        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\Mainframe$LexAnalyseButtonAction.class

     文件       1594  2010-01-09 20:09  lab\src\Mainframe$MainPanel.class

     文件        754  2010-01-09 20:09  lab\src\Mainframe$MainWindowListener.class

     文件       1580  2010-01-09 20:09  lab\src\Mainframe.class

     文件        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


评论

共有 条评论