lemon简介
来源:互联网 发布:人工智能ppt素材 编辑:程序博客网 时间:2024/05/08 04:06
参见:http://www.hwaci.com/sw/lemon/lemon.html
lemon语法分析生成器
Lemon是一个C或者C++语言的LALR(1)语法分析器生成器。它和“bison”与“yacc”的功能是一样的,但它不是“bison”或者“yacc”的简单复制。为了减少编写代码的错误,它使用了一种不同的语法。Lemon使用了一种更为高级的分析引擎,运行速度比“bison”与“yacc”要更快,并且该引擎是可重入的和线程安全的。更进一步的,Lemon实现了能够消除资源泄漏的特性,适合于长时间运行的程序例如GUI或者嵌入式控制器中。
下面是对lemon语法分析生成器的一个简介。
操作的原理
lemon的主要目标是把一个特定语言的上下文无关文法(CFG)翻译成C语言实现的该语言的语法分析器。程序有两个输入:
语法规范
分析器模板文件
典型的,程序员只需提供语法规范即可。Lemon自带了一个语法分析器模板,这对大多数的应用足够了。如果需要的话,用户可以替换一个新的分析器模板文件。
根据命令行参数,Lemon会产生下面文件中的一个到三个:
分析器的C语言代码;
一个头文件,为每个终结符定义了一个整型ID;
描述产生的语法分析器的状态的信息文件。
默认情况下,上面的三个文件都会产生。如果使用了“-m”选项,则不会产生头文件;如果使用“-q”选项,信息文件则不会产生。
语法规范文件是一个以“.y”为后缀的文件。在文档的例子中,设定规范文件的名称是“gram.y”。典型的使用方式是:
上面的命令会产生“gram.c”、“gram.h”、“gram.out”三个文件。第一个就是语法分析器,第二个就是为所有的终结符定义了数值的头文件,最后一个是分析器使用的状态自动机的说明。
完整的源代码包含在两个文件中,lemon.c本身就是产生器本身。一个单独的文件lempar.c是lemon产生语法分析子程序需要的模板文件。也可获取lemon的有关文档。
一个如何使用Lemon的例子,可以参见SQLite数据库引擎。lemon作为SQLite项目的一部分维护。
关于lemon的一个指南:http://souptonuts.sourceforge.net/readme_lemon_tutorial.html
- lemon简介
- lemon简介
- Lemon Tree
- Lemon加油!
- LEMON概述
- lemon git
- Lemon Color
- Lemon Tree 的歌词
- Lemon Tree歌词
- 柠檬树(Lemon tree)
- lemon语法分析器生成器
- Lemon tree 柠檬树
- lemon之Hello World
- NOI 2005-lemon
- Lemon语法分析生成器
- Lemon Parser Generator
- Easy Squeezy, lemon peasy
- lemon 生成C++文件
- 博客搜索引擎索引博文数量分析与评估
- 原创玄幻小说--那时花开--第四章圣殿
- VS2005下组件ReportView使用时的一些问题
- 原创玄幻小说--那时花开--第五章圣花缘
- linux日志管理
- lemon简介
- ATL对包容的支持
- 注意:使用Convert转换时一定记得要try{}catch{}
- "asdf".Equals(str)这个比较字符(串)方法不会出错
- Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
- 最基本的数据库连接方式:
- Java之static学习
- netbean的使用
- 1.CSS布局常用的方法: