快速解析简单语言的指南

时间:2013-02-03 03:09:36

标签: c++ parsing c++11

有些事我发现自己需要解析某种简单的语言。一种比正则表达式更具表现力的语言,但它是如此之小,以至于不值得使用像野牛一样强大的东西。

我最终使用单元测试来做一个 ad-hoc 解析器,以保证它的正确性。我创建了一个提取单个标记的函数,另一个函数将继续提取标记,并通过一些循环和许多ifs将解析该语言。但是,它不是解析语言的正确方法,如果有人看到代码不理解它的意图。

我一直在寻找一些更好的解决方案来快速解析小语言。一些库,或某种技术来解决这个问题。

1 个答案:

答案 0 :(得分:2)

这是解析语言的完美方式。保持标记化和解析部分分开,可能是一个或两个枚举来保存不同类型的标记。我不明白为什么这种方法会导致不干净的代码,特别是对于相当简单的语言。

除此之外,野牛应该可以正常工作,并且使用它不会带来太大的智力开销。