我想使用lex / yacc读取分隔的文本文件。这对于解析器来说是非常简单的东西,但是不同的文本文件具有不同的分隔符,所以我想让用户指定文本是否由制表符,空格,逗号,管道unicode snowmen等分隔开来。
使用这些工具的常规方法是为lex和yacc编写规范,编译,然后使用静态代码进行解析。但有没有办法让用户在运行时指定分隔符(从而重新定义标记)?
我目前正在使用flex / bison,但我愿意接受小型便携式替代品的建议。
答案 0 :(得分:0)
不,没有办法做到这一点。 Lex和Yacc创建词法分析器或解析器表作为C程序的一部分,因此在创建后不能对其进行更改。
您需要解析的格式并不完全清楚,因此如果没有示例,我将不会提出任何建议。