资源简介
编译原理课程设计 词法分析器:
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个文件信息
相关资源
- 《编译原理》课后习题答案 清华大学
- yacc与lex安装
- LR(0)文法分析演示程序
- 廖力编译原理课件
- 哈工大编译原理词法分析实验报告
- 编译原理试题汇总+编译原理期末试题
- 天津大学编译原理往年真题
- 编译原理 龙书
- 编译原理课后习题答案+清华大学出版
- 编译原理课程设计LR分析器
- 《编译原理》第三版课后习题答案(
- 编译原理实验:C编译器源代码
- 编译原理自底向上语法分析--LR分析
- 编译器词法分析,语法分析
- 编译原理试卷
- 北京邮电大学计算机学院复试笔试资
- 编译原理(龙书)中文第二版
- [2008]计算机编译原理第三版 张幸儿编
- 南昌大学编译原理期中、期末试卷及
- A Retargetable C Compiler_Design and Implement
- 编译原理基础习题与上机题解答 西电
- 编译原理 (龙书) 中英文 第二版+答
- 编译原理美Alfred V. Aho第二版 中文版
- 编译原理 蒋宗礼 姜守旭编 高等教育
- 语法分析算符优先.doc
- 国防科技大学编译原理课件ppt上机指
- Louden著,冯博琴译,《编译原理及实
- 编译原理基础习题与上机题答案
- 编译原理教程.pdf
- 编译原理龙书第2版英文原书
评论
共有 条评论