📄 pagemain.java
字号:
package try_sw;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.awt.Dimension;import java.awt.Color;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTree;import javax.swing.BoxLayout;import javax.swing.tree.TreePath;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeModel;public class pagemain extends JFrame{ /** * */ private static final long serialVersionUID = 1L; static Mystack sta = new Mystack(); private JButton b= new JButton("analyse"), c= new JButton("Clear"); private JTextArea t = new JTextArea(20,20); private JTextArea t1 = new JTextArea(20,20); //private JTree jt = new JTree(); public pagemain(){ b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String str = t.getText(); sta = new analyzer().analyze(nh, str); String out = sta.print(); // System.out.println(sta.length()); t1.setText(out); DefaultMutableTreeNode dt = new Parser().Parse(llh, sta); //System.out.println(dt.getChildCount()); JTree tmpjt = new JTree(dt); //add(new JScrollPane(tmpjt)); //jt =tmpjt; JPanel panel1 = new JPanel(); panel1.setLayout ( new BoxLayout (panel1, BoxLayout.X_AXIS)); panel1.setPreferredSize ( new Dimension ( 400 , 400 )); panel1.add ( new JScrollPane (tmpjt)); JFrame frame = new JFrame ( " JTreetest " ); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setContentPane (panel1); frame.pack(); frame.show(); } }); c.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ t.setText(""); t1.setText(""); } }); setLayout(new FlowLayout()); add(new JScrollPane(t)); add(new JScrollPane(t1)); //add(new JScrollPane()); add(b); add(c); } /** * @param args */ static Newhash nh = new Newhash(); static LLhash llh = new LLhash(); static void hashinit(){ /* * 1--variable * 2--preserved * 3--number * 4--logicsymbol * 5--mathsymbol * 6--othersymbol */ String[] preservedarr = {"if","else","while","read","write","int","real"}; String[] logicop= {"<","==","<>"}; String[] mathop= {"+","-","*","/","(",")"}; String[] otherop = {"=",";","{","}","/*","*/","[","]"}; nh.put(preservedarr, 2); nh.put(logicop,4); nh.put(mathop, 5); nh.put(otherop, 6); } static void hashinit2(){ String[] e1={"value-}","EX","value-{","value-)","value-(","value-main","value-void"}; llh.put("Start", "value-void",e1 ); String[] e2={"EX","value-;","variable","style-2"}; llh.put("EX", "style-2",e2); String[] e3={"EX","value-;","CALEX","value-=","variable"}; llh.put("EX", "style-1",e3 ); String[] e4={"EX","value-;","value-)","variable","value-(","value-read"}; llh.put("EX", "value-read",e4 ); String[] e5={"EX","value-;","value-)","variable","value-(","value-write"}; llh.put("EX", "value-write",e5 ); String[] e6={"EX","IFCL"}; llh.put("EX", "value-if",e6 ); String[] e7={"EX","WHILE_CLAUSE"}; llh.put("EX", "value-while",e7 ); String[] e8={"EPSILON"}; llh.put("EX", "value-#",e8 ); String[] e9={"EPSILON"}; llh.put("EX", "value-}",e9 ); String[] e10={"value-}","EX","value-{"}; llh.put("EEX", "value-{",e10 ); String[] e11={"EX"}; llh.put("EEX", "style-2",e11); String[] e12={"EX"}; llh.put("EEX", "style-1",e12 ); String[] e13={"EX"}; llh.put("EEX", "value-if",e13 ); String[] e14={"EX"}; llh.put("EEX", "value-while",e14 ); String[] e15={"EX"}; llh.put("EEX", "value-#",e15 ); String[] e16={"CALEX","style-4","CALEX"}; llh.put("RELEX", "value-(",e16 ); String[] e17={"CALEX","style-4","CALEX"}; llh.put("RELEX", "style-1",e17 ); String[] e18={"CALEX","style-4","CALEX"}; llh.put("RELEX", "style-3",e18 ); String[] e19={"ELSE_SER","EEX","value-)","RELEX","value-(","value-if"}; llh.put("IFCL", "value-if",e19 ); String[] e20={"ELSE","value-else"}; llh.put("ELSE_SER", "value-else",e20 ); String[] e21={"EPSILON"}; llh.put("ELSE_SER", "value-#",e21 ); String[] e22={"EPSILON"}; llh.put("ELSE_SER", "style-2",e22 ); String[] e23={"EPSILON"}; llh.put("ELSE_SER", "style-1",e23 ); String[] e24={"EPSILON"}; llh.put("ELSE_SER", "value-if",e24 ); String[] e25={"EPSILON"}; llh.put("ELSE_SER", "value-while",e25 ); String[] e26={"EPSILON"}; llh.put("ELSE_SER", "value-}",e26 ); String[] e27={"ELSE_SER","EEX","value-)","RELEX","value-(","value-if"}; llh.put("ELSE", "value-if",e27 ); String[] e28={"EEX"}; llh.put("ELSE", "value-{",e28 ); String[] e29={"value-;","variable","style-2"}; llh.put("ELSE", "style-2",e29 ); String[] e30={"value-;","CALEX","value-=","variable"}; llh.put("ELSE", "style-1",e30 ); String[] e31={"value-;","value-)","variable","value-(","value-read"}; llh.put("ELSE", "value-read",e31 ); String[] e32={"value-;","value-)","variable","value-(","value-write"}; llh.put("ELSE", "value-write",e32 ); String[] e33={"CL","value-)","RELEX","value-(","value-while"}; llh.put("WHILE_CLAUSE", "value-while",e33 ); String[] e34={"EEX"}; llh.put("CL", "value-{",e34 ); String[] e35={"value-;","variable","style-2"}; llh.put("CL", "style-2",e35 ); String[] e36={"value-;","CALEX","value-=","variable"}; llh.put("CL", "style-1",e36 ); String[] e37={"value-;","value-)","variable","value-(","value-read"}; llh.put("CL", "value-read",e37 ); String[] e38={"value-;","value-)","variable","value-(","value-write"}; llh.put("CL", "value-write",e38 ); String[] e82 = {"EPSILON"}; llh.put("va", "style-4", e82); String[] e39={"va","style-1"}; llh.put("variable", "style-1",e39 ); String[] e77={"EPSILON"}; llh.put("va", "value-=", e77); String[] e40={"value-]","CALEX","value-["}; llh.put("va", "value-[",e40 ); String[] e41={"EPSILON"}; llh.put("va", "value-;",e41 ); String[] e42={"EPSILON"}; llh.put("va", "value-#",e42 ); String[] e43={"EPSILON"}; llh.put("va", "value-)",e43 ); String[] e44={"EPSILON"}; llh.put("va", "value-+",e44); String[] e45={"EPSILON"}; llh.put("va", "value--",e45 ); String[] e46={"EPSILON"}; llh.put("va", "value-*",e46 ); String[] e47={"EPSILON"}; llh.put("va", "value-/",e47 ); String[] e48={"mT","m_variable"}; llh.put("CALEX", "style-1",e48 ); String[] e49={"mT","m_variable"}; llh.put("CALEX", "style-3",e49 ); String[] e50={"mT","m_variable"}; llh.put("CALEX", "value-(",e50 ); String[] e51={"mS","style-5"}; llh.put("mT", "value-+",e51 ); String[] e52={"mS","style-5"}; llh.put("mT", "value--",e52 ); String[] e53={"EPSILON"}; llh.put("mT", "value-;",e53 ); String[] e54={"EPSILON"}; llh.put("mT", "value-)",e54 ); String[] e80={"EPSILON"}; llh.put("mT", "style-4", e80); String[] e55={"mA","m_variable"}; llh.put("mS", "style-1",e55 ); String[] e56={"mA","m_variable"}; llh.put("mS", "style-3",e56 ); String[] e57={"mN","CALEX","("}; llh.put("mS", "style-(",e57 ); String[] e58={"mS_"}; llh.put("mA", "value-#",e58 ); String[] e59={"mS_"}; llh.put("mA", "value-*",e59 ); String[] e60={"mS_"}; llh.put("mA", "value-/",e60 ); //String[] e61={"mT"}; //llh.put("mA", "value-#",e61 ); String[] e62={"mT"}; llh.put("mA", "value-+",e62 ); String[] e63={"mT"}; llh.put("mA", "value--",e63 ); //String[] e64={"value-)","mS_"}; //llh.put("mN", "value-)",e64); String[] e65={"value-)","mS_"}; llh.put("mN", "value-*",e65); String[] e66={"value-)","mS_"}; llh.put("mN", "value-/",e66); String[] e67={"value-)","mT"}; llh.put("mN", "value-+",e67); //String[] e68={"value-)","mS_"}; //llh.put("mN", "value-)",e68); String[] e69={"value-)","mT"}; llh.put("mN", "value--",e69); String[] e70={"mM","style-5"}; llh.put("mS_", "value-*",e70); String[] e71={"mM","style-5"}; llh.put("mS_", "value-/",e71); String[] e72={"mS_","m_variable"}; llh.put("mM", "style-1",e72); String[] e73={"mS_","m_variable"}; llh.put("mM", "style-3",e73); String[] e74={"mS_","value-)","CALEX","value-("}; llh.put("mM", "value-(",e74); String[] e75={"EPSILON"}; llh.put("mS_", "value-;",e75); String[] e76={"EPSILON"}; llh.put("mS_", "value-}",e76); String[] e78={"variable"}; llh.put("m_variable", "style-1", e78); String[] e79={"style-3"}; llh.put("m_variable", "style-3", e79); String[] e81={"EPSILON"}; llh.put("mS_", "style-4", e81); String[] e83 ={"EPSILON"}; llh.put("mA", "value-;", e83); } public static void main(String[] args) { // TODO Auto-generated method stub hashinit(); hashinit2(); //sta = new analyzer().analyze(nh, "if(a"); //System.out.println(sta.print()); SwingConsole.run(new pagemain(),550,600); }}//81
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -