亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? compiler.java

?? 類c語言編譯器
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;
import java.util.Vector;
import java.util.Stack;
import java.lang.System;
import java.lang.Character;
import java.io.*;
/**
 * This class can take a variable number of parameters on the command
 * line. Program execution begins with the main() method. The class
 * constructor is not invoked unless an object of type 'compiler' is
 * created in the main() method.
 */
public class compiler extends Form
{
	LRAnalyse lrAnalyse;
	boolean isWordFinished=false;
	//symbolTable symTable=new symbolTable();
	public compiler()
	{
		// Required for Visual J++ Form Designer support
		initForm();		
		
		// TODO: Add any constructor code after initForm call
	}
	
	/**
	 * compiler overrides dispose so it can clean up the
	 * component list.
	 */
	public void dispose()
	{
		super.dispose();
		components.dispose();
	}

	private void btnWord_click(Object source, Event e)
	{
		try{
			if(rEditSource.getText().length()==0)
			{
				MessageBox.show("請輸入源程序!","提示");
				return;
			}
			lrAnalyse=new LRAnalyse();
			rEditError.setText("");
			rEditSym.setText("   符號表");
			rEditToken.setText("  token串");
			lrAnalyse.symTable.recognize(rEditSource.getText());
			for(int i=0;i<lrAnalyse.symTable.symbol.size();i++)
			{
				rEditSym.setText(rEditSym.getText()+"\n"+(String)lrAnalyse.symTable.symbol.elementAt(i)+"\t"+(String)lrAnalyse.symTable.code.elementAt(i));
			}
			for(int i=0;i<lrAnalyse.symTable.tokenSym.size();i++)
			{
				rEditToken.setText(rEditToken.getText()+"\n"+(String)lrAnalyse.symTable.tokenSym.elementAt(i)+"\t"+(String)lrAnalyse.symTable.tokenCode.elementAt(i));
			}
			if(lrAnalyse.symTable.isError)
			{
				rEditError.setText("error: line "+Integer.toString( lrAnalyse.symTable.errorLine)+",column "+Integer.toString(lrAnalyse.symTable.errorColumn));  
				isWordFinished=false;
			}
			else
			{
				isWordFinished=true;
				rEditError.setText("詞法分析成功!");
			}
		}
		catch(NullPointerException ex)
		{
			MessageBox.show(ex.toString());
		}
	}
	private void btnGra_click(Object source, Event e)
	{
			if(isWordFinished)
			{
				lrAnalyse.LrAnalyse();
				lrAnalyse.analyse(false,false);
				rEditFormula.setText("   產(chǎn)生式");
				rEditGroup.setText("   四元組");
				for(int i=0;i<lrAnalyse.formulaVector.size();i++)
				{
					rEditFormula.setText(rEditFormula.getText()+"\n"+(String)lrAnalyse.formulaVector.elementAt(i));
				}
				for(int i=0;i<lrAnalyse.groupVector.size();i++)
				{
					rEditGroup.setText(rEditGroup.getText()+"\n"+((fourGroup)lrAnalyse.groupVector.elementAt(i)).label+":"+"("+((fourGroup)lrAnalyse.groupVector.elementAt(i)).operate+","+((fourGroup)lrAnalyse.groupVector.elementAt(i)).opFirst+","+((fourGroup)lrAnalyse.groupVector.elementAt(i)).opSecond+","+((fourGroup)lrAnalyse.groupVector.elementAt(i)).result+")"); 
				}
				if(lrAnalyse.isError)
				{
					rEditError.setText("error: line "+Integer.toString( lrAnalyse.errorLine)+",column "+Integer.toString(lrAnalyse.errorColumn));  
				}
				else 
				{
					rEditError.setText("語法及語義分析成功!");
				}
			}
			else
			{
				MessageBox.show("請先進(jìn)行詞法分析,并確保詞法正確!");
			}
	}
	
