1.前言
本程序是本人五邑大学编译原理实验课的作业,用了两天时间写得很简易很随便,没有用到有穷自动机状态转换的思想,也没有建立真正的符号表。仅仅为了应付实验课而写的,仅供大家参考和学习,非常不建议大家直接拿去给老师检查啦(╹▽╹) ,程序可直接运行,需要用到的输入文件下文也有。采用纯C语言编写,可对用户输入的C语言代码进行词法分析。可从文件读入代码,也可以自己手动输入代码。
程序的基本流程就是,用户输入代码,程序打印出token串,token串包含单词的种别码和单词的“值”
2.程序演示
本程序预设的种别码的编码:
主界面:
功能1提到的Input.txt文件的内容可以是任意C语言代码
这里我的Input.txt随便打了一段C语言代码:
进入1功能,直接从Input.txt文件读取代码
(这里没写路径输入,必须把Input.txt和本程序的cpp文件放在同一目录下)
经过分析后得到结果:
没做清屏处理,写得超简陋的,毕竟两天能写出什么。大家可以对照上面的预设种别码比对一下。随便测试了几个语句都能正确识别,其他功能也正常,但没有深入测试,也不知道有什么BUG。本程序的功能3也可以打印出预设类型单词的种别码,skr假的符号表,并不是真正的词法分析符号表。。。为了应付实验课随便写的(老师只看结果,不深究程序结构和代码)
也可以进入功能2进行手动输入:
这里我输入了i+i*i
3.程序源代码
下载地址
https://download.csdn.net/download/sdfgs54dgf5s4/10785466