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

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

?? parser.java

?? java的Applet 表達式解析器. 采用遞歸下隆解析法.可以進行四剛運算. 乘方,括號等正剛運算
?? JAVA
字號:
/*
 * 創建日期 2005-4-4
 *
 * TODO 要更改此生成的文件的模板,請轉至
 * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
 */

/**
 * @author Administrator
 *
 * TODO 遞歸下降法解析表達式
 * 表達式充許:加,減,乘,除,乘方,括號
 */
class Parser {
	//定義表達式項的類型:占位符,分隔符,變量,數值
	final int NONE =0;
	final int DELIMITER=1;
	final int VARIABLE=2;
	final int NUMBER=3;
	//定義錯誤類型:
	final int SYNTAX=0;
	final int UNBALPARENS=1;
	final int NOEXP=2;
	final int DIVBYZERO=3;
	//定義表達式的結束符
	final String EOE="\0";
	//表達式
	private String exp;
	//當前表達式索引
	private int expIdx;
	//當前表達式的項
	private String token;
	//當前項的類型
	private int tokType;
	//變量的值存儲表
	private double vars[]=new double[26];
	//表達式解析入口
	public double evaluate(String expstr) throws ParserException
	{
		double result;
		exp=expstr;
		expIdx=0;
		
		getToken();
		//沒有表達式出錯
		if(token.equals(EOE))
			handleErr(NOEXP);
		//執行表達式解析
		result=evalExp1();
		//表達式沒有結束符
		if(!token.equals(EOE))
			handleErr(SYNTAX);
		return result;
	}
	//處理變量的值
	private double evalExp1() throws ParserException
	{
		double result;
		int varIdx;
		int ttokType;
		String temptoken;
		if(tokType==VARIABLE)
		{
			//保存當前項
			temptoken=new String(token);
			ttokType=tokType;
			//記錄變量的下標
			varIdx=Character.toUpperCase(token.charAt(0))-'A';
			getToken();
			if(!token.equals("=")){
				putBack();//返回到取本次取等號之前
				token = new String(temptoken);
				tokType=ttokType;
			}
			else{
				getToken();
				result = evalExp2();
				vars[varIdx]=result;
				return result;
			}
		}
		return evalExp2();
	}
	/*加,減兩個項
	 * 
	 */
	private double evalExp2() throws ParserException
	{
		char op;
		double result;
		double partialResult;
		
		result=evalExp3();
		while((op=token.charAt(0))=='+'||op=='-'){
			getToken();
			partialResult=evalExp3();
			switch(op){
			case '-':
				result = result - partialResult;
				break;
			case '+':
				result = result + partialResult;
				break;
			}
		}
		return result;
	}
	//對兩個因數 乘,除,或取余
	private double evalExp3() throws ParserException
	{
		char op;
		double result;
		double partialResult;
		
		result = evalExp4();
		
		while((op= token.charAt(0))=='*'||op=='/'||op=='%'){
			getToken();
			partialResult=evalExp4();
			switch(op){
			case '*':
				result=result*partialResult;
				break;
			case '/':
				if(partialResult==0.0)
					handleErr(DIVBYZERO);
				result=result/partialResult;
				break;
			case '%':
				if(partialResult==0.0)
					handleErr(DIVBYZERO);
				result=result%partialResult;
				break;
			}
		}
		return result;
	}
	//乘方處理
	private double evalExp4() throws ParserException
	{
		double result;
		double partialResult;
		double ex;
	    int t;
	    result =evalExp5();
	    if(token.equals("^")){
	    	getToken();
	    	partialResult=evalExp4();
	    	ex=result;
	    	if(partialResult==0.0){
	    		result=1.0;
	    	}
	    	else{
	    		for(t=(int)partialResult-1;t>0;t--)
	    			result = result * ex;
	    	}
	    }
	    return result;
	}
	//正負號的處理
	private double evalExp5() throws ParserException
	{
		double result;
		String op;
		op="";
		if((tokType == DELIMITER) && token.equals("+")|| token.equals("-")){
			op=token;
			getToken();
		}
		result = evalExp6();
		if(op.equals("-")) result= -result;
		return result;
	}
	//括號的處理
	private double evalExp6() throws ParserException
	{
		double result;
		
		if(token.equals("(")){
			getToken();
			result= evalExp2();
			if(!token.equals(")"))
				handleErr(UNBALPARENS);
			getToken();
		}
		else
			result =atom();
		return result;
	}
	//獲取表達式中的數值因數
	private double atom() throws ParserException
	{
		double result=0.0;
		switch(tokType){
		case NUMBER:
			try{
				result=Double.parseDouble(token);
			}
			catch(NumberFormatException exc){
				handleErr(SYNTAX);
			}
			getToken();
			break;
		case VARIABLE:
			result=findVar(token);
			getToken();
			break;
		default:
			handleErr(SYNTAX);
		    break;
		}
		return result;
	}
	/*
	 * 獲最變量名第一個字符與A的偏移量為下標的數組里的變量值
	 */
	private double findVar(String vname) throws ParserException
	{
		if(!Character.isLetter(vname.charAt(0))){
			handleErr(SYNTAX);
			return 0.0;
		}
		return vars[Character.toUpperCase(vname.charAt(0))-'A'];
	}
    /*
     * 將表達式的輸入字符后退到當前處理之前
     */
	private void putBack()
    {
    	if(token==EOE) return;
    	for(int i=0;i<token.length();i++) expIdx--;
    }
	//捕捉出錯
	private void handleErr(int error) throws ParserException
	{
		String[] err={
				"錯誤0: 非正則表達式錯誤!",
				"錯誤1: 表達式中括號不匹配!",
				"錯誤2: 沒有表達式!",
				"錯誤3: 除零錯!"
		};
		//拋出異常
		throw new ParserException(err[error]);
	}
	//獲取表達式的下一項
	private void getToken()
	{
		//將當前項置空
		tokType=NONE;
		token="";
		
		//檢查表達式是否結束
		if(expIdx == exp.length()){
			token = EOE;
			return;
		}
		//去除空白符
		while(expIdx<exp.length() && Character.isWhitespace(exp.charAt(expIdx)))
			++expIdx;
		//去空白符后,再次檢查是否結束
		if(expIdx == exp.length()){
			token = EOE;
			return;
		}
		//當前項為分隔符
		if(isDelim(exp.charAt(expIdx))){
			token += exp.charAt(expIdx);
			expIdx++;
			tokType = DELIMITER;
		}//當前項為變量,變量只有第一個字母有意義 
		else if(Character.isLetter(exp.charAt(expIdx))){
			while(!isDelim(exp.charAt(expIdx))){
				token += exp.charAt(expIdx);
				expIdx++;
				if(expIdx>=exp.length()) break;
			}
			tokType= VARIABLE;
		}//當前項為數值
		else if(Character.isDigit(exp.charAt(expIdx))){
			while(!isDelim(exp.charAt(expIdx))){
				token += exp.charAt(expIdx);
				expIdx++;
				if(expIdx>=exp.length()) break;
			}
			tokType = NUMBER;
		}//結束
		else{
			token=EOE;
			return;
		}
	}
	