	private void btnExit_click(Object source, Event e)
	{
		System.exit(1);
	}
	private void btnSave_click(Object source, Event e)
	{
		try{
			String fileName=new String();
			String stringTemp=new String();
			int dlgResult =saveFile.showDialog();
			if (dlgResult == DialogResult.OK)
			{
				fileName= saveFile.getFileName(); 
				FileOutputStream outputFile=new FileOutputStream(fileName);
				stringTemp=rEditGroup.getText();
				byte[] byteTemp=stringTemp.getBytes();
				outputFile.write(byteTemp);
			}
		}
		catch(IOException ex)
		{
			MessageBox.show(ex.toString(),"異常",MessageBox.OK);
		}
	}

	private void btnOpen_click(Object source, Event e)
	{
		try{
	
			String strTemp=new String();
			String fileName=new String();
			int dlgResult =openFile.showDialog();
			if (dlgResult == DialogResult.OK)
			{
				fileName= openFile.getFileName();
				FileInputStream inputFile;
				File newFile=new File(fileName);
				BufferedReader bufReader;
				inputFile=new FileInputStream(fileName);
				bufReader=new BufferedReader( new InputStreamReader(inputFile),(int)newFile.length());
				String strData;
				while((strData=bufReader.readLine())!=null)
				{
					strTemp=strTemp+strData+"\n";
				}
				rEditSource.setText(strTemp);
			}
		}
		catch(IOException ex)
		{
			MessageBox.show(ex.toString(),"異常",MessageBox.OK);
		}
	}

	private void btnStep_click(Object source, Event e)
	{
			if(isWordFinished)
			{
				lrAnalyse.LrAnalyse();
				lrAnalyse.analyse(true,true);
				rEditFormula.setText("   產(chǎn)生式");
				rEditGroup.setText("   四元組");
				for(int i=0;i<lrAnalyse.formulaVector.size();i++)
				{
					rEditFormula.setText(rEditFormula.getText()+"\n"+(String)lrAnalyse.formulaVector.elementAt(i));
				}
				for(int i=0;i<lrAnalyse.groupVector.size();i++)
				{
					rEditGroup.setText(rEditGroup.getText()+"\n"+((fourGroup)lrAnalyse.groupVector.elementAt(i)).label+":"+"("+((fourGroup)lrAnalyse.groupVector.elementAt(i)).operate+","+((fourGroup)lrAnalyse.groupVector.elementAt(i)).opFirst+","+((fourGroup)lrAnalyse.groupVector.elementAt(i)).opSecond+","+((fourGroup)lrAnalyse.groupVector.elementAt(i)).result+")"); 
				}
				if(lrAnalyse.isError)
				{
					rEditError.setText("error: line "+Integer.toString( lrAnalyse.errorLine)+",column "+Integer.toString(lrAnalyse.errorColumn));  
				}
				else 
				{
					rEditError.setText("語法及語義單步分析成功!");
				}
			}
			else
			{
				MessageBox.show("請先進(jìn)行詞法分析,并確保詞法正確!");
			}
	}

	private void btnHelp_click(Object source, Event e)
	{
		String strHelp=new String();
		strHelp="1.點擊'打開源程序',打開文件,或直接在文本框中寫入源程序。\n2.點擊'詞法分析',得到符號表和token串。\n3.點擊'語法及語義分析'或'語法及語義單步分析',得到四元組,建議先進(jìn)行'語法及語義分析',然后再進(jìn)行'語法及語義單步分析',便于觀察分析過程。\n4.點擊'保存四元組',保存四元組。\n5.報錯窗口中的列號不計空格。\n6.隨程序附帶個測試文件,test1為無錯源程序,test2有詞法錯誤,test3有語法錯誤,test4有詞法及語法錯誤";
		MessageBox.show(strHelp,"幫助");
	}

	private void btnSaveSource_click(Object source, Event e)
	{
		try{
			String fileName=new String();
			String stringTemp=new String();
			int dlgResult =saveFile.showDialog();
			if (dlgResult == DialogResult.OK)
			{
				fileName= saveFile.getFileName(); 
				FileOutputStream outputFile=new FileOutputStream(fileName);
				stringTemp=rEditSource.getText();
				byte[] byteTemp=stringTemp.getBytes();
				outputFile.write(byteTemp);
			}
		}
		catch(IOException ex)
		{
			MessageBox.show(ex.toString(),"異常",MessageBox.OK);
		}
	}

