資源簡介
編譯原理課程設計 詞法分析器:
1 實現自動化詞法分析程序
2 要求至少支持科學計數法常量和標識符字符
3 根據輸入的源程序輸出Token串 若為非法單詞則輸出錯誤信息
語法分析器:
1 要求使用LL(1)文法 算符優先文法 LR 1 文法三種分析方法之一進行語法分析
2 輸入上下文無關文法 輸出語法分析程序
3 輸入待檢測的Token串 輸出檢測結果 同時可以處理分析中的異常和錯誤 ">編譯原理課程設計 詞法分析器:
1 實現自動化詞法分析程序
2 要求至少支持科學計數法常量和標識符字符
3 根據輸入的源程序輸出Token串 若為非法單詞則輸出錯誤信息
語法分析器:
1 要求使用LL(1)文法 算符優先 [更多]

代碼片段和文件信息
using?System;
using?Storage;
using?System.Collections.Generic;
namespace?Algorithm
{
????public?class?Analyzer
????{
????????public?string?Content?{?get;?private?set;?}
????????private?int?StartPoint?ReaderPoint;
????????private?DFA?dfa;
????????private?KeyWordMap?keyWordMap;
????????private?IdentifierMap?identifierMap;
????????public?Analyzer(string?content)
????????{
????????????this.Content?=?string.Concat(content.Replace(“\r“?““)?“\n“);
????????????this.StartPoint?=?this.ReaderPoint?=?0;
????????????this.dfa?=?new?DFA();
????????????keyWordMap?=?KeyWordMap.Instance;
????????????identifierMap?=?IdentifierMap.Instance;
????????}
????????private?WordType?GetType(int?status?string?s)
????????{
????????????if?(status?==?1?||?status?==?2)
????????????{
????????????????return?WordType.Decimal;
????????????}
????????????if?(status?==?3)
????????????{
????????????????return?WordType.Octonary;
????????????}
????????????if?(status?==?4)
????????????{
????????????????return?WordType.Hexadecimal;
????????????}
????????????if?(status?==?5?||?status?==?6)
????????????{
????????????????return?WordType.FloatConstant;
????????????}
????????????if?(status?==?7)
????????????{
????????????????if?(keyWordMap.InMap(s))
????????????????{
????????????????????return?WordType.Keyword;
????????????????}
????????????????else
????????????????{
????????????????????return?WordType.Identifier;
????????????????}
????????????}
????????????if?(8?<=?status?&&?status?<=?29)
????????????{
????????????????if?(s?==?“{“?||?s?==?“}“?||?s?==?“;“?||?s?==?“:“)
????????????????{
????????????????????return?WordType.Delimiter;
????????????????}
????????????????else
????????????????{
????????????????????return?WordType.Operator;
????????????????}
????????????}
????????????if?(status?==?30)
????????????{
????????????????return?WordType.Character;
????????????}
????????????if?(status?==?31)
????????????{
????????????????return?WordType.StringCharacter;
????????????}
????????????if?(status?==?32?||?status?==?33)
????????????{
????????????????return?WordType.Comment;
????????????}
????????????throw?new?Exception(“Not?a?end?point“);
????????}
????????public?Token?GetNextWord()
????????{
????????????Read();
????????????if?(!dfa.IsEnd())
????????????{
????????????????if?(dfa.Status?==?0)
????????????????{
????????????????????return?null;
????????????????}
????????????????else
????????????????{
????????????????????ThrowException(ExceptionType.CommentException);
????????????????}
????????????}
????????????if?(dfa.Rollback())
????????????{
????????????????ReaderPoint--;
????????????}
????????????Token?result?=?BuildToken();
????????????StartPoint?=?ReaderPoint;
????????????dfa.Reset();
????????????return?result;
????????}
????????private?char?ReadNextChar()
????????{
????????????if?(ReaderPoint?????????????{
????????????????return?Content[ReaderPoint++];
????????????}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2618??2012-04-12?15:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\Algorithm.csproj
?????文件???????6881??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\Analyzer.cs
?????文件??????12800??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\bin\Debug\Algorithm.dll
?????文件??????46592??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\bin\Debug\Algorithm.pdb
?????文件??????36352??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\bin\Debug\Storage.pdb
?????文件??????11264??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\bin\Release\Algorithm.dll
?????文件??????38400??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\bin\Release\Algorithm.pdb
?????文件??????32256??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\bin\Release\Storage.pdb
?????文件??????14942??2012-04-11?23:23??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\DFA.cs
?????文件???????2227??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Debug\Algorithm.csproj.FileListAbsolute.txt
?????文件???????7275??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Debug\Algorithm.csprojResolveAssemblyReference.cache
?????文件??????12800??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Debug\Algorithm.dll
?????文件??????46592??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Debug\Algorithm.pdb
?????文件???????5794??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????2253??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Release\Algorithm.csproj.FileListAbsolute.txt
?????文件???????5970??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Release\Algorithm.csprojResolveAssemblyReference.cache
?????文件??????11264??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Release\Algorithm.dll
?????文件??????38400??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Release\Algorithm.pdb
?????文件???????5849??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Release\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????3829??2014-06-19?20:48??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\obj\Release\ResolveAssemblyReference.cache
?????文件???????1350??2012-04-08?19:48??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\Properties\AssemblyInfo.cs
?????文件???????2278??2012-04-12?12:36??編譯原理——詞法語法分析器\LexicalAnalyzer\Algorithm\Tool.cs
?????文件???????3565??2012-04-12?12:35??編譯原理——詞法語法分析器\LexicalAnalyzer\LexicalAnalyzer.sln
????..A..H.?????89600??2014-06-23?10:16??編譯原理——詞法語法分析器\LexicalAnalyzer\LexicalAnalyzer.suo
?????文件??????36352??2014-06-22?23:13??編譯原理——詞法語法分析器\LexicalAnalyzer\Storage\bin\Debug\Storage.pdb
?????文件??????32256??2014-06-21?18:44??編譯原理——詞法語法分析器\LexicalAnalyzer\Storage\bin\Release\Storage.pdb
?????文件????????737??2012-04-12?10:41??編譯原理——詞法語法分析器\LexicalAnalyzer\Storage\ExceptionType.cs
?????文件???????1804??2012-04-12?10:41??編譯原理——詞法語法分析器\LexicalAnalyzer\Storage\Folders.cs
?????文件????????850??2012-04-12?10:41??編譯原理——詞法語法分析器\LexicalAnalyzer\Storage\IdentifierMap.cs
?????文件???????1294??2012-04-12?10:41??編譯原理——詞法語法分析器\LexicalAnalyzer\Storage\KeyWordMap.cs
............此處省略279個文件信息
評論
共有 條評論