vyo*_*yom 6 parsing yaml lex bison flex-lexer
我正在尝试编写一个简单的YAML解析器,我从yaml.org读取规范,在开始之前,我想知道编写手动解析器或者使用lex(flex/bison)是否更好.我看了看libyaml(C库) - 好像没用lex/yacc.YAML(不包括流样式)似乎更面向行,因此,编写手动解析器或使用flex/bison
Thanks 更容易.
这个答案基本上是对以下问题的回答:“我应该推出自己的解析器还是使用解析器生成器?” 并且与 YAML 没有太大关系。但无论如何它会“回答”你的问题。
您需要问的问题不是“这是否适用于这种给定的语言/语法”,而是“我是否有信心实现这一点”。事实是,您要解析的大多数格式只能与生成的解析器一起使用。另一个事实是,使用简单的手写递归下降解析器解析复杂的语言也是可行的。
我写过一个用于EDDL(C 和结构化元素)的递归下降解析器和一个用于 INI 的 bison/flex 解析器。我选择了这些例子,因为它们违背直觉,外部要求决定了决定。
既然我在技术层面上建立了它是可能的,你为什么要选择一个?这个问题真的很难回答,这里有一些关于这个主题的想法:
这不是一个或另一个的明确答案,但它为您指明了正确的方向。由于您编写解析器似乎是为了好玩,我认为您应该同时编写两种类型的解析器。
| 归档时间: |
|
| 查看次数: |
1624 次 |
| 最近记录: |