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

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

?? lexical.cs

?? 簡單的詞法分析器 利用vc編程 功能 可以打開任意位置和名稱的原文件進(jìn)行詞法分析
?? CS
字號:
using System;
using System.IO;
using System.Collections;

namespace Analyzer
{
	/// <summary>
	/// Lexical 的摘要說明。
	/// </summary>
	public class Lexical
	{

		private static ArrayList symbolTable;
    
		private static int tokentype=0;
		private static int attributevalue=1;
		private static int linenumber=2;
		private static int lineposition=3;

		//行號
		private int lnum;
		//字符位置
		private int lpos;
    
		private StreamReader br;
		private char c;
		private char preC;
		private int state;
		private String str;

		public Lexical(StreamReader br)
		{
			//
			// TODO: 在此處添加構(gòu)造函數(shù)邏輯
			//

			this.br=br;
			c=' ';
			preC=' ';
			state = 0;
			symbolTable = new ArrayList();
			lnum=1;
			lpos=0;
			str="";
		}

		public ArrayList getSymbolTable()
		{
			c = nextChar();
			state = 0;
			analyzer();
			install("$","$",lpos,lnum);
			return symbolTable;
		}

		
		private void analyzer()
		{
			bool isRunning=true;
			while(isRunning)
			{
				switch (state)
				{
					case 0:
						if(c==' ')
						{
                    
						}
						else if(c=='\t')
						{
							lpos+=3;
						}
						else if((int)c==13)
						{
                    
						}
						else if((int)c==10)
						{
							lpos = 0;
							lnum++;
						}
						else if(c=='~')
						{
							return;
						}
						else if(c=='+')
						{
							install("OP","+",lpos,lnum);
						}
						else if(c=='-')
						{
							install("OP","-",lpos,lnum);
						}
						else if(c=='/')
						{
							state = 1;
						}
						else if(c=='*')
						{
							install("OP","*",lpos,lnum);
						}
						else if(c=='=')
						{
							state = 2;
						}
						else if(c=='<')
						{
							state = 3;
						}
						else if(c=='>')
						{
							state = 4;
						}
						else if(c=='!')
						{
							state = 5;
						}
						else if(c=='{')
						{
							install("DELIM","{",lpos,lnum);
						}
						else if(c=='}')
						{
							install("DELIM","}",lpos,lnum);
						}
						else if(c=='(')
						{
							install("DELIM","(",lpos,lnum);
						}
						else if(c==')')
						{
							install("DELIM",")",lpos,lnum);
						}
						else if(c==';')
						{
							install("DELIM",";",lpos,lnum);
						}
						else if((int)c==65535)
						{
							isRunning=false;
						}
						else if(isLetter(c))
						{
							preC = c;
							state = 6;
						}
						else if(isDigit(c))
						{
							preC = c;
							str="";
							state = 7;
						}
						else 
						{
							state=0;
							isRunning=false;
							fail();
						}
						c = nextChar();
						break;
					case 1:
						if(c=='/')
						{
							while((int)c!=10)
							{
								c = nextChar();
							}
							lpos=0;
							lnum++;
							c = nextChar();
							state = 0;
						}
						else 
						{
							state = 0;
							install("OP","/",lpos-1,lnum);
						}

						break;
					case 2:
                
						if(c=='=')
						{
							state = 0;
							install("OP","==",lpos-1,lnum);
							c = nextChar();
						}
						else 
						{
							state = 0;
							install("OP","=",lpos-1,lnum);
						}

						break;
					case 3:
						if(c=='=')
						{
							state = 0;
							install("OP","<=",lpos-1,lnum);
							c = nextChar();
						}
						else 
						{
							state = 0;
							install("OP","<",lpos-1,lnum);
						}
                
						break;
					case 4:
						if(c=='=')
						{
							state = 0;
							install("OP",">=",lpos-1,lnum);
							c = nextChar();
						}
						else 
						{
							state = 0;
							install("OP",">",lpos-1,lnum);
						}

						break;
					case 5:
						if(c=='=')
						{
							state = 0;
							install("OP","!=",lpos-1,lnum);
							c = nextChar();
						}
						else 
						{
							state = 0;
							isRunning=false;
							fail();
						}
						break;
					case 6:
						String id = ""+preC;
						while(isLetter(c)||isDigit(c))
						{
							id+=c;
							c = nextChar();
						}
						if(isKey(id))
							install("KEY",id,lpos-id.Length,lnum);
						else
							install("ID",id,lpos-id.Length,lnum);
						state = 0;
						break;
					case 7:
						str+=preC;
						while(isDigit(c))
						{
							str+=c;
							c=nextChar();
						}
						if(c=='.')
						{
							state=8;
							c=nextChar();
						}
						else if(c=='E')
						{
							state=10;
							c=nextChar();
						}
						else
						{
							state = 0;
							install("NUM",str,lpos-str.Length,lnum);
						}
						break;
					case 8:
						str+='.';
						if(isDigit(c))
						{
							state = 9;
							str+=c;
							c=nextChar();
						}
						else
						{
							state = 0;
							isRunning=false;
							fail();
						}
						break;
					case 9:
                
						while(isDigit(c))
						{
							str+=c;
							c=nextChar();
						}
						if(c=='E')
						{
							state = 10;
							c=nextChar();
						}
						else
						{
							state = 0;
							install("NUM",str,lpos-str.Length,lnum);
						}
						break;
					case 10:
						str+='E';
						if(c=='+'||c=='-')
						{
							state=11;
							str+=c;
							c=nextChar();
						}
						else if(isDigit(c))
						{
							state=12;
							str+=c;
							c=nextChar();
						}
						else
						{
							state=0;
							isRunning=false;
							fail();
						}
						break;
					case 11:
						if(isDigit(c))
						{
							state=12;
							str+=c;
							c=nextChar();
						}
						else
						{
							state = 0;
							isRunning=false;
							fail();
						}
						break;
					case 12:
						while(isDigit(c))
						{
							str+=c;
							c=nextChar();
						}
						install("NUM",str,lpos-str.Length,lnum);
						state=0;
						break;
				}  
			}
		}
 
