词法分析——Flex介绍(包括如何编译和运行)

        实在是没有写博客的习惯,忽然发现实验做完了,但是还没有写博客,于是上来补一篇好了。

        这次的词法分析的内容不是很多,13号晚上花了点时间写完了代码,14号写实验报告的时间居然比写代码的时间还要多,于是想起了那句话“如果爱迪生每个实验都写一份实验报告,那他还会有这么多的发明吗?”大概是这么个意思。

        目前采用的是在windows下写词法分析,并且在windows上编译和运行,觉得后面的实验恐怕还是要在linux实现了,于是乎装了个Ubuntu,在windows上使用flex在上篇文章里面已经写的很详细了。下面就是如何写词法分析:

        首先,我们需要自行完成包括词法规则等在内的Flex代码。如何编写这份代码后面会提到,现在先假设这份写好的代码名lexical.l;随后,我们使用Flex 对这份代码进行编译:flex lexical.l 编译好的结果会保存在当前目录下的lex.yy.c 文件中。打开这个文件你会发现,该文件本质上就是一个C语言的源代码。事实上,这份源代码里目前对我们有用的函数只有一个,叫做yylex(),该函数的作用就是读取输入文件中的一个词法单元。我们可以再为它编写一个main函数:

int main(int argc, char** argv) 

  if (argc > 1) 
  { 
    if (!(yyin = fopen(argv[1], “

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值