1

我尝试了 Plex,它是 flex 的纯 Python 实现。它可以工作,但对于大型输入文件(10-100+ MB)来说非常慢。大部分时间都花在词法分析器上。所以我希望使用 flex 在 C 中生成词法分析器,并从 Python 中调用它。我很惊讶我找不到一个,但是当我用谷歌搜索时,我总是以用 C 编写的词法分析器到 lex Python 文本,或者用 Python 编写的词法分析器到 lex C 文本结束。

如果做不到这一点,任何人都可以提出一种将 Flex C 代码转换为扩展的简单方法吗?

4

1 回答 1

0

似乎唯一这样的模块是FlexBisonModule-2.0。它确实将 Flex 和/或 Bison 的输出转换为 Python 模块。不幸的是,它相当古老(最后一次修改是 2002 年 3 月),并且是为 Python 1.5.2 和 2.0 开发的。我将不得不检查它是否需要更新到 Python 2.7.6,甚至 3.x。

我刚刚发现了另一种可能性:PyBison 0.1.8。您必须将您的 .l 和 .y 文件转换为首选格式,并定义一些 Python 方法。然后它调用 flex & bison,为你创建一个 Python 解析器类。它说它适用于 Linux 和可能的基于 BSD 的系统。它可以追溯到 2004 年。

于 2013-11-11T22:01:32.517 回答