当前位置:  开发笔记 > 编程语言 > 正文

在c#中编写解析器的最佳/最快方法

如何解决《在c#中编写解析器的最佳/最快方法》经验,为你挑选了2个好方法。

在c#中构建解析器以解析我自己的语言的最佳方法是什么?理想情况下,我想提供一个语法,并将抽象语法树作为输出.非常感谢,内斯特



1> Pavel Minaev..:

我对ANTLR v3有很好的经验.到目前为止,最大的好处是它可以让你编写具有无限前瞻性的LL(*)解析器 - 这些可能非常不理想,但语法可以用最直接和最自然的方式编写,无需重构来解决解析器限制,并且解析器性能通常不是什么大问题(我希望你不是在编写C++编译器),特别是在学习项目时.

它还提供了构建有意义的AST的非常好的方法,而无需编写任何代码 - 对于每个语法生成,您指示"关键"令牌或子生成,并且它成为树节点.或者你可以写一个树生产.

看看下面的ANTLR语法(这里按复杂程度增加的顺序列出)来了解它的外观和感觉

JSON语法 - 使用树制作

Lua语法

C语法



2> Ball..:

我和Irony一起玩过.它看起来简单而有用.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有