日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译原理词/语法分析

發布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译原理词/语法分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果:

代碼:

1: using System; 2: using System.Collections.Generic; 3: using System.ComponentModel; 4: using System.Data; 5: using System.Drawing; 6: using System.Linq; 7: using System.Text; 8: using System.Windows.Forms; 9: ? 10: namespace 詞法分析 11: { 12: public partial class Form1 : Form 13: { 14: public int Count = 0; 15: public bool EndFlag = false; 16: public char MString; 17: public string StartString = ""; 18: public string EndString = ""; 19: public string FirstString = " "; 20: public string Sym = " "; 21: Dictionary<string, int> Table = new Dictionary<string, int>(); 22: ? 23: public Form1() 24: { 25: InitializeComponent(); 26: } 27: ? 28: private void textBox1_TextChanged(object sender, EventArgs e) 29: { 30: if (textBox1.Text == "") 31: { 32: Count = 0; 33: StartString = ""; 34: FirstString = " "; 35: EndString = ""; 36: this.pictureBox2.Image = null; 37: this.label2.Text = ""; 38: MyDataView.Rows.Clear(); 39: } 40: if (textBox1.Text.Length - 1>=0) 41: MString = textBox1.Text.Substring(textBox1.Text.Length - 1, 1)[0]; 42: else MString =' '; 43: Table = new Dictionary<string, int>(); 44: ? 45: ? 46: Table.Add("begin", 1); 47: Table.Add("end", 2); 48: Table.Add("if", 3); 49: Table.Add("then", 4); 50: Table.Add("else", 5); 51: Table.Add("while", 6); 52: Table.Add("do", 7); 53: Table.Add("標識符", 8); 54: Table.Add("整常數", 9); 55: Table.Add("+", 10); 56: Table.Add("-", 11); 57: Table.Add("*", 12); 58: Table.Add("/", 13); 59: Table.Add("<=", 14); 60: Table.Add("<>", 15); 61: Table.Add("<", 16); 62: Table.Add(":", 17); 63: Table.Add(":=", 18); 64: Table.Add(";", 19); 65: Table.Add("(", 18); 66: Table.Add(")", 19); 67: Table.Add("$", 20); 68: Table.Add("id", 21); 69: EndProc(); 70: } 71: 72: private void EndProc() 73: { 74: if (char.IsLetter(FirstString[0])) 75: { 76: if (char.IsLetter(MString) || char.IsDigit(MString)) 77: { 78: StartString += MString; 79: FirstString = StartString[0].ToString(); 80: } 81: else 82: { 83: if (MString != ' ' || MString != '\n') 84: { 85: EndString = StartString; 86: StartString = MString.ToString(); 87: FirstString = StartString[0].ToString(); 88: } 89: 90: switch (EndString) 91: { 92: case "begin": 93: EndString = "begin"; 94: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 95: StartString = ""; 96: FirstString = " "; 97: break; 98: case "end": 99: EndString = "end"; 100: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 101: StartString = ""; 102: FirstString = " "; 103: break; 104: case "if": 105: EndString = "if"; 106: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 107: StartString = ""; 108: FirstString = " "; 109: break; 110: case "then": 111: EndString = "then"; 112: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 113: StartString = ""; 114: FirstString = " "; 115: break; 116: case "else": 117: EndString = "else"; 118: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 119: StartString = ""; 120: FirstString = " "; 121: break; 122: case "while": 123: EndString = "while"; 124: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 125: StartString = ""; 126: FirstString = " "; 127: break; 128: case "do": 129: EndString = "do"; 130: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 131: StartString = ""; 132: FirstString = " "; 133: break; 134: case "id": 135: EndString = "id"; 136: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 137: StartString = ""; 138: FirstString = " "; 139: break; 140: default : 141: EndString = "標識符"; 142: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 143: StartString = ""; 144: FirstString = " "; 145: break; 146: } 147: EndProc(); 148: EndFlag = true; 149: } 150: } 151: else if (char.IsDigit(FirstString[0])) 152: { 153: if (char.IsDigit(MString)) 154: { 155: StartString += MString; 156: FirstString = StartString[0].ToString(); 157: } 158: else 159: { 160: if (MString != ' ' || MString != '\n') 161: { 162: EndString = StartString; 163: StartString = MString.ToString(); 164: FirstString = StartString[0].ToString(); 165: } 166: StartString = ""; 167: FirstString = " "; 168: EndFlag = true; 169: EndString = "整常數"; 170: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 171: EndProc(); 172: } 173: } 174: else if (FirstString == "<") 175: { 176: if (MString=='=') 177: { 178: StartString = ""; 179: FirstString = " "; 180: EndFlag = true; 181: EndString = "<="; 182: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 183: } 184: else if (MString == '>') 185: { 186: StartString = ""; 187: FirstString = " "; 188: EndFlag = true; 189: EndString = "<>"; 190: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 191: } 192: else 193: { 194: if (MString != ' ' || MString != '\n') 195: { 196: EndString = StartString; 197: StartString = MString.ToString(); 198: FirstString = StartString[0].ToString(); 199: } 200: StartString = ""; 201: FirstString = " "; 202: EndFlag = true; 203: EndString = "<"; 204: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 205: EndProc(); 206: } 207: } 208: else if (FirstString == ":") 209: { 210: if (MString == '=') 211: { 212: StartString = ""; 213: FirstString = " "; 214: EndFlag = true; 215: EndString = ":="; 216: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 217: } 218: else 219: { 220: if (MString != ' ' || MString != '\n') 221: { 222: EndString = StartString; 223: StartString = MString.ToString(); 224: FirstString = StartString[0].ToString(); 225: } 226: StartString = ""; 227: FirstString = " "; 228: EndFlag = true; 229: EndString = ":"; 230: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 231: EndProc(); 232: } 233: } 234: else switch (MString) 235: { 236: case '+': 237: StartString = ""; 238: FirstString = " "; 239: EndFlag = true; 240: EndString = "+"; 241: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 242: break; 243: case '-': 244: StartString = ""; 245: FirstString = " "; 246: EndFlag = true; 247: EndString = "-"; 248: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 249: break; 250: case '*': 251: StartString = ""; 252: FirstString = " "; 253: EndFlag = true; 254: EndString = "*"; 255: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 256: break; 257: case '/': 258: StartString = ""; 259: FirstString = " "; 260: EndFlag = true; 261: EndString = "/"; 262: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 263: break; 264: case '(': 265: StartString = ""; 266: FirstString = " "; 267: EndFlag = true; 268: EndString = "("; 269: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 270: break; 271: case ')': 272: StartString = ""; 273: FirstString = " "; 274: EndFlag = true; 275: EndString = ")"; 276: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 277: break; 278: case '$': 279: StartString = ""; 280: FirstString = " "; 281: EndFlag = true; 282: EndString = "$"; 283: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 284: break; 285: case ';': 286: StartString = ""; 287: FirstString = " "; 288: EndFlag = true; 289: EndString = ";"; 290: MyDataView.Rows.Add(++Count, EndString, Table[EndString]); 291: break; 292: case '<': 293: StartString = MString.ToString(); 294: FirstString = StartString[0].ToString(); 295: break; 296: case ':': 297: StartString = MString.ToString(); 298: FirstString = StartString[0].ToString(); 299: break; 300: default: 301: if (char.IsLetter(MString)) 302: { 303: StartString += MString; 304: FirstString = StartString[0].ToString(); 305: } 306: if (char.IsDigit(MString)) 307: { 308: StartString += MString; 309: FirstString = StartString[0].ToString(); 310: } 311: break; 312: } 313: } 314: ? 315: private void button1_Click(object sender, EventArgs e) 316: { 317: Count = 0; 318: Scaner(); 319: E(); 320: if (Sym == "$") 321: { 322: if(this.pictureBox2.Image == null) 323: this.pictureBox2.Image = Image.FromFile("./圖片/笑臉.jpg"); 324: this.label2.Text = "Excellent work!!"; 325: } 326: else 327: Error(); 328: } 329: ? 330: private void Scaner() 331: { 332: try 333: { 334: Sym = MyDataView[1, Count++].Value.ToString(); 335: } 336: catch 337: { 338: MessageBox .Show ("請輸入終止符$!!"); 339: } 340: } 341: ? 342: private void E() 343: { 344: T(); 345: Epie(); 346: } 347: ? 348: private void Epie() 349: { 350: if (Sym == "+") 351: { 352: Scaner(); 353: T(); 354: Epie(); 355: } 356: else if (Sym != ")" && Sym != "$") 357: Error(); 358: } 359: ? 360: private void T() 361: { 362: F(); 363: Tpie(); 364: } 365: ? 366: private void Tpie() 367: { 368: if (Sym == "*") 369: { 370: Scaner(); 371: F(); 372: Tpie(); 373: } 374: else if (Sym != ")" && Sym != "$" && Sym != "+") 375: Error(); 376: } 377: ? 378: private void F() 379: { 380: if (Sym == "id") 381: Scaner(); 382: else if (Sym == "(") 383: { 384: Scaner(); 385: E(); 386: if (Sym == ")") 387: Scaner(); 388: else Error(); 389: } 390: else Error(); 391: } 392: ? 393: private void Error() 394: { 395: this.pictureBox2.Image = Image.FromFile("./圖片/哭臉.jpg"); 396: this.label2.Text = "Error input!!"; 397: } 398: } 399: }