	/**
	 * NOTE: The following code is required by the Visual J++ form
	 * designer.  It can be modified using the form editor.  Do not
	 * modify it using the code editor.
	 */
	Container components = new Container();
	RichEdit rEditError = new RichEdit();
	Button btnWord = new Button();
	RichEdit rEditSource = new RichEdit();
	RichEdit rEditSym = new RichEdit();
	Button btnSave = new Button();
	Button btnGra = new Button();
	StatusBar staBar = new StatusBar();
	Button btnExit = new Button();
	RichEdit rEditToken = new RichEdit();
	Button btnOpen = new Button();
	RichEdit rEditFormula = new RichEdit();
	RichEdit rEditGroup = new RichEdit();
	OpenFileDialog openFile = new OpenFileDialog();
	SaveFileDialog saveFile = new SaveFileDialog();
	Button btnStep = new Button();
	Button btnHelp = new Button();
	Button btnSaveSource = new Button();

	private void initForm()
	{
		// NOTE:  This form is storing resource information in an
		// external file.  Do not modify the string parameter to any
		// resources.getObject() function call. For example, do not
		// modify "foo1_location" in the following line of code
		// even if the name of the Foo object changes: 
		//   foo1.setLocation((Point)resources.getObject("foo1_location"));

		IResourceManager resources = new ResourceManager(this, "compiler");
		this.setText("類Pascal編譯器 [制作人:張博 1010311012]");
		this.setAutoScaleBaseSize(new Point(6, 12));
		this.setClientSize(new Point(892, 646));
		this.setIcon((Icon)resources.getObject("this_icon"));
		this.setMaximizeBox(false);
		this.setStartPosition(FormStartPosition.CENTER_SCREEN);

		rEditError.setFont(Font.DEFAULT_GUI);
		rEditError.setForeColor(Color.WINDOWTEXT);
		rEditError.setLocation(new Point(8, 592));
		rEditError.setSize(new Point(392, 40));
		rEditError.setTabIndex(13);
		rEditError.setText("");
		rEditError.setReadOnly(true);

		btnWord.setLocation(new Point(248, 16));
		btnWord.setSize(new Point(75, 23));
		btnWord.setTabIndex(3);
		btnWord.setText("詞法分析");
		btnWord.addOnClick(new EventHandler(this.btnWord_click));

		rEditSource.setFont(Font.DEFAULT_GUI);
		rEditSource.setForeColor(Color.WINDOWTEXT);
		rEditSource.setLocation(new Point(8, 56));
		rEditSource.setSize(new Point(392, 528));
		rEditSource.setTabIndex(0);
		rEditSource.setText("");

		rEditSym.setFont(Font.DEFAULT_GUI);
		rEditSym.setForeColor(Color.WINDOWTEXT);
		rEditSym.setLocation(new Point(408, 56));
		rEditSym.setSize(new Point(88, 576));
		rEditSym.setTabIndex(9);
		rEditSym.setText("    符號表");
		rEditSym.setReadOnly(true);
		rEditSym.setScrollBars(RichEditScrollBars.VERTICAL);

		btnSave.setLocation(new Point(560, 16));
		btnSave.setSize(new Point(75, 23));
		btnSave.setTabIndex(6);
		btnSave.setText("保存四元組");
		btnSave.addOnClick(new EventHandler(this.btnSave_click));

		btnGra.setLocation(new Point(320, 16));
		btnGra.setSize(new Point(120, 23));
		btnGra.setTabIndex(4);
		btnGra.setText("語法及語義分析");
		btnGra.addOnClick(new EventHandler(this.btnGra_click));

		staBar.setBackColor(Color.CONTROL);
		staBar.setLocation(new Point(0, 646));
		staBar.setSize(new Point(892, 0));
		staBar.setTabIndex(14);
		staBar.setText("");

		btnExit.setLocation(new Point(704, 16));
		btnExit.setSize(new Point(75, 23));
		btnExit.setTabIndex(8);
		btnExit.setText("退出");
		btnExit.addOnClick(new EventHandler(this.btnExit_click));

		rEditToken.setFont(Font.DEFAULT_GUI);
		rEditToken.setForeColor(Color.WINDOWTEXT);
		rEditToken.setLocation(new Point(504, 56));
		rEditToken.setSize(new Point(88, 576));
		rEditToken.setTabIndex(10);
		rEditToken.setText("   token串");
		rEditToken.setReadOnly(true);
		rEditToken.setScrollBars(RichEditScrollBars.VERTICAL);

		btnOpen.setLocation(new Point(104, 16));
		btnOpen.setSize(new Point(75, 23));
		btnOpen.setTabIndex(1);
		btnOpen.setText("打開源程序");
		btnOpen.addOnClick(new EventHandler(this.btnOpen_click));

		rEditFormula.setFont(Font.DEFAULT_GUI);
		rEditFormula.setForeColor(Color.WINDOWTEXT);
		rEditFormula.setLocation(new Point(600, 56));
		rEditFormula.setSize(new Point(128, 576));
		rEditFormula.setTabIndex(11);
		rEditFormula.setText("    產(chǎn)生式");
		rEditFormula.setReadOnly(true);
		rEditFormula.setScrollBars(RichEditScrollBars.VERTICAL);

		rEditGroup.setFont(Font.DEFAULT_GUI);
		rEditGroup.setForeColor(Color.WINDOWTEXT);
		rEditGroup.setLocation(new Point(736, 56));
		rEditGroup.setSize(new Point(152, 576));
		rEditGroup.setTabIndex(12);
		rEditGroup.setText("     四元組");
		rEditGroup.setReadOnly(true);
		rEditGroup.setScrollBars(RichEditScrollBars.VERTICAL);

		/* @designTimeOnly openFile.setLocation(new Point(96, 496)); */

		/* @designTimeOnly saveFile.setLocation(new Point(16, 496)); */

		btnStep.setLocation(new Point(440, 16));
		btnStep.setSize(new Point(120, 23));
		btnStep.setTabIndex(5);
		btnStep.setText("語法及語義單步分析");
		btnStep.addOnClick(new EventHandler(this.btnStep_click));

		btnHelp.setCursor(Cursor.HELP);
		btnHelp.setLocation(new Point(632, 16));
		btnHelp.setSize(new Point(75, 23));
		btnHelp.setTabIndex(7);
		btnHelp.setText("幫助");
		btnHelp.addOnClick(new EventHandler(this.btnHelp_click));

		btnSaveSource.setLocation(new Point(176, 16));
		btnSaveSource.setSize(new Point(75, 23));
		btnSaveSource.setTabIndex(2);
		btnSaveSource.setText("保存源程序");
		btnSaveSource.addOnClick(new EventHandler(this.btnSaveSource_click));

		this.setNewControls(new Control[] {
							btnSaveSource, 
							btnHelp, 
							btnStep, 
							rEditGroup, 
							rEditFormula, 
							btnOpen, 
							btnSave, 
							rEditToken, 
							btnExit, 
							staBar, 
							btnGra, 
							rEditSym, 
							rEditSource, 
							btnWord, 
							rEditError});
	}

