【问题标题】:Can I define flex tokens during runtime?我可以在运行时定义弹性令牌吗?
【发布时间】:2009-11-20 15:16:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: lex csv


    【解决方案1】:

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

    不清楚具体需要解析什么格式,没有例子就不提建议了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2018-08-02
      • 1970-01-01
      • 2021-11-28
      相关资源
      最近更新 更多