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

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

?? wordanalysis.java

?? 一個實現了pascal語法的詞法分析器
?? JAVA
字號:
/*
 * Created on 2006-4-3
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package wordmachine;
import  java.util.Vector;
import  java.io.*;

/**
 * @author Tang Qin;
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class WordAnalysis {
	static String		inLine = null;								                  //從文件讀入的一行字符串;
	static int			currPointer = 0;					                  //當前要讀入的字符的指針;
	static char         currChar = ' ';
	static String		strToken = "";					                  //識別出的單個單詞;
	static String[]     resWord = {"ID","VAR","BEGIN","END","INT","IF",       //保留字表;
                                  "THEN","ELSE","WHILE","DO","PROCEDURE"}; 
    static boolean      error = false;    
    static Vector       tokenVector = new Vector();   
    static int          lineNO = 0;                    
	
	public static void main(String[] args) 
	{ 
		File              sourceFile;
		BufferedReader    source;
		
		try{
		InputStreamReader din = new InputStreamReader(System.in);
		BufferedReader    in  = new BufferedReader(din);
		System.out.print("請輸入源文件路徑:\n");
		sourceFile = new File(in.readLine());
		source     = new BufferedReader(new FileReader(sourceFile));          //建立源文件輸入流;
		inLine     = source.readLine();
		
		
		WordAnalysis wordAnalysis = new WordAnalysis();
		
		                                                                      //總控制流程,以每行為單位輸入字符串,并對其進行處理
		   while(inLine!=null)
		   {
		   	    //System.out.println(lineNO+":"+inLine+" length:"+inLine.length());
		   	    
				currPointer = 0;                                                   //將指針指向第一個
				while(currPointer < inLine.length())
				{                                                                  //從中識別出單個單詞的總控制方法,并將得出的單詞及其屬性的相關信息做成一個節點,插入鏈表。
					strToken = "";
	       			wordAnalysis.getWord();
	       		}
		   		inLine = source.readLine();
		   		lineNO += 1;
		   }
		   if(!error)
		  { 
		  	System.out.println("請輸入輸出的XML文件路徑:");
		  	WriteXml writexml = new WriteXml(in.readLine());
		  	int i;
		  	for(i=0;i<tokenVector.size();i++)
		  	{
		  		
		  		Token temp;
		  		temp = (Token)tokenVector.elementAt(i);
				writexml.toWrite(temp.lineNO,temp.token,temp.type);
		  	}
		  	writexml.toSave();
		  }
		  }
		 
		catch(Exception E)
		{
			
			E.printStackTrace();
		}
	}

//********從中識別出單個單詞的總控制方法,并將得出的單詞及其屬性的相關信息做成一個節點,插入鏈表,在每讀入一個字符之前都要先判斷是否是否越界;且此方法調用完后應指向下一個單詞的開始點****** 
	public void getWord()
	{
		int code;
		getChar();
		getBC();                                                 //每一行的最后一個字符一定不是是回車符,若是空隔符,則說明是最后一個;
		if(Character.isLetter(currChar))
		{
			while(Character.isLetterOrDigit(currChar))
			{
				strToken = strToken.concat(String.valueOf(currChar));
				if(currPointer >= inLine.length())
				break;
				getChar();                                           
			}                                                   //退出情況有兩種,1:一行處理完畢;2:碰到非字母與數字;
			if(!Character.isLetterOrDigit(currChar))            //若是應為非字母與數字退出,就要回溯;
			retract();
			code = reserve(strToken);                           //返回關鍵字或標識符的編碼;
			insertWord(strToken,resWord[code],lineNO);
		}
		else if(Character.isDigit(currChar))
		{
			while(Character.isDigit(currChar))
			{
				strToken = strToken.concat(String.valueOf(currChar));
				if(currPointer >= inLine.length())
				break;
				getChar();
			}
			if(!Character.isDigit(currChar))
			retract();
			insertWord(strToken,"CONST",lineNO);
		}
		else switch(currChar)
		{
			case ':' : 
			{
				
				if(currPointer<inLine.length())
				{
					getChar();
					if(currChar=='=')
					insertWord(":=","ASSIGN",lineNO);
					else 
					{
						retract();
						insertWord(":","COLON",lineNO);
					}
				} 
				else
				{
					insertWord(":","COLON",lineNO);
				}
				
			} break;
			case ',' : 
			{
				insertWord(",","COMMA",lineNO);
			} break;
			case ';' : 
			{
				insertWord(";","SEMI",lineNO);
			} break;
			case '(' :
			{
				insertWord("(","LPAREN",lineNO);
			} break;
			case ')' :
			{
				insertWord(")","RPAREN",lineNO);
			} break;
			case '+' :
			{
				insertWord("+","PLUS",lineNO);
			} break;
			case '-' :
			{
				insertWord("-","MINUS",lineNO);
			} break;
			case '*' :
			{
				insertWord("*","MULTIPLY",lineNO);
			} break;
			case '/' :
			{
				insertWord("/","DEVISION",lineNO);
			} break;
			case '>' :
			{
				if(currPointer<inLine.length())
				{
					getChar();
					if(currChar=='=')
					insertWord(">=","GOREQUAL",lineNO);
					else 
					{
						retract();
						insertWord(">","GREATER",lineNO);
					}
				} 
				else
				{
					insertWord(">","GREATER",lineNO);
				}			
			} break;
			case '<' :
			{
				if(currPointer<inLine.length())
				{
					getChar();
					if(currChar=='=')
					insertWord("<=","LOREQUAL",lineNO);
					else 
					{
						retract();
						insertWord("<","LOWER",lineNO);
					}
				} 
				else
				{
					insertWord("<","LOWER",lineNO);
				}			
			} break;
			case '=' :
			{
				if(currPointer<inLine.length())
				{
					getChar();
					if(currChar=='=')
					insertWord("==","EQUAL",lineNO);
					else 
					{
						retract();
						errorHandle("=",lineNO);
					}
				} 
				else
				{
					errorHandle("=",lineNO);
				}							
			} break;
		  
		   case ' ' :   ; break;
		   case '\t':   ; break;
		   default   :   errorHandle(String.valueOf(currChar),lineNO);
			
		}
		
	}
//***************單個單詞獲取完畢*********************************************************************************************************************************************************

//***************獲取當前前指針所指向的字符**************************************************************
	public void getChar() 
	{
		
		currChar = inLine.charAt(currPointer );                     //獲取當前指針指向的字符; 
		currPointer += 1;                                           //將指針向前加1;
		
		
	}
//**************獲取當前字符處理完畢******************************************************************

//**************返回所取得的單詞的編碼,若為保留字,則返回它的編碼,否則返回0,0不是保留字的編碼******
	public int reserve(String t_strToken)
	{
		int code = 0;
		int    i = 1   ;
		for(i = 1;i < resWord.length;i++ )
		{
			if (resWord[i].equals(t_strToken))
			{
				code = i;
				break;
				//System.out.print(resWord[i]);
			
			}
		//	System.out.println("code:"+code+" token="+t_strToken);
		//	System.out.println("length==="+resWord.length);
			
		}
		
		return code;
	}
//*****************單個單詞編碼返回完畢***************************************************************

//*****************將搜索指示器向回移動一個位置,回溯;并將currChar置為' '****************************	
	public void retract()
	{
		currPointer -= 1;
		currChar     = ' ';
	}
//*****************回溯處理完畢************************************************************************

//*****************屏蔽每個單詞開始之前的空格**********************************************************
	public void getBC()
	{
		while(currChar == ' '||currChar == '\t')
		{
			if(currPointer>=inLine.length())
			return;
			getChar();
			
		}
	}
//*****************空格符屏蔽完畢**********************************************************************
 
//*****************將識別出的單詞,及其類型的相關信息形成一個節點,并插入Vector中;********************
	public void insertWord(String t_strToken,String t_type,int t_lineNO)
	{
		Token token = new Token(t_lineNO,t_type,t_strToken);
		tokenVector.addElement(token);
	}
//*****************插入單詞處理完畢******************************************************************

//*****************出錯處理**************************************************************************
	public void errorHandle(String t_strToken,int t_lineNO)
	{
		System.out.println("\nERROR:in Line "+t_lineNO+" "+t_strToken+" is not legal!!!!!!");
		error = true;
	}
//*****************出錯處理完畢**********************************************************************
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久综合网站| 91精品啪在线观看国产60岁| 精品午夜一区二区三区在线观看| 亚洲另类在线制服丝袜| 亚洲视频电影在线| 日韩久久一区二区| 日韩一区中文字幕| 国产精品成人免费在线| 国产精品久久久久久久裸模| 欧美国产日韩亚洲一区| 中文字幕亚洲一区二区av在线 | 欧美一级二级在线观看| 欧美精品高清视频| 日韩一本二本av| 精品sm在线观看| 国产精品色哟哟| 亚洲人成影院在线观看| 亚洲精品成人在线| 亚洲第一精品在线| 蜜臀va亚洲va欧美va天堂| 久久成人精品无人区| 国产夫妻精品视频| 色先锋aa成人| 69久久99精品久久久久婷婷| 精品乱人伦小说| 欧美高清在线一区| 亚洲一级片在线观看| 婷婷综合在线观看| 国产美女精品一区二区三区| 一本一本久久a久久精品综合麻豆| 欧美性生交片4| 精品国产三级a在线观看| 国产精品久久久久影院亚瑟| 一个色妞综合视频在线观看| 蜜桃av一区二区三区电影| 国产成人在线网站| 欧美综合欧美视频| 精品久久久久久久人人人人传媒| 国产精品久久久久久福利一牛影视| 亚洲综合视频在线| 久久精品国产澳门| 91精品福利视频| 精品久久国产老人久久综合| 亚洲人成精品久久久久| 久久99精品国产麻豆不卡| 91麻豆swag| 久久女同精品一区二区| 亚洲国产人成综合网站| 国产精品一二三在| 欧美一区二区三区公司| 亚洲精品视频一区二区| 成人综合在线观看| 日韩精品在线网站| 亚洲va在线va天堂| 91麻豆精品一区二区三区| 国产亚洲一区二区三区四区| 亚洲风情在线资源站| jizz一区二区| 久久久久高清精品| 视频一区国产视频| 欧美性一区二区| 亚洲人亚洲人成电影网站色| 国产东北露脸精品视频| 精品国产凹凸成av人导航| 日韩高清在线不卡| 欧美日韩在线精品一区二区三区激情| 国产欧美一二三区| 狠狠色丁香九九婷婷综合五月| 91精品国产色综合久久久蜜香臀| 亚洲免费毛片网站| 99久久久久久99| 久久久国产精华| 国模套图日韩精品一区二区| 日韩一卡二卡三卡| 美女网站一区二区| 欧美电影免费提供在线观看| 久久精品国产久精国产爱| 欧美丰满少妇xxxbbb| 无吗不卡中文字幕| 制服丝袜在线91| 蜜臀av性久久久久蜜臀aⅴ| 欧美老女人第四色| 日本欧美韩国一区三区| 日韩三级电影网址| 久久成人羞羞网站| 久久久久久久久久电影| 国产成人免费9x9x人网站视频| 久久久久99精品国产片| 国产成人福利片| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产日韩欧美一区二区三区综合| 久久精品久久99精品久久| 亚洲精品在线电影| 粉嫩av亚洲一区二区图片| 国产精品美女久久久久久久网站| 91美女视频网站| 午夜国产精品影院在线观看| 91精品国产乱码久久蜜臀| 国产资源在线一区| 中文字幕视频一区| 欧美亚洲国产怡红院影院| 视频一区在线视频| 久久精品在这里| 色综合久久88色综合天天6| 亚洲成人第一页| 久久欧美一区二区| 日本精品免费观看高清观看| 日本亚洲三级在线| 中文字幕免费在线观看视频一区| 91丨porny丨首页| 日本不卡一二三| 国产精品网友自拍| 欧美日本一道本在线视频| 激情综合色综合久久综合| 中文字幕一区二区三区不卡在线| 欧美精品在线观看播放| 国产精品一区二区三区网站| 亚洲高清视频在线| 久久这里只有精品视频网| 在线观看亚洲a| 国产91精品入口| 日本中文在线一区| 亚洲免费在线电影| 国产亚洲成年网址在线观看| 欧美日韩精品欧美日韩精品一| 国产xxx精品视频大全| 亚洲18女电影在线观看| 国产精品美女久久福利网站| 欧美一区二区在线观看| 色综合av在线| 国产丶欧美丶日本不卡视频| 日韩av电影天堂| 一区二区在线看| 中文字幕亚洲一区二区av在线| 精品久久国产字幕高潮| 制服丝袜一区二区三区| 色94色欧美sute亚洲线路二| 国产精品91xxx| 免费成人在线观看| 亚洲成人中文在线| 一区二区三区日韩在线观看| 中文字幕中文字幕在线一区| 国产色综合一区| 欧美精品一区二区三区很污很色的| 欧美日韩中文字幕一区| 色综合久久中文字幕| av亚洲精华国产精华精| 成人听书哪个软件好| 国产精品中文字幕一区二区三区| 免费在线观看成人| 男人的天堂久久精品| 日本美女视频一区二区| 亚洲成av人片| 五月婷婷久久综合| 亚洲一区二区三区四区中文字幕 | 91美女视频网站| 99精品欧美一区二区蜜桃免费| 成人国产精品免费| 丁香婷婷综合五月| av激情综合网| 色www精品视频在线观看| 色偷偷久久一区二区三区| 在线观看日韩电影| 欧美在线视频日韩| 欧美日韩国产美女| 日韩一区二区高清| 久久午夜免费电影| 国产精品视频第一区| 亚洲另类在线制服丝袜| 亚洲一级在线观看| 青青草97国产精品免费观看| 久久99国产精品麻豆| 国产久卡久卡久卡久卡视频精品| 国产成人亚洲精品青草天美| 99久久er热在这里只有精品15| 91黄色激情网站| 91精品国产乱码久久蜜臀| 久久精品一区八戒影视| 国产精品色哟哟| 午夜精品福利一区二区三区av | 国产欧美精品区一区二区三区 | 欧洲av一区二区嗯嗯嗯啊| 欧美日韩精品三区| 2023国产精华国产精品| 亚洲欧美另类图片小说| 日日欢夜夜爽一区| 粉嫩av一区二区三区在线播放| 欧美在线视频日韩| 精品成人佐山爱一区二区| 国产精品毛片久久久久久| 亚洲一区二区三区四区在线免费观看 | 中文字幕一区三区| 亚洲成a人v欧美综合天堂| 精品一区二区三区欧美| 97精品国产露脸对白| 日韩视频免费观看高清完整版在线观看| 欧美国产一区在线| 天堂一区二区在线| 91在线小视频| 337p日本欧洲亚洲大胆色噜噜|