資源簡介
代碼簡單明了并有詳細的注釋,最適合編譯原理實驗--詞法分析器檢查,C#實現

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Collections;
using?System.Text;
using?System.Windows.Forms;
using?System.IO;
namespace?Lexical_Analaysis
{
????public?partial?class?Form1?:?Form
????{
????????string[]?保留字?={“begin“?“end“?“if“?“then“?“while“?“do“?“const““?var““call““procedure“};
????????string[]?運算符?={“*““+““-““=““odd“};
????????string[]?界符?=?{?““?“;“??“(“?“)“?“{““}“};
????????int[]?常數?=?new?int[30];
????????string[]?標識符?=?new?string[30];
????????string[]?未知符號;
????????private?ArrayList?temp?=?new?ArrayList();
????????int?a1;//標識符
????????int?a2;//常數
????????string?a3;//運算符
????????string?a4;//界符
????????int?b1=0;
????????int?b2=0;
????????
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
???
????????//預處理
????????private?string?Pretreatment()?
????????{
????????????string?s1?=?textBox1.Text;
????????????string?strAll?=?null;//所有字符串數組
????????????//去除換行
????????????string[]?str?=?textBox1.Lines;
????????????for?(int?i?=?0;?i?????????????{
????????????????strAll?+=?str[i]?+?“?“;
????????????}
????????????//去除跳格,回車
????????????if?(strAll.Contains(“/r“))
????????????{
????????????????strAll?=?strAll.Replace(“/r“?“?“);
????????????}
????????????if?(strAll.Contains(“/n“))
????????????????strAll?=?strAll.Replace(“/n“?“?“);
????????????
????????????//去除多余空格
????????????string[]?strOut?=?strAll.Split(‘?‘);
????????????string?strTmp?=?““;
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(strOut[i]?!=?““)
????????????????{?
????????????????????strTmp?+=?strOut[i]+“?“;
????????????????}
????????????}
????????????return?strTmp.Trim();
????????}
?????
????????//進行分析輸出
????????private?void?analyze(string?string1)
????????{
????????????string[]?str?=?string1.Split(new?char[]?{?‘?‘?});
????????????for?(int?i?=?0;?i?????????????{
????????????????switch?(fenxi(str[i]))
????????????????{
????????????????????case?0:
????????????????????????listBox1.Items.Add(“$“?+?str[i]+“?-“);
????????????????????????break;
????????????????????case?1:
????????????????????????listBox1.Items.Add(“$ID“?+“?“+?a1);
????????????????????????break;
????????????????????case?2:
????????????????????????listBox1.Items.Add(“$INT“?+“?“+a2);?
????????????????????????break;
????????????????????case?3:
????????????????????????listBox1.Items.Add(“$“+a3+“?-“);
????????????????????????break;
????????????????????case?4:
????????????????????????listBox1.Items.Add(“$“?+?a4?+?“?-“);
????????????????????????break;
????????????????????//case?5:
????????????????????//????listBox1.Items.Add(“?“);
????????????????????//????break;
????????????????}
?????????????
????????????}
????????}
????????//單個字符串分析
????????private?int?fenxi(string?str)
????????{
????????????if?(str?==?null)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13312??2015-04-11?11:40??詞法分析\Lexical?Analaysis\bin\Debug\Lexical?Analaysis.exe
?????文件??????44544??2015-04-11?11:40??詞法分析\Lexical?Analaysis\bin\Debug\Lexical?Analaysis.pdb
?????文件??????22984??2015-04-11?11:41??詞法分析\Lexical?Analaysis\bin\Debug\Lexical?Analaysis.vshost.exe
?????文件????????490??2012-06-06?02:06??詞法分析\Lexical?Analaysis\bin\Debug\Lexical?Analaysis.vshost.exe.manifest
?????文件???????7873??2015-04-10?11:26??詞法分析\Lexical?Analaysis\Form1.cs
?????文件???????5203??2015-04-09?20:44??詞法分析\Lexical?Analaysis\Form1.Designer.cs
?????文件???????6224??2015-04-09?20:44??詞法分析\Lexical?Analaysis\Form1.resx
?????文件???????3693??2013-04-29?15:33??詞法分析\Lexical?Analaysis\Lexical?Analaysis.csproj
?????文件???????2867??2015-04-11?11:41??詞法分析\Lexical?Analaysis\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????7083??2015-04-11?11:38??詞法分析\Lexical?Analaysis\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????1514??2015-04-10?10:07??詞法分析\Lexical?Analaysis\obj\x86\Debug\GenerateResource.read.1.tlog
?????文件???????3760??2015-04-10?10:07??詞法分析\Lexical?Analaysis\obj\x86\Debug\GenerateResource.write.1.tlog
?????文件??????10640??2015-04-11?11:41??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical?Analaysis.csproj.FileListAbsolute.txt
?????文件????????975??2015-04-11?11:40??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical?Analaysis.csproj.GenerateResource.Cache
?????文件???????9174??2015-03-22?15:05??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical?Analaysis.csprojResolveAssemblyReference.cache
?????文件??????13312??2015-04-11?11:40??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical?Analaysis.exe
?????文件??????44544??2015-04-11?11:40??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical?Analaysis.pdb
?????文件????????180??2015-04-10?10:07??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical_Analaysis.Form1.resources
?????文件????????180??2015-04-10?10:07??詞法分析\Lexical?Analaysis\obj\x86\Debug\Lexical_Analaysis.Properties.Resources.resources
?????文件???????7897??2013-05-04?22:12??詞法分析\Lexical?Analaysis\obj\x86\Debug\ResolveAssemblyReference.cache
?????文件????????498??2013-04-29?15:23??詞法分析\Lexical?Analaysis\Program.cs
?????文件???????1366??2013-04-29?15:23??詞法分析\Lexical?Analaysis\Properties\AssemblyInfo.cs
?????文件???????2884??2013-04-29?15:23??詞法分析\Lexical?Analaysis\Properties\Resources.Designer.cs
?????文件???????5612??2013-04-29?15:23??詞法分析\Lexical?Analaysis\Properties\Resources.resx
?????文件???????1102??2013-04-29?15:23??詞法分析\Lexical?Analaysis\Properties\Settings.Designer.cs
?????文件????????249??2013-04-29?15:23??詞法分析\Lexical?Analaysis\Properties\Settings.settings
?????文件????????893??2013-04-29?15:23??詞法分析\Lexical?Analaysis.sln
????..A..H.?????22528??2015-04-10?11:44??詞法分析\Lexical?Analaysis.suo
????..A..H.?????49664??2015-04-11?11:41??詞法分析\Lexical?Analaysis.v11.suo
?????目錄??????????0??2015-04-10?11:44??詞法分析\Lexical?Analaysis\obj\x86\Debug\TempPE
............此處省略12個文件信息
- 上一篇:ASP.NET源碼項目
- 下一篇:C#做的學生信息管理系統、連接SQL數據庫
評論
共有 條評論