轉載于:https://www.cnblogs.com/lcxu2/archive/2011/04/23/2025846.html

總結

以上是生活随笔為你收集整理的编译原理词/语法分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色刺激视频 | 海角国产乱辈乱精品视频 | 久青草免费视频 | 日韩精品国产精品 | 亚洲福利视频一区二区三区 | 先锋资源av网 | 中文字幕性| 91精品国产综合久 | 午夜精品久久 | 久综合 | 老外黄色一级片 | aaaa一级片| 日本大尺度做爰呻吟舌吻 | 妞妞av | 波多野结衣中文字幕在线播放 | 黄频在线| 日视频| 中文字幕日韩一区二区三区不卡 | 狠狠入| 欧洲美一区二区三区亚洲 | 97香蕉超级碰碰久久免费软件 | 日韩午夜激情 | 污污网站在线 | jzjzjzjzj亚洲成熟少妇 | 久久99国产精品 | 超碰国产91 | 狂野少女电影在线观看国语版免费 | 中文字幕一区二区三区四区免费看 | 日韩少妇高潮抽搐 | 日韩欧美国产成人精品免费 | 亚洲中文字幕无码一区 | 熟妇无码乱子成人精品 | 欧美日韩国产一区二区 | 国产又大又黑又粗免费视频 | 亚洲一区二区免费视频 | 福利久久久 | 黑丝久久 | 人人澡超碰碰 | 特级西西人体444www高清 | 亚洲欧美高清视频 | 色妞ww精品视频7777 | 777理伦三级做爰 | 性猛交ⅹxxx富婆视频 | 天天摸天天插 | 怡红院成永久免费人全部视频 | 天堂俺去俺来也www久久婷婷 | 国产欧美亚洲一区 | 在线v| 一级草逼片 | 中文日韩 | 麻豆91精品 | 男人天堂一区二区 | 国产高清视频在线免费观看 | 国产女人在线视频 | 亚洲小说在线 | 性生活一级大片 | 亚洲久草 | 麻豆精品影院 | 蜜桃精品噜噜噜成人av | 日韩精品在线观看网站 | 熟女视频一区二区三区 | 影音先锋人妻啪啪av资源网站 | 少妇情理伦片丰满午夜在线观看 | 欧美男女视频 | 国产精品久久国产精麻豆96堂 | 伊人丁香 | 亚洲第二页 | 波多野结衣电影在线播放 | 久久久97 | 日本韩国毛片 | 日韩免费不卡视频 | 黄色性情网站 | 日韩手机在线视频 | 精品黑人一区二区三区观看时间 | 成人做爰69片免费观看 | 黄色精品在线 | 亚洲精品久久久久久无码色欲四季 | 免费成人美女在线观看. | 免费av在线网址 | 日本三级韩国三级美三级91 | 成人h视频在线观看 | a级片在线看 | 国产尤物av尤物在线看 | 免费成人深夜夜 | 99视频久久| 男插女视频在线观看 | 成人av一级 | 原创露脸88av | 一级成人黄色片 | 久久精品无码一区二区三区 | 亚洲一区二区三区四区电影 | 91九色视频 | 日韩av资源站 | 亚洲xxxx视频 | 男男车车的车车网站w98免费 | 97超碰导航 | 欧美亚洲视频一区 | 一区二区三区四区在线播放 | 色噜噜影院 |