2009-11-20 75 views
0

我想使用lex/yacc来读取分隔文本文件。这对于解析器来说是相当平凡的东西,但不同的文本文件具有不同的分隔符,所以我想让用户指定文本是否被制表符,空格,逗号,管道,unicode snowmen等等分开。我可以在运行时定义flex令牌吗?

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

我目前正在使用flex/bison,但我很乐意提供小型和便携式替代品的建议。

回答

0

不,没有办法做到这一点。 Lex和Yacc将词法分析器或分析器表创建为C程序的一部分,因此您无法在创建它之后对其进行修改。

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

相关问题