⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagemain.java

📁 CMM编译器词法分析及语法分析代码
💻 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 + -