词法分析生成器 之 Lexertl 【1】简介

Technorati 标签: lexertl, boost lexer, lexical analyser

1. 简介

lexertl是一个现代的词法分析生成器(lexical analyser generator)。

传统意义上的词法分析生成器(如lex)都以生成源代码作为输出,有的甚至只支持生成一种编程语言的源代码。而lexertl使用正则表达式作为输入,输出为包含多个DFA的状态机。

与flex不同的是,lexertl默认情况下不产生源代码,而是所写词法分析器可直接编译并立即执行。(也即词法分析器描述文件即C++源代码。)这就使得开发者可以快速开发词法分析器。

Lexertl试图通过导出状态机来提供更多的灵活性。包括以下两种方式:

  • 1. 在运行时构建词法分析器并且立即可用。
  •  
    • 2. 从状态机生成你所选择的编程语言的源代码。

lexertl 可以使用 GCC 4.01和 Visual C++编译。

 

2. 设计目标

1. 在功能特性上和速度上赶上甚至超过flex。

2. 支持Unicode字符编码。

3. 正则表达式语法错误抛出异常。

4. 使用 “龙书”中介绍的 DFA算法。

5. 完善支持STL。

6. 异常安全,完善支持RAII。

7. 无递归代码。

8. 线程安全的TOKEN查找函数。

9. 易读懂的源代码,适合新入门的学生。

 

 

3. 什么是词法分析器

词法分析器(lexical analyser)是将输入的文本转换成能够识别的字串的程序。

每个字串称作一个token,并且有一个 ID 来唯一区分。 通过正则表达式描述的规则来定义一个token的匹配模式。

参考: http://en.wikipedia.org/wiki/Lexical_analysis

 

4. lexertl 当前支持的正则表达式语法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值