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

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

?? complier.cs

?? 實現了此法分析器和語法分析器 有詳細的代碼和文檔
?? CS
?? 第 1 頁 / 共 2 頁
字號:
?using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Collections.Specialized;

namespace ComplierForm
{
    public partial class Complier : Form
    {
        
        private  string[,] StringCodeWord;//存放保留字的二維數組
        private bool beginString = true; //判斷是否為首字符
        private string stringPath = null; //存放打開的源文件的路徑
        private static string stringAdd = "";   //對讀入的每個字符進行拼接
        private static string[] stringOut=new string[2];  //用于輸出模塊存放保留字和碼值
        private StreamWriter sw1 = null;  //用于把非法字符存入Error.txt文件
        private static int countErrorLine = 0; //用于給出非法字符行的行號
        private static bool ErrorString = false;
        private static int countChar = 0; //用于給出非法字符的位置
        public Complier()
        {
            InitializeComponent();

           
        }

        private void buttonLoadFile_Click(object sender, EventArgs e)
        {
            
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "txt Files(*.txt)|*.txt|All Files(*.*)|*.*";            
            openFileDialog1.RestoreDirectory = true;           
            if ((openFileDialog1.ShowDialog() == DialogResult.OK) && (openFileDialog1.FileName.Length > 0))
            {
                if ((File.Exists(openFileDialog1.FileName))==true) //如果文件存在
                {
                    buttonComplie.Enabled = true;
                    stringPath = openFileDialog1.FileName;//為后邊建立文件流給出文件路徑
                    richTextBoxSourceFile.Clear();
                    richTextBoxSourceFile.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                    sw1 = File.CreateText(Directory.GetCurrentDirectory()+"\\Error.txt");//進行錯誤處理
                    
                }
            }
            

        }
        
