Jos*_*ogi 10

答案在这里可能非常主观.但是如果你想编写解析器,我建议使用ANTLR.目前,ANTLR支持C,C#,ActionScript,JavaScript和Java目标.根据我的经验,Java版本使用起来非常稳定,并且已经在许多强大的开源项目中使用,即DroolsHibernate.


cho*_*hki 7

是否需要用编程语言编写?或者你可以使用FlexBison吗?

  • 解析器生成器不会消除对编程语言的需求.它们以特定语言生成解析器.传统的Flex/Bison(LEX/YACC)语言是C. (5认同)

Ima*_*ist 5

解析器和编译器是两个独立的问题。例如,我可能会用C编写一个编译器,但是我永远不会用C编写一个解析器(我将使用解析器生成器)。对于速度不是优先级的非常简单的解析器,我可以使用具有良好的文本处理功能的Perl或Python手动编码解析器。但是对于除了非常基本的解析器之外的任何东西,我都会使用某种解析器生成工具。最常用的是ANTLRCoco / RLex / Yacc以及GNU实现Flex / Bison。我的个人偏好是Coco / R,但是ANTLR如今似乎更受欢迎。

如果要编写通用编程语言,则可能需要考虑自己编写。这样做有很多好处,包括可移植性(人们只需要移植该语言的第一个版本)和演示功能(解析是一个困难的问题,因此,如果可以用您的语言来完成,这就是对您语言的证明)。如果您的语言经过解释,出于性能原因,这可能不合适。