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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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("   產生式");
				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("請先進行詞法分析,并確保詞法正確!");
			}
	}
	
	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("   產生式");
				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("請先進行詞法分析,并確保詞法正確!");
			}
	}

	private void btnHelp_click(Object source, Event e)
	{
		String strHelp=new String();
		strHelp="1.點擊'打開源程序',打開文件,或直接在文本框中寫入源程序。\n2.點擊'詞法分析',得到符號表和token串。\n3.點擊'語法及語義分析'或'語法及語義單步分析',得到四元組,建議先進行'語法及語義分析',然后再進行'語法及語義單步分析',便于觀察分析過程。\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("    產生式");
		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;					//===標號
	String operate;				//===操作碼
	String opFirst;				//===第一操作數
	String opSecond;			//===第二操作數
	String result;				//===結果
	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;		//===產生式
	symbolTable symTable;		//===符號表
	Stack symStack;				//===分析棧(非終結符)
	Stack staStack;				//===分析棧(狀態號)
	Stack attriStack;			//===屬性棧
	Vector groupVector;			//===四元組
	Vector formulaVector;		//===產生式
	int newtempLabel;			//===標識臨時變量下標
	int newLabel;				//===標識四元組下標
	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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产在线观看| 中文字幕第一区第二区| 国产成人精品aa毛片| 99久久久精品| 99在线热播精品免费| 日韩视频免费观看高清完整版 | 久久国产精品72免费观看| 成人国产在线观看| 成人av电影在线网| 91精品国产综合久久精品图片| 精品视频123区在线观看| 一本到三区不卡视频| 久久久精品免费免费| 欧美国产综合一区二区| 全国精品久久少妇| 欧美影视一区二区三区| 中文字幕一区二区视频| 最新高清无码专区| 亚洲一区二区三区四区在线| 国产99一区视频免费| 欧美成人aa大片| 秋霞国产午夜精品免费视频| 欧美二区三区的天堂| 精品久久人人做人人爱| 婷婷一区二区三区| 欧美日韩高清不卡| 久久精品视频一区二区三区| 日本伊人午夜精品| 日韩欧美一卡二卡| 中文字幕一区二区三区在线播放| 综合色天天鬼久久鬼色| 亚洲福利一区二区| 久草在线在线精品观看| 欧美午夜不卡在线观看免费| 日韩视频一区二区三区在线播放 | 亚洲精品一线二线三线无人区| 国产婷婷精品av在线| 国内精品伊人久久久久影院对白| 成人免费观看视频| 91精品国产综合久久久久| 国产欧美一区二区在线| 国产精品亚洲人在线观看| 日本一区二区在线不卡| 91网站在线观看视频| 一区二区三区在线视频免费| 欧美午夜一区二区三区| 亚洲风情在线资源站| 欧美一级黄色录像| 狠狠色伊人亚洲综合成人| 久久亚洲综合av| 成人午夜私人影院| 亚洲成人一区在线| av午夜一区麻豆| 亚洲精品国产第一综合99久久| 国产一区视频网站| 国产精品久久久一本精品| 在线亚洲高清视频| 日韩在线卡一卡二| 亚洲精品在线网站| 日本精品一区二区三区四区的功能| 精品免费日韩av| 成+人+亚洲+综合天堂| 亚洲国产人成综合网站| 欧美成人vr18sexvr| 日韩不卡一二三区| 国产性天天综合网| 精品视频1区2区| 国产在线精品一区二区三区不卡 | 国产成人a级片| 亚洲午夜精品17c| 日韩欧美一级特黄在线播放| 成人av动漫网站| 另类小说视频一区二区| 亚洲天堂免费在线观看视频| 日韩一级片在线播放| 性欧美疯狂xxxxbbbb| 一本大道久久a久久精品综合| 午夜免费久久看| 国产女人aaa级久久久级| 国产一区二区导航在线播放| 亚洲欧洲国产日韩| 精品美女一区二区三区| 久久成人久久鬼色| 亚洲黄色录像片| 久久久亚洲综合| 国产成人夜色高潮福利影视| 亚洲精品中文字幕乱码三区| 精品少妇一区二区三区| 国产资源在线一区| 国产日韩欧美激情| 国产精一区二区三区| 亚洲国产一区视频| 6080国产精品一区二区| 97久久超碰国产精品电影| 综合激情成人伊人| 国产欧美一区在线| 精品成人一区二区三区四区| 在线精品观看国产| 日本不卡视频在线| 一区二区三区四区亚洲| 欧美激情一区二区三区全黄| 欧美本精品男人aⅴ天堂| 欧美三级日本三级少妇99| 91在线一区二区| 香蕉久久夜色精品国产使用方法| 国产精品午夜春色av| 91福利国产精品| 91美女精品福利| 93久久精品日日躁夜夜躁欧美| 亚洲一区日韩精品中文字幕| 欧美日韩一区二区三区在线 | 中文字幕精品一区二区三区精品| 欧美一级欧美一级在线播放| 7777女厕盗摄久久久| 91精品国产综合久久久久久| 欧美日本一区二区三区| 国产老妇另类xxxxx| 国产精品初高中害羞小美女文| 26uuu精品一区二区| 色婷婷综合久久久| 色噜噜狠狠色综合欧洲selulu | 精品一区二区成人精品| 亚洲视频1区2区| 亚洲黄色av一区| 久久精品欧美一区二区三区不卡| 91一区二区三区在线播放| 免费的国产精品| 成人欧美一区二区三区白人 | 96av麻豆蜜桃一区二区| 在线一区二区视频| 在线综合亚洲欧美在线视频| 91精品麻豆日日躁夜夜躁| 成年人国产精品| 久久国产视频网| 一区二区三区欧美| 亚洲一区二区四区蜜桃| 午夜久久久久久久久| 美女久久久精品| 粉嫩绯色av一区二区在线观看| 成人精品国产一区二区4080| 色婷婷亚洲一区二区三区| 欧美日韩国产bt| 国产午夜精品理论片a级大结局 | 日韩av不卡一区二区| 国产精品乱人伦| 久久久综合九色合综国产精品| 色噜噜狠狠色综合中国| 欧美日韩亚洲不卡| 国产色综合一区| 欧美xxxx在线观看| 欧美日韩极品在线观看一区| 99国产欧美另类久久久精品| 欧美三级电影网| 久久久91精品国产一区二区精品 | 91浏览器打开| av爱爱亚洲一区| 成人动漫一区二区三区| 国产在线看一区| 国产制服丝袜一区| 欧美性视频一区二区三区| 精品国产一区二区三区忘忧草| 日韩一区二区三区av| 欧美一区二区三区小说| 国产午夜一区二区三区| 午夜精品成人在线视频| 午夜精品久久久久久久久久| 国产在线精品视频| 国产成人久久精品77777最新版本| 久久99精品国产.久久久久| 蜜臀久久99精品久久久久宅男| 午夜成人在线视频| 免费成人在线影院| 欧美最新大片在线看| 欧美综合色免费| 国产精品久久看| 国产伦精品一区二区三区免费迷| 国产一区二区看久久| 国产jizzjizz一区二区| 9久草视频在线视频精品| 97久久精品人人做人人爽50路| 91首页免费视频| 久久久一区二区三区捆绑**| 午夜欧美电影在线观看| 看片网站欧美日韩| 欧美视频一区在线观看| 亚洲欧美中日韩| 成年人网站91| 中文字幕免费不卡| 亚洲永久精品大片| 99久久精品国产麻豆演员表| 久久美女艺术照精彩视频福利播放| 国产清纯美女被跳蛋高潮一区二区久久w| 日本一区二区三区国色天香 | 欧美日韩国产高清一区| 欧美一区三区二区| 亚洲成人免费电影| 欧美日韩亚洲综合| 午夜久久久影院| 国产高清精品久久久久| 26uuu精品一区二区三区四区在线|