资源简介
编译原理课程设计 词法分析器:
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 < Content.Length)
{
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个文件信息
相关资源
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 编译原理课程设计:词法语法编译器
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- 《编译原理》清华大学版中的pl0扩充
- PL/0功能扩充break功能
- 编译原理LR(0)语法分析
- 编译原理中间代码生成程序
- 编译原理:LR分析程序
- 编译原理实验:词法分析,语法分析
- 吉林大学编译原理课件
- 编译原理龙书答案
- 编译原理 第三章课后习题答案
- 易语言变量和数组的编译原理
- 编译原理语法分析器、词法分析器
- 山东大学编译原理PL/0语言 compiler实验
- FOR循环语句的翻译程序设计简单优先
- NFA的确定化NFA->DFA完整可运行代码
- 哈工大威海编译原理实验报告和源代
- 哈工大威海-编译原理实验报告和源码
- 编译原理课设c编译器
- 赋值语句翻译四元式
- 河北工业大学编译原理实验代码及实
- 编译原理课程设计 while do循环语句翻
- 编译原理课程设计do——while简单优先
- 南开大学编译原理课件及作业
- 华工往年编译原理试卷
- 编译原理课程设计for循环LR法三元式
- 哈工程-编译原理课程设计(2016级)
评论
共有 条评论