语法分析和词法分析很多时候作用不仅仅是高级语言。也可以是用于文本解释器,比如解析SQL 语法或者脚本语言等。从头实现词法和语法分析代价太大,可以借助工具,bison就是这样的一个工具。bison工具可以进行通过编写简单的文本规则和词法规则,然后生成程序进行自动解析。不仅解析效率高,扩展也非常容易。bison支持的平台包括Windows和Linux平台。
Ubuntu下是使用bison的大体步骤如下:
1).安装flex,执行命令 sudo apt-get install flex
2).安装bison,执行命令 sudo apt-get install bison
3).编写自己的词法分析规则文件,如parse.l文件(需要熟悉正则表达式,以及flex的一些规则,flex有相关文档说明)
4).编写语法分析规则文件,如parse.y文件 (具体参考yacc的相关文档)
5).编写Makefile文件,词法解析类似flex parse.l,即会生成词法解析的c文件。语法分析类似bison -d parse.y,生成语法分析的c文件。
6).在工程中加入词法和语法分析生成的.h和.c文件。(加入的.c或者.h可能需要必要的代码调整,比如数据结构或者定义等,以便适应原有代码工程的运行环境,比如嵌入式等)