	/**
	 * The main entry point for the application. 
	 *
	 * @param args Array of parameters passed to the application
	 * via the command line.
	 */
	public static void main(String args[])
	{
		Application.run(new compiler());
	}
}

class fourGroup
{
	boolean notFinished;		//===出口是否填完
	int label;					//===標(biāo)號
	String operate;				//===操作碼
	String opFirst;				//===第一操作數(shù)
	String opSecond;			//===第二操作數(shù)
	String result;				//===結(jié)果
	public fourGroup()
	{
		notFinished=true;
		opFirst=" ";
		opSecond=" ";
		result="#";
	}
}
class attribution
{
	int trueList;				//===真出口
	int falseList;				//===假出口
	int nextList;				
	String place;
	public attribution()
	{
		trueList=0;
		falseList=0;
		nextList=0;
	}	
}
class LRAnalyse
{
	LRTable lrTable;			//===分析表
	genFormula genFormu;		//===產(chǎn)生式
	symbolTable symTable;		//===符號表
	Stack symStack;				//===分析棧(非終結(jié)符)
	Stack staStack;				//===分析棧(狀態(tài)號)
	Stack attriStack;			//===屬性棧
	Vector groupVector;			//===四元組
	Vector formulaVector;		//===產(chǎn)生式
	int newtempLabel;			//===標(biāo)識臨時變量下標(biāo)
	int newLabel;				//===標(biāo)識四元組下標(biāo)
	int errorLine;				//===出錯行號
	int errorColumn;			//===出錯列號
	boolean isError;			//===是否有錯
	boolean isStep;				//===是否單步
	public LRAnalyse()
	{
		isStep=false;
		formulaVector=new Vector();
		isError=false;
		errorLine=0;
		errorColumn=0;
		lrTable=new LRTable();
		genFormu=new genFormula();
		symTable=new symbolTable();
		symStack=new Stack();
		staStack=new Stack();
		staStack.push("0");
		symStack.push("$");
		newtempLabel=1;
		newLabel=100;
		attriStack=new Stack();
		groupVector=new Vector();
	}
	//===初始化除詞法外的信息
	void  LrAnalyse()
	{
		isStep=false;
		formulaVector=new Vector();
		isError=false;
		errorLine=0;
		errorColumn=0;
		genFormu=new genFormula();
		symStack=new Stack();
		staStack=new Stack();
		staStack.push("0");
		symStack.push("$");
		newtempLabel=1;
		newLabel=100;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品国产欧美| 色欧美片视频在线观看| 成人黄色在线网站| 91精品婷婷国产综合久久| 国产精品盗摄一区二区三区| 九九国产精品视频| 欧美人xxxx| 夜夜爽夜夜爽精品视频| 成人97人人超碰人人99| 精品美女在线观看| 午夜精品久久久久影视| 色婷婷国产精品| 日韩美女视频一区二区| 国产电影一区在线| 久久中文娱乐网| 久久99久久99精品免视看婷婷| 欧美午夜一区二区三区免费大片| 亚洲婷婷在线视频| 国产伦精一区二区三区| 日韩免费观看高清完整版在线观看| 亚洲韩国精品一区| 在线看国产一区| 亚洲主播在线观看| 91精彩视频在线观看| 亚洲猫色日本管| 一本久久精品一区二区| 亚洲欧美日韩久久精品| 91免费观看视频| 亚洲色图在线看| 日本乱人伦一区| 亚洲国产精品一区二区www| 一本大道久久a久久综合| 亚洲品质自拍视频| 91成人免费在线视频| 一区二区三区加勒比av| 欧美日韩在线精品一区二区三区激情| 亚洲欧洲性图库| 一本大道久久精品懂色aⅴ| 亚洲一区二区视频在线观看| 欧美性色黄大片手机版| 三级久久三级久久久| 日韩区在线观看| 国产99久久久国产精品潘金 | 久久精品一区二区三区不卡| 国产资源在线一区| 国产午夜精品一区二区| caoporm超碰国产精品| 亚洲精品国产a| 欧美精品久久天天躁| 精品在线免费视频| 国产精品三级久久久久三级| 91免费视频大全| 奇米一区二区三区av| 久久女同精品一区二区| 色一区在线观看| 青青草一区二区三区| 国产亚洲欧美在线| 日本乱码高清不卡字幕| 精品综合久久久久久8888| 中文字幕免费在线观看视频一区| 色综合久久88色综合天天6| 日韩电影一二三区| 久久久久久99精品| 欧美综合欧美视频| 久国产精品韩国三级视频| 日韩一区欧美一区| 欧美一级高清片在线观看| 粉嫩在线一区二区三区视频| 亚洲成a人v欧美综合天堂下载| 2020国产精品| 欧美视频在线一区| 丰满白嫩尤物一区二区| 日韩在线a电影| 国产精品久久久久久久久免费相片| 欧美亚洲一区二区三区四区| 久久99久久久欧美国产| 一级精品视频在线观看宜春院 | 欧美精品在线视频| 成人综合婷婷国产精品久久蜜臀| 亚洲成a人片在线观看中文| 国产精品乱码一区二三区小蝌蚪| 在线综合+亚洲+欧美中文字幕| 成人av在线资源| 国产乱码精品一区二区三区五月婷| 亚洲一区二区三区在线| 国产精品午夜在线| 久久综合色婷婷| 欧美一卡在线观看| 欧美色综合影院| 色伊人久久综合中文字幕| 国产精品一二三区| 麻豆国产精品777777在线| 亚洲精品日日夜夜| 国产精品久久国产精麻豆99网站| 欧美不卡一区二区三区四区| 欧美日韩一区二区欧美激情 | 一区二区三区四区精品在线视频| 久久免费电影网| 精品日韩av一区二区| 欧美一区二区三区视频| 欧美日韩欧美一区二区| 色综合久久久久网| 91久久香蕉国产日韩欧美9色| 成人免费视频播放| 国产91精品在线观看| 狠狠色狠狠色综合| 麻豆免费看一区二区三区| 婷婷综合五月天| 偷偷要91色婷婷| 日日摸夜夜添夜夜添精品视频| 亚洲已满18点击进入久久| 亚洲男人天堂av| 亚洲精品国产成人久久av盗摄| 亚洲欧美日韩中文字幕一区二区三区 | 日本aⅴ精品一区二区三区| 一区二区免费看| 亚洲一区成人在线| 亚洲成人精品在线观看| 午夜天堂影视香蕉久久| 日韩av二区在线播放| 久久成人综合网| 国产精品一卡二| www.色精品| 色婷婷综合久久久中文一区二区| 色婷婷综合视频在线观看| 欧美日韩一区二区三区在线看| 欧美日韩在线播放| 日韩女优av电影| 亚洲国产成人一区二区三区| 自拍偷自拍亚洲精品播放| 亚洲第四色夜色| 久久99九九99精品| 不卡视频一二三四| 欧美三级在线视频| 日韩欧美一级在线播放| 国产亚洲成aⅴ人片在线观看| 中文乱码免费一区二区| 亚洲一区二区欧美| 久久91精品久久久久久秒播| 国产成人精品午夜视频免费| 色噜噜狠狠色综合欧洲selulu| 欧美日韩免费一区二区三区 | 亚洲黄一区二区三区| 午夜天堂影视香蕉久久| 国产成人自拍在线| 欧美日韩一区二区在线观看视频 | 国产老肥熟一区二区三区| 不卡一区在线观看| 这里只有精品电影| 国产精品色哟哟| 日韩电影在线一区二区三区| 国产精品一区二区视频| 精品视频在线免费观看| 国产欧美精品国产国产专区| 亚洲综合999| 国产乱码字幕精品高清av| 欧美日韩成人在线一区| 国产日韩欧美不卡| 日本色综合中文字幕| av日韩在线网站| 精品99一区二区三区| 亚洲国产日日夜夜| 成人av免费网站| 久久色.com| 天天av天天翘天天综合网| 成人av在线一区二区| 精品国产免费人成电影在线观看四季| 中文字幕在线不卡一区二区三区| 日韩在线一二三区| 在线免费视频一区二区| 国产精品美女久久久久久久久| 三级影片在线观看欧美日韩一区二区| 成人小视频在线| 久久精品亚洲国产奇米99| 婷婷激情综合网| 99久久综合国产精品| 久久天天做天天爱综合色| 亚洲一区二区三区中文字幕在线| 不卡一区二区在线| 中文幕一区二区三区久久蜜桃| 久久国产精品99精品国产| 欧美日韩日日骚| 亚洲一区二区三区精品在线| aaa国产一区| 国产精品久久久久影视| 国产精品99久久久| 日韩欧美国产麻豆| 免播放器亚洲一区| 7777精品伊人久久久大香线蕉| 亚洲狼人国产精品| 日本福利一区二区| 亚洲精品国产一区二区精华液 | 亚洲国产成人porn| 欧美中文字幕一区| 夜夜揉揉日日人人青青一国产精品| va亚洲va日韩不卡在线观看| 欧美高清在线一区二区| 国产一区二区三区最好精华液| 日韩欧美亚洲一区二区| 欧美a一区二区|