		private void fail() 
		{
			//System.out.println("Error at line:"+lnum+"  pos:"+lpos);
			Console.WriteLine("Error at line:"+lnum+"  pos:"+lpos);
		}

		private char nextChar()
		{
			char t;
			lpos++;

			//是否為文件結(jié)尾
			if(br.Peek() == -1)
			{
				br.Close();
				return '~';
			}

			t= (char) br.Read();

			//System.out.println(t+":"+lnum+"  "+lpos);

			//Console.WriteLine(t+":"+lnum+"  "+lpos);
			return t;
		}
    
		private void install(String tType,String aValue,int lpos,int lnum)
		{
			ArrayList tokenArray = new ArrayList();
//			tokenArray.Add(tokentype,tType);
//			tokenArray.Add(attributevalue,aValue);
//			tokenArray.Add(linenumber,lnum.ToString());
//			tokenArray.Add(lineposition,lpos.ToString());

			tokenArray.Add(tType);
			tokenArray.Add(aValue);
			tokenArray.Add(lnum.ToString());
			tokenArray.Add(lpos.ToString());

			symbolTable.Add(tokenArray);
        
			str="";
		}
    
		private bool isLetter(char checkChar)
		{
			int checkInt = (int)checkChar;
			if((checkInt<=122&&checkInt>=97)||(checkInt>=65&&checkInt<=97))
			{
				return true;
			}
			return false;
		}
    
		private bool isDigit(char checkChar)
		{
			int checkInt = (int)checkChar;
			if(checkInt<=57&&checkInt>=48)
			{
				return true;
			}
			return false;
		}
    
