Skip to content

Flex Bison 示例程序

西风逍遥游 edited this page Nov 8, 2021 · 2 revisions

这一系列程序是Flex和Bison的一些高级用法,希望能成为您使用这些高级特性时的参考示例。 大部分Flex和Bison教程都仅仅说了如何创建一个基本的如计算器、小型语言等的例子,但很少讨论这样几个主题:

  1. 如何确保多线程可以同时解析 - 可重入性(即解析不依赖全局变量)
  2. 如何将多个解析器打包在一个lib中 - 修改生成的函数名
  3. 如何更好地支持C++ - variant、constructor、destructor的使用
  4. 如何解决可选分号的难题 - 使用测试执行的思路
  5. 如果更好地输出异常信息,报告错误点,打印错误语句等

这个wiki中我将介绍一下这些问题是如何被解决的,以及背后的一些实现思路。

Bison中句尾可选分号的实现

Clone this wiki locally