编译原理 语义分析 c++ vc6.0
可用作本科课程设计、毕业设计等
源代码在线查看: readme.txt
编译原理第一次上机作业说明(instructions to attendants)
一:本次作业共两个程序:
程序1:从文件 RegularExpression.txt 中读取正则表达式 由程序一生成有穷自动机 写到文件 Automata.txt 中。
程序2:从文件 Automata.txt 中读取有穷自动机 由程序二对源文件 source.txt 进行词法分析 生成Token序列(以词为单位的源程序) 再保存到文件 tokensequnce.txt 中。
二:文件 RegularExpression.txt 的格式是 每行写一个正则表达式。
三:正则表达式中的连接符不能省略,即 "." 不能省略。如 a.b 不能像书上一样写成 ab 。
四:RegularExpression.txt 中的正则表达式包含括号 "(" 和 ")" ,所以源程序中就不能有括号了。(以后再做)
五:程序所使用的文件名都是固定的,即文件名不能修改。文件路径也不能修改,只能在当前路径(当前文件夹)。
六:两个程序都只实现基本功能,没有对界面进行图形化。
七:要测试本程序可以按照以上说明进行修改文件 RegularExpression.txt 中的正则表达式和 源文件 source.txt 中的样例源程序,然后依次运行程序1和程序2,最后检查文件 tokensequnce.txt 里被词法分析程序分析过的Token序列(以词为单位的源程序)。
八:特别说明:本程序在 Microsoft Visual C++ 6.0 中编译通过。(在其它编译环境可能无法编译通过)
九:程序难免存在很多bugs,请多指教。(欢迎回溃出错信息,以改正错误)
2005.10.21
计科0304
200343109
巫钟兴 20
-----------------------------------------------------------------
经过修改后的补充说明:
1 文件 RegularExpression.txt 的格式还是 每行写一个正则表达式。
2 RegularExpression.txt 中的正则表达式包含括号 "(" 和 ")" ,但是源程序中就可以有括号了。
3 程序2增加了输入错误识别的功能
2005.11.9
-----------------------------------------------------------------
注:程序2新加了一种输出,attribute.txt 里面加入了Token的属性值
2005.11.14
-----------------------------------------------------------------
注:程序2新加了一种输出,classvalue.txt里是每个词的二元组的表示输出
2005.11.28