		private bool isKey(String checkKey)
		{
			if(checkKey.Equals("if")||checkKey.Equals("then")||
				checkKey.Equals("else")||checkKey.Equals("int")||
				checkKey.Equals("real")||checkKey.Equals("while")||
				checkKey.Equals("void")||checkKey.Equals("main"))
			{
				return true;
			}
			return false;
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九一久久久久久| 国产精品欧美经典| 亚洲成人免费视频| 在线不卡a资源高清| 9i在线看片成人免费| 亚洲欧美视频一区| 欧洲中文字幕精品| 日本免费新一区视频| 欧美mv日韩mv国产网站app| 国产毛片精品国产一区二区三区| 久久精品一区二区三区不卡牛牛 | 国产精品系列在线播放| 久久精品欧美一区二区三区麻豆| 国产成人精品免费| 亚洲精品国产精华液| 欧美人牲a欧美精品| 久草精品在线观看| 18欧美乱大交hd1984| 欧美另类z0zxhd电影| 在线播放欧美女士性生活| 精品亚洲国内自在自线福利| 国产精品亲子伦对白| 欧美日韩在线不卡| 国产一区二区伦理| 一区二区欧美国产| www国产成人| 91免费在线视频观看| 免费在线看成人av| 国产成人精品在线看| 一区二区三区在线视频观看| 欧美一区二区日韩| 97精品电影院| 日本人妖一区二区| 国产精品家庭影院| 日韩欧美一卡二卡| 色综合天天在线| 精品制服美女丁香| 亚洲大片免费看| 麻豆免费看一区二区三区| 亚洲色图在线视频| 久久综合狠狠综合久久综合88| 91黄色免费看| 成人精品小蝌蚪| 久久不见久久见中文字幕免费| 亚洲天天做日日做天天谢日日欢| 日韩精品专区在线影院观看| 色综合久久久久综合99| 精品久久人人做人人爰| 日本伦理一区二区| 成人一区二区三区| 国产麻豆视频一区| 日韩不卡在线观看日韩不卡视频| 亚洲男同性恋视频| 国产目拍亚洲精品99久久精品| 欧美一级午夜免费电影| 在线免费一区三区| 成人av免费在线观看| 在线电影一区二区三区| 欧美最猛黑人xxxxx猛交| 国产69精品久久99不卡| 国产一区二区三区在线观看免费| 午夜久久电影网| 亚洲一区自拍偷拍| 亚洲欧美日韩一区二区 | 国产精品欧美一区二区三区| 欧美大片在线观看一区二区| 欧美电影一区二区三区| 亚洲精品视频自拍| 国产精品亲子乱子伦xxxx裸| 欧美韩日一区二区三区四区| 国产日韩欧美精品一区| 2023国产精品视频| 欧美va日韩va| 精品久久久影院| 欧美tk—视频vk| 久久综合99re88久久爱| 精品国产一区二区三区av性色| 日韩精品一区二区三区视频播放 | 欧美精品一区二区高清在线观看 | 亚洲成人av福利| 一区二区三区日韩| 亚洲激情在线播放| 99麻豆久久久国产精品免费| 国产成人自拍在线| 成人一区二区三区在线观看| 99天天综合性| 95精品视频在线| 在线这里只有精品| 欧美男生操女生| 91精品免费观看| 欧美成人一区二区| 国产欧美一区二区三区在线看蜜臀| 久久免费偷拍视频| 久久成人精品无人区| 国产风韵犹存在线视精品| 成人综合激情网| 91黄色激情网站| 日韩欧美一区中文| 久久看人人爽人人| 亚洲人成在线观看一区二区| 亚洲国产精品精华液网站| 奇米一区二区三区| 国产成人精品1024| 色婷婷国产精品| 日韩欧美第一区| 国产日韩精品视频一区| **性色生活片久久毛片| 亚洲成人av在线电影| 欧美日韩不卡一区| 日韩欧美你懂的| 中文字幕亚洲不卡| 日韩精品一二区| 成人综合在线观看| 3d动漫精品啪啪1区2区免费 | 日韩激情视频在线观看| 国产成人免费在线观看不卡| 91在线视频播放地址| 制服丝袜成人动漫| 精品一区二区三区久久| 91免费看片在线观看| 日韩无一区二区| 国产精品成人午夜| 男女激情视频一区| 91蝌蚪porny成人天涯| 精品久久久久久亚洲综合网| 亚洲精品伦理在线| 国产一区二区伦理片| 欧美日韩一区二区三区高清| 国产亚洲婷婷免费| 午夜精品在线视频一区| 波多野结衣亚洲一区| 三级不卡在线观看| 91伊人久久大香线蕉| 精品国产乱码久久久久久久久| 亚洲卡通动漫在线| 国产高清亚洲一区| 日韩欧美一区在线| 亚洲一区二区精品视频| 懂色av一区二区夜夜嗨| 欧美一区二区三区视频在线| 亚洲男同1069视频| 处破女av一区二区| 另类小说视频一区二区| 欧美日韩视频在线一区二区| ...xxx性欧美| 成人综合在线观看| 国产日韩精品一区二区三区 | 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲综合男人的天堂| 高清国产午夜精品久久久久久| 亚洲成人福利片| 色欧美88888久久久久久影院| 国产欧美一区二区精品久导航 | 99国产精品久久久| 久久精品欧美一区二区三区不卡| 美腿丝袜亚洲色图| 在线播放/欧美激情| 色综合久久久久网| 亚洲人吸女人奶水| 99精品久久久久久| |精品福利一区二区三区| 成人av电影在线播放| 国产精品日日摸夜夜摸av| 成人永久看片免费视频天堂| 国产日韩精品一区二区浪潮av| 国产一区二区三区黄视频| 久久这里只有精品首页| 久久99国产精品免费| 精品国产一区二区亚洲人成毛片| 欧美日韩夫妻久久| 偷拍一区二区三区四区| 欧美剧情电影在线观看完整版免费励志电影| 一区二区三区欧美久久| 日本高清免费不卡视频| 亚洲国产三级在线| 欧美精品vⅰdeose4hd| 日韩精品一二三| 久久婷婷久久一区二区三区| 国产伦精品一区二区三区免费迷| 亚洲精品在线一区二区| 国产99久久精品| 成人一区二区三区视频| 自拍偷拍亚洲激情| 91久久精品国产91性色tv| 亚洲3atv精品一区二区三区| 欧美一级高清片在线观看| 精品午夜一区二区三区在线观看| 国产欧美日产一区| 91在线观看地址| 视频一区免费在线观看| 精品国产乱码久久久久久浪潮| 国产高清在线精品| 一区二区三区欧美在线观看| 欧美一区二区三区四区久久| 国产精品原创巨作av| 亚洲美女屁股眼交3| 欧美一区2区视频在线观看| 国产一二精品视频| 亚洲综合图片区| 日韩久久久精品|