2010-01-21 39 views
2

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

有没有人有想法?

+1

什么阻止你使用boost :: spirit与包装从C代码中调用它? –

+2

“EBNF在不断变化” - 在运行时? –

+0

只是一个好奇心:你的任务是什么?我在大学的编译器课程中处理过BNF,所以我想知道BNF会不断变化的情况 – dgraziotin

回答

0

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

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

+0

对不起,假设BNF在经过教授审核后发生变化,至少我知道我没有及时更新。 – stacker

+0

这可能是要走的路。 我一定会探索这个算法。谢谢! – Flaps