【问题标题】:On the flow C parser关于流 C 解析器
【发布时间】:2011-01-07 22:47:12
【问题描述】:

我正在寻找基于 C 语言的动态解析器​​/框架。 它必须是动态的,因为 EBNF 是不断变化的,像野牛这样的东西在这种情况下不适用。而 boost::spirit 对我来说几乎没用,因为它需要 C++。

有人有想法吗?

【问题讨论】:

  • 是什么阻止您使用带有包装器的 boost::spirit 从 C 代码中调用它?
  • “EBNF 不断变化”——在运行时?
  • 只是好奇:你的任务是什么?我只是在大学的编译器课程中处理 BNF,所以我想知道 BNF 不断变化的情况
  • 我希望他们有像开发语言这样的任务,并且 BNF 每周左右变化,不可能在运行时创建操作以改变语义,否则我会投票支持图灵奖 ;-)跨度>
  • 这是一个粗略的 hack,但您可以使用 tinyCCCINTCh 之类的东西来编译/解释其中一个经典解析器生成器在运行时发出的代码

标签: c frameworks parsing


【解决方案1】:

如果您希望在计算运行时更改语法,那么您需要的是Earley-style context free parser。您可以随时更改规则并运行 Earley 解析算法。

如果语法变化“缓慢”(例如,一天一次),那么您就不需要像 Earley 这样的动态可增强解析器;您可以使用传统的解析器生成器并根据需要简单地运行它们。

【讨论】:

  • 很抱歉假设 BNF 在教授审查后发生了变化,至少我知道我不是最新的。
  • 这可能是要走的路。我一定会探索这个算法。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多