有些事我发现自己需要解析某种简单的语言。一种比正则表达式更具表现力的语言,但它是如此之小,以至于不值得使用像野牛一样强大的东西。
我最终使用单元测试来做一个 ad-hoc 解析器,以保证它的正确性。我创建了一个提取单个标记的函数,另一个函数将继续提取标记,并通过一些循环和许多ifs将解析该语言。但是,它不是解析语言的正确方法,如果有人看到代码不理解它的意图。
我一直在寻找一些更好的解决方案来快速解析小语言。一些库,或某种技术来解决这个问题。
答案 0 :(得分:2)
这是解析语言的完美方式。保持标记化和解析部分分开,可能是一个或两个枚举来保存不同类型的标记。我不明白为什么这种方法会导致不干净的代码,特别是对于相当简单的语言。
除此之外,野牛应该可以正常工作,并且使用它不会带来太大的智力开销。