        private void Complier_Load(object sender, EventArgs e)
        {
            #region  把關鍵字從文件中倒入二維數組中
            try
            {
               
                buttonComplie.Enabled = false;
               
                listViewCode.GridLines = true; //設置listview的屬性
                listViewCode.FullRowSelect = true;
                listViewCode.AllowColumnReorder = true;
                string CodeWordPath = Directory.GetCurrentDirectory() + "//CodeTable.txt";
                StreamReader sr = new StreamReader(CodeWordPath);
                StringCollection stringcollection = new StringCollection();//無需給出初始值的大小
                string oneLine;
                while ((oneLine = sr.ReadLine()) != null) //讀到文件末尾將返回null
                {
                    stringcollection.Add(oneLine.Trim());
                }
                sr.Close();
                int length = stringcollection.Count;              
                string[] stringArray=new string[length];
                stringcollection.CopyTo(stringArray, 0);
                StringCodeWord=new string[length,2];    //此例中,length=35
                //為數組賦值
                for (int i = 0; i < length; i++)
                {
                    string[] splitString = stringArray[i].Split(' ');   //把每行的數據分開存在二維數組中 
                    StringCodeWord[i,0]=splitString[0].Trim();
                    StringCodeWord[i,1]=splitString[1].Trim();
                    
                }        
            }
            catch
            {
               
               MessageBox.Show("關鍵字表文件不存在!","警告!",MessageBoxButtons.OK,MessageBoxIcon.Warning);
           }
            #endregion
       }
        //拼讀一個單詞模塊scan
        private string Scan(char stringChar)
        {
           // MessageBox.Show(stringAdd);
            if (stringChar == '\n')
            {
                Look("\\n");
                if ((stringAdd.Trim().Length != 0) && (stringAdd.Trim() != ";") && (stringAdd.Trim() != ".") && (stringAdd.Trim() != ","))
                {
                    Look(stringAdd);

                }
                countErrorLine += 1;  //用于判斷是哪一行出錯了,執行到出錯行的時候停止編譯,給出提示信息
                beginString = true;
                stringAdd = "";
                return stringAdd;
            }
            //if (((int)stringChar) == 10)
            //{

            //    if ((stringAdd.Trim().Length != 0) && (stringAdd.Trim() != ";") && (stringAdd.Trim() != ".") && (stringAdd.Trim() != ","))
            //    {

            //        Look(stringAdd);
            //    }
            //    //MessageBox.Show(((int)(stringChar)).ToString());
            //    countErrorLine += 1;  //用于判斷是哪一行出錯了,執行到出錯行的時候停止編譯,給出提示信息
            //    beginString = true;
            //    stringAdd = "";
            //    // MessageBox.Show(countErrorLine.ToString());
            //    return stringAdd;
            //}
           
            if(stringChar==' ')  //如果是空格的話,把標志為置為true,因為空格后邊讀入的肯定是個新的字符串
            {
                if (stringAdd.Trim().Length >0)
                {
                    Look(stringAdd);
                    
                }
                  //清空拼接字符串,以便接受一個新的字符
                stringAdd = "";
                beginString=true;
                return stringAdd;
                
            }

            if (beginString ==true)  //如果此字符是字符串的第一個字符,分為數字和字母兩種情況
            {
               
                if(stringChar!=' ')
                {
                   
                    beginString = false;
                    stringAdd += stringChar;  //不管首字符是數字還是字符,都賦給拼接字符串 stringAdd
                   //MessageBox.Show(stringAdd);
                }
            }
            else if (beginString == false)  //如果此字符不是字符串的第一個字符,根據字符決定如何拼接
            {
                switch(stringChar)
                {
                    
                    case ',':      //設置一個標志為來判斷此時傳來的是否為一個字符串的開始                
                         if (stringAdd.Trim() != "")
                         {
                             Look(stringAdd);
                             stringAdd = "";
                         }
                         Look(",");         //如果是“,”,直接查表
                         stringAdd = "";
                         beginString = true;
                         return stringAdd;
                                        

                    case  ';':                
                        if (stringAdd.Trim() != "")
                         {
                           
                             Look(stringAdd);
                             stringAdd = "";
                          }                              
                         Look(";");  //如果是“;”,直接查表
                         stringAdd = "";
                         beginString = true;
                         return stringAdd;
                        
                     case '.':
                         if (stringAdd.Trim() != "")
                         {
                          //   MessageBox.Show(stringChar.ToString());
                             Look(stringAdd);
                             stringAdd = "";
                         }
                         Look(".");  //如果是“.”,直接查表
                         stringAdd = "";                       
                         beginString = true;
                         return stringAdd;
                         
                    case '+':
                         if (stringAdd.Trim() != "")
                         {
                             Look(stringAdd);
                             stringAdd = "";
                          }
                          Look("+");  //如果是“+”,直接查表
                          stringAdd = "";
                          beginString = true;
                          return stringAdd;
                         
                      case '-':
                          if (stringAdd.Trim() != "")
                          {
                              Look(stringAdd);
                              stringAdd = "";
                          }
                          Look("-");  //如果是“-”,直接查表
                          stringAdd = "";
                          beginString = true;
                          return stringAdd;
                        
                      case '*':
                          if (stringAdd.Trim() != "")
                          {
                              Look(stringAdd);
                              stringAdd = "";
                          }
                          Look("*");  //如果是“*”,直接查表
                          stringAdd = "";
                          beginString = true;
                          return stringAdd;
                          
                      case '/':
                          if (stringAdd.Trim() != "")
                          {
                              Look(stringAdd);
                              stringAdd = "";
                          }
                          Look("/");  //如果是“/”,直接查表
                          stringAdd = "";
                          beginString = true;
                          return stringAdd;
                         
                      case '=':
                          if (stringAdd.Trim() != "")
                          {
                              if (stringAdd.Trim().EndsWith(":", true,null))      //":="
                              {
                                  stringAdd += stringChar;
                                  Look(stringAdd);
                                  stringAdd = "";
                                
                              }
                              else if (stringAdd.Trim().EndsWith(">", true, null))  //  ">="
                              {
                                  stringAdd += stringChar;
                                  Look(stringAdd);
                                  stringAdd = "";
                              }
                              else if (stringAdd.Trim().EndsWith("<", true, null))  //  "<="
                              { 
                                  stringAdd += stringChar;
                                  Look(stringAdd);
                                  stringAdd = ""; 
                              }
                          }
                             
                          else
                          {
                             
                              Look("=");  //如果是“=”,直接查表    
                              stringAdd = "";
                          }
                          stringAdd = "";
                          beginString = true;
                          return stringAdd;
                          
                      case '>':
                          if (stringAdd.Trim() != "")
                          {
                              if (stringAdd.EndsWith("<", true, null))
                              {
                                  stringAdd += stringChar;
                                  Look(stringAdd);
                                  stringAdd = "";
                                  beginString = true;
                              }
                              else if (stringAdd.EndsWith("<", true, null) == false) //如果上個符號不是“<”,就要查找上個字符串
                              {
                                  Look(stringAdd);
                                  stringAdd = stringChar.ToString().Trim();
                                  beginString = false;
                              }
                          }
                          else
                          {
                              stringAdd = stringChar.ToString().Trim();   //把“>”放入字符串一邊檢查是否是符號 “>=”                             
                              beginString = false;       //這個地方不可以查“>”表,因為又可能是符號“>=”
                          }
                          return stringAdd;
                          
                      case '<':
                          if (stringAdd.Trim() != "")
                          {
                              Look(stringAdd);
                              stringAdd = stringChar.ToString();    //不可以對“<”查表,因為可能是符號“<=”和“<”                        
                              beginString = false;      //現在就對“<”查表,會把符號“<=”解析成兩個符號
                          }                             //"<" 和 "<="
                          else
                          {
                              stringAdd = stringChar.ToString();
                              beginString = false;
                          }
                          return stringAdd;
                          
                      case '(':
                          if (stringAdd.Trim() != "")
                          {
                              Look(stringAdd);
                              stringAdd = "";
                          }
                          Look("(");  //如果是“(”,直接查表
                          stringAdd = "";
                          beginString = true;
                          return stringAdd;
                          
                      case ')':
                          if (stringAdd.Trim() != "")
                          {
                              Look(stringAdd);
                              stringAdd = "";
                          }
                          Look(")");  //如果是“+”,直接查表
                          stringAdd = "";
                          beginString = true;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内欧美视频一区二区| 99精品偷自拍| 欧美变态口味重另类| 免费精品视频在线| 26uuu久久天堂性欧美| 成人黄色大片在线观看| 国产精品高清亚洲| 欧美三级三级三级| 日本亚洲三级在线| 久久久久久久久99精品| 91丨porny丨首页| 亚洲第一主播视频| 久久综合九色综合欧美就去吻 | 天天综合色天天| 日韩精品一区二区三区在线 | 欧美激情一区在线| 色综合久久久久久久久久久| 午夜影视日本亚洲欧洲精品| 日韩精品一区二区三区在线观看| 成人免费看片app下载| 亚洲永久免费av| 久久久久久久网| 欧美在线免费观看视频| 久久99精品视频| 一区二区三区在线播| 日韩午夜激情视频| 图片区小说区国产精品视频| 久久久亚洲精品一区二区三区| 色综合天天综合网天天狠天天 | 亚洲午夜av在线| 久久综合色综合88| 色偷偷88欧美精品久久久| 蜜臀av国产精品久久久久 | 一本一本大道香蕉久在线精品| 日韩电影在线观看网站| 自拍偷拍亚洲综合| 精品国产123| 欧美丰满嫩嫩电影| 91视频.com| 国产福利91精品一区| 亚洲第一主播视频| 亚洲手机成人高清视频| 26uuu亚洲综合色| 欧美久久久久中文字幕| 成人高清视频在线| 精品一区二区免费在线观看| 亚洲一区二区成人在线观看| 国产精品私人影院| 久久嫩草精品久久久精品| 欧美日韩1234| 在线观看www91| bt欧美亚洲午夜电影天堂| 黄色资源网久久资源365| 亚洲国产aⅴ成人精品无吗| 国产精品久久久久影院色老大| 精品国产一区二区三区忘忧草| 欧美片在线播放| 欧美综合色免费| 91蝌蚪porny| 91免费看`日韩一区二区| 国产成人精品影视| 国内精品自线一区二区三区视频| 日韩激情中文字幕| 亚洲一区二区美女| 亚洲香蕉伊在人在线观| 亚洲免费大片在线观看| 中文字幕一区二区三区四区| 国产人妖乱国产精品人妖| 久久人人超碰精品| 久久综合九色综合欧美就去吻 | 国产女人18毛片水真多成人如厕| 欧美成人vps| 精品福利视频一区二区三区| 日韩欧美综合一区| 日韩久久免费av| 26uuu亚洲综合色欧美| 久久综合色一综合色88| 国产亚洲欧洲997久久综合| 亚洲精品一区二区三区在线观看| 精品欧美黑人一区二区三区| 欧美α欧美αv大片| 精品久久一区二区三区| 久久久久九九视频| 国产精品天天看| 一区二区三区日韩精品| 亚洲成人av电影在线| 美女在线视频一区| 国产中文一区二区三区| 国产成人在线视频网站| kk眼镜猥琐国模调教系列一区二区| 99久久精品国产网站| 欧美亚洲国产一卡| 91精品综合久久久久久| 欧美电影免费观看高清完整版在线观看 | 国产视频一区在线播放| 中文一区一区三区高中清不卡| 国产精品国产自产拍在线| 一区二区三区中文在线观看| 亚洲第一福利一区| 久久精品国产精品亚洲精品| 国产不卡视频在线播放| 色八戒一区二区三区| 欧美放荡的少妇| 国产欧美一区二区精品婷婷 | 国产.欧美.日韩| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩三级视频| 精品国产露脸精彩对白| 亚洲日本一区二区三区| 午夜视频在线观看一区二区| 激情综合一区二区三区| 色综合色综合色综合| 日韩午夜激情电影| 中文字幕一区二区三区精华液| 亚洲主播在线播放| 激情综合网av| 91成人看片片| 久久久久免费观看| 亚洲国产精品久久不卡毛片| 国产麻豆一精品一av一免费| 91国模大尺度私拍在线视频| 精品精品欲导航| 亚洲精品视频免费观看| 狠狠v欧美v日韩v亚洲ⅴ| 欧美亚洲精品一区| 国产欧美精品日韩区二区麻豆天美| 午夜一区二区三区视频| 成人小视频在线| 日韩视频123| 亚洲一区二区三区免费视频| 国产成人综合精品三级| 欧美精品久久一区二区三区| 亚洲欧洲日产国产综合网| 老司机免费视频一区二区| 色婷婷亚洲综合| 国产精品伦一区| 精品亚洲porn| 欧美情侣在线播放| 亚洲黄色性网站| 99在线精品观看| 国产精品入口麻豆九色| 美女视频黄久久| 777亚洲妇女| 婷婷久久综合九色综合伊人色| 91污片在线观看| 欧美激情一二三区| 国产一区二区三区四区五区美女 | k8久久久一区二区三区| 精品成人私密视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美mv日韩mv| 美腿丝袜亚洲三区| 欧美丰满美乳xxx高潮www| 亚洲国产精品嫩草影院| 91国产成人在线| 亚洲人成伊人成综合网小说| 成人精品视频一区| 久久亚洲二区三区| 国产一区二区看久久| 精品成人佐山爱一区二区| 韩国一区二区三区| 欧美成人一区二区三区片免费 | 欧美激情一区在线| 国产福利一区在线| 久久精品网站免费观看| 韩国av一区二区三区四区| 欧美tk丨vk视频| 久久99国产精品免费网站| 日韩精品一区二区三区中文精品| 美女视频黄免费的久久 | 欧美在线一区二区| 亚洲综合色视频| 欧美日韩一区二区在线观看| 丝瓜av网站精品一区二区| 欧美肥妇毛茸茸| 黄色日韩三级电影| 欧美激情一区二区三区四区| 97久久超碰国产精品| 免费人成黄页网站在线一区二区| 欧美日韩在线直播| 日本中文字幕一区二区有限公司| 欧美一区二区二区| 国内成人精品2018免费看| 日本一区二区三区四区在线视频| 99re8在线精品视频免费播放| 亚洲免费av高清| 欧美久久婷婷综合色| 国产一区二区中文字幕| 国产精品欧美极品| 欧美性生活一区| 久久99精品一区二区三区三区| 久久精品在线观看| 色婷婷国产精品久久包臀| 日韩高清不卡在线| 国产日产欧美精品一区二区三区| 一本到高清视频免费精品| 日本特黄久久久高潮| 中文字幕精品—区二区四季| 欧美综合色免费| 国产大陆亚洲精品国产|