特点以及优点

1、Lemon是一个C或者C++语言的LALR(1)语法分析器生成器。
2、它和“bison”与“yacc”的功能是一样的,但它不是“bison”或者“yacc”的简单复制。
3、为了减少编写代码的错误,它使用了一种不同的语法。
4、Lemon使用了一种更为高级的分析引擎,运行速度比“bison”与“yacc”要更快,并且该引擎是可重入的和线程安全的。生成的解析器是可重入和线程安全的。
5、更进一步的,Lemon引入了非终结符析构器的概念,实现了能够消除资源泄漏的特性,适合于长时间运行的程序例如GUI或者嵌入式控制器中。

Lemon解析器生成器的完整源代码包含在两个文件中。文件lemon.c是解析器生成器程序本身。柠檬生成的解析器子例程的模板是一个单独的文件lempar.c。也提供柠檬文档。

Lemon本身的源代码和Lemon生成的代码均属于公共领域。

要查看有关如何使用Lemon的示例,请参见SQLite数据库引擎的源代码。 Lemon是SQLite项目的一部分。

操作的原理

lemon源码下载和官方文档:
http://www.hwaci.com/sw/lemon/
https://sqlite.org/src/doc/trunk/doc/lemon.html
可参考《LEMON语法分析生成器(LALR(1))源代码情景分析》来学习bison的实现原理。

lemon语法分析生成器的使用以及源代码分析相关推荐

  1. LALR(1)语法分析生成器--xbytes

    0.概述: 看了编译器龙书和虎书后,自己手动写了一个LALR(1)语法分析生成器,使用的语法文件格式和lemon的差不多. 程序里面很多的算法也都是摘录自虎书,龙书虽然讲的很详细,但是真正动手写的时候 ...

  2. Java源代码分析与生成

    源代码分析:可使用ANTLR ANTLR是开源的语法分析器,可以用来构造自己的语言,或者对现有的语言进行语法分析. JavaParser 对Java代码进行分析 CodeModel 用于生成Java代 ...

  3. nux 平台的 libpcap 源代码分析

    nux 平台的 libpcap 源代码分析 施聪 (javer@163.com), 高级程序员.网络设计师 简介: libpcap 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监 ...

  4. java语法分析生成器,语法词法生成器

    一.语法词法生成器 Flex 语法扫描器生成器 flex (fast lexical analyser generator) 是Lex的另一个替代品.它经常和自由软件Bison语法分析器生成器 一起使 ...

  5. Android系统默认Home应用程序(Launcher)的启动过程源代码分析

    在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...

  6. 《LINUX3.0内核源代码分析》第一章:内存寻址

    https://blog.csdn.net/ekenlinbing/article/details/7613334 摘要:本章主要介绍了LINUX3.0内存寻址方面的内容,重点对follow_page ...

  7. Scrapy源代码分析-经常使用的爬虫类-CrawlSpider(三)

    CrawlSpider classscrapy.contrib.spiders.CrawlSpider 爬取一般站点经常使用的spider.其定义了一些规则(rule)来提供跟进link的方便的机制. ...

  8. Android 中View的绘制机制源代码分析 三

    到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...

  9. Android应用程序进程启动过程的源代码分析(1)

    Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制:这两个特点都是在进程的初始化过程中实 ...

最新文章

  1. linux常用指令_Linux系统常用指令总结
  2. linux插光驱自动重启,Linux两种光驱自动挂载的方法
  3. JVM——CPU缓存架构与Java 内存模型
  4. IDEA中配置Python环境并运行
  5. 雪城大学信息安全讲义 3.2 Set-UID 程序的漏洞
  6. Python学习心路历程
  7. 用Cython编译Python的C扩展
  8. 走进WPF之开发类似Visio软件
  9. 12个国外免费DNS服务
  10. [转]windows 7 professional 64 bit SP1 change system language(sucess)
  11. 专业学习经验交流会成功举行
  12. 计算机网络 路由器的端口ip,给路由器的一个接口上配置两个IP地址
  13. Github建个人静态网页
  14. 三款ActiveX图表控件对比评测 Pro ActiveX、ProEssentials、ChartDirector
  15. 一页两个uEdit编辑器写法记录
  16. 我讽刺中医把每个养生的都化成了神仙
  17. One by wacom数位板安装及初步使用
  18. 【laravel】整合云片短信验证---引入第三方类的方式
  19. 汽车理论matlab编程,汽车理论课后作业matlab编程详解(带注释)
  20. 《Spring视频教程》(p14~p16)

热门文章

  1. 计算机专业中专排名,中专学校排名前十
  2. 点云中提取平面方法总结
  3. 批量将文本文件转换为语音文件,看书变成听书。
  4. 【开源项目推荐】Android Jetpack 官方文档 中文翻译
  5. 可变电阻器概述——结构、工作和不同应用
  6. 计算机毕业设计django基于python精品课程在线学习系统
  7. 迪杰斯特拉算法实现-Dijkstra 简单版
  8. Mesh地形生成,切割,保存为文件
  9. glOrtho,glFrustum,gluPerspective的理解,很清楚
  10. 台湾Cirocomm太盟光电车载导航天线定位天线 GT5-1S头GPS通用天线带增强反射板