编译原理 C语言词法分析器

1.前言

本程序是本人五邑大学编译原理实验课的作业,用了两天时间写得很简易很随便,没有用到有穷自动机状态转换的思想,也没有建立真正的符号表。仅仅为了应付实验课而写的,仅供大家参考和学习,非常不建议大家直接拿去给老师检查啦(╹▽╹) ,程序可直接运行,需要用到的输入文件下文也有。采用纯C语言编写,可对用户输入的C语言代码进行词法分析。可从文件读入代码,也可以自己手动输入代码。
程序的基本流程就是,用户输入代码,程序打印出token串,token串包含单词的种别码和单词的“值”

2.程序演示

本程序预设的种别码的编码:
种别码编码

主界面:
主界面

功能1提到的Input.txt文件的内容可以是任意C语言代码
这里我的Input.txt随便打了一段C语言代码:
Input.txt

进入1功能,直接从Input.txt文件读取代码
(这里没写路径输入,必须把Input.txt和本程序的cpp文件放在同一目录下)
经过分析后得到结果:
输出结果
没做清屏处理,写得超简陋的,毕竟两天能写出什么。大家可以对照上面的预设种别码比对一下。随便测试了几个语句都能正确识别,其他功能也正常,但没有深入测试,也不知道有什么BUG。本程序的功能3也可以打印出预设类型单词的种别码,skr假的符号表,并不是真正的词法分析符号表。。。为了应付实验课随便写的(老师只看结果,不深究程序结构和代码)

也可以进入功能2进行手动输入:
手动输入代码
这里我输入了i+i*i

3.程序源代码

下载地址
https://download.csdn.net/download/sdfgs54dgf5s4/10785466

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值