	/**檢查是否為分隔符
	 * @param c
	 * @return
	 */
	private boolean isDelim(char c) {
		// TODO 自動生成方法存根
		if((" +-/*%^=()".indexOf(c) != -1))
			return true;
		else
			return false;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲a| 国产精品亚洲一区二区三区在线 | 日韩一区二区三区四区| 色av成人天堂桃色av| 97久久精品人人澡人人爽| www.爱久久.com| 99精品欧美一区| 日本高清不卡视频| 在线看日本不卡| 欧美日韩精品一区二区三区四区| 色av成人天堂桃色av| 欧美日韩国产高清一区二区三区 | 国产精品影音先锋| 天天影视涩香欲综合网| 欧美电影精品一区二区| 一二三区精品福利视频| 91福利在线免费观看| 日韩福利电影在线| 国产精品网曝门| 国产欧美日产一区| 欧美日韩成人一区| 色综合天天综合色综合av| 91丝袜国产在线播放| 一区二区三区影院| 午夜亚洲国产au精品一区二区| 久久嫩草精品久久久精品一| 91黄视频在线观看| 欧美日韩免费电影| 日韩欧美成人午夜| 国产午夜三级一区二区三| 中文字幕在线观看一区二区| 一区二区三区免费在线观看| 水蜜桃久久夜色精品一区的特点| 琪琪一区二区三区| 粉嫩在线一区二区三区视频| www.久久久久久久久| 欧美色图激情小说| 精品人在线二区三区| 欧美激情艳妇裸体舞| 午夜精品久久久| 国产精品一区二区在线播放| a级高清视频欧美日韩| 欧美久久一二三四区| 久99久精品视频免费观看| 成人网在线免费视频| 精品视频在线免费观看| 久久久久国产精品厨房| 亚洲国产美国国产综合一区二区| 久久精品国产澳门| 色噜噜狠狠色综合中国| 久久老女人爱爱| 亚洲国产精品影院| 国产99久久精品| 欧美三级在线看| 国产日韩三级在线| 亚洲mv在线观看| av在线免费不卡| 久久蜜桃av一区精品变态类天堂 | 久久亚洲精精品中文字幕早川悠里| 中文字幕一区三区| 久久精品国产一区二区三| 欧美在线三级电影| 久久精品人人做| 免费在线观看一区| 欧美综合亚洲图片综合区| 久久九九影视网| 久久不见久久见免费视频1 | 综合久久久久久久| 精品一区二区三区久久| 在线观看日韩电影| 成人免费一区二区三区视频 | 亚洲精品在线电影| 午夜激情久久久| 色婷婷激情一区二区三区| 国产精品五月天| 久久狠狠亚洲综合| 69久久99精品久久久久婷婷 | 国产做a爰片久久毛片 | 亚洲丰满少妇videoshd| 91天堂素人约啪| 亚洲国产经典视频| 国产精品自拍三区| 欧美成人三级在线| 久久国产成人午夜av影院| 91精品国产欧美一区二区18| 亚洲一区二区三区在线看| 91丨porny丨在线| 国产精品五月天| 成人美女视频在线观看| 久久久国产一区二区三区四区小说| 麻豆成人91精品二区三区| 91麻豆精品国产91久久久使用方法| 一区二区三区精品视频| 色婷婷综合久色| 一级做a爱片久久| 91久久精品一区二区| 一区二区三区四区视频精品免费| www.亚洲激情.com| 18欧美亚洲精品| 26uuu亚洲综合色| 精品一区二区三区久久| 久久久久青草大香线综合精品| 激情欧美一区二区三区在线观看| 精品久久五月天| 国产乱子伦视频一区二区三区| 日韩免费观看2025年上映的电影 | 一本一道久久a久久精品 | 国产成人夜色高潮福利影视| 久久久午夜精品理论片中文字幕| 国产麻豆视频精品| 国产精品麻豆99久久久久久| 99精品视频一区| 亚洲专区一二三| 在线成人免费观看| 久久国产剧场电影| 久久久久久久久久久黄色| 国产成人免费xxxxxxxx| 日韩美女久久久| 欧美日韩精品免费| 久久精品免费观看| 国产免费观看久久| 91丨九色丨黑人外教| 亚洲午夜一区二区三区| 欧美大片免费久久精品三p| 国产真实乱对白精彩久久| 国产精品福利一区二区三区| 色菇凉天天综合网| 免费高清在线视频一区·| 久久综合色8888| 99视频在线精品| 日韩精彩视频在线观看| 久久久美女毛片| 91小视频在线观看| 日韩电影在线观看电影| 久久久久久**毛片大全| 日本韩国精品在线| 老司机一区二区| 国产精品久久久久久妇女6080| 欧美在线免费观看亚洲| 捆绑变态av一区二区三区| 国产精品全国免费观看高清 | 在线日韩一区二区| 麻豆久久久久久久| 日韩理论片在线| 日韩区在线观看| www.日韩在线| 另类小说欧美激情| 一区二区三区四区中文字幕| 精品国精品自拍自在线| 色天使色偷偷av一区二区| 精品午夜久久福利影院| 亚洲精品中文字幕在线观看| 欧美成人高清电影在线| 91视频免费看| 九一久久久久久| 亚洲成av人片| 亚洲视频在线观看三级| 日韩精品自拍偷拍| 在线日韩一区二区| 国产白丝网站精品污在线入口| 亚洲五码中文字幕| 中文字幕av一区二区三区 | 亚洲v日本v欧美v久久精品| 日本一区免费视频| 欧美一区二区三区思思人| 99精品热视频| 国产成人夜色高潮福利影视| 日本v片在线高清不卡在线观看| 国产精品九色蝌蚪自拍| 欧美tickling网站挠脚心| 欧美日韩午夜在线| 91在线观看美女| 国产成人精品1024| 狠狠网亚洲精品| 免费成人性网站| 亚洲午夜影视影院在线观看| 国产精品另类一区| 26uuuu精品一区二区| 制服.丝袜.亚洲.中文.综合| 91麻豆福利精品推荐| 国产a久久麻豆| 激情欧美一区二区| 日本中文在线一区| 亚洲大片免费看| 亚洲自拍另类综合| 一区二区三区精品| 日韩美女视频一区| 中文字幕日韩精品一区| 亚洲国产高清aⅴ视频| 久久久无码精品亚洲日韩按摩| 欧美一区午夜视频在线观看| 欧美三级电影网站| 欧美日韩一区在线观看| 欧美自拍偷拍一区| 日本道色综合久久| 在线精品视频免费播放| 在线视频你懂得一区| 91国产视频在线观看| 色哟哟在线观看一区二区三区| 91在线观看下载|