0

我想使用 lex/yacc 读取分隔的文本文件。这对于解析器来说是非常微不足道的东西,但是不同的文本文件有不同的分隔符,所以我想让用户指定文本是否由制表符、空格、逗号、管道、unicode snowmen等分隔。

使用这些工具的正常方式是为 lex 和 yacc 编写规范,编译,然后使用静态代码进行解析。但是有没有办法让用户在运行时指定分隔符(从而重新定义标记)?

我目前正在使用 flex/bison,但我愿意接受小型便携式替代方案的建议。

4

1 回答 1

0

不,没有任何方法可以做到这一点。Lex 和 Yacc 创建词法分析器或解析器表作为 C 程序的一部分,因此您不能在创建后对其进行更改。

目前还不清楚你需要解析什么格式,所以没有例子我不会提出任何建议。

于 2009-11-25T12:49:08.533 回答