在编写解析器时是否应该遵循最佳实践?
我们想要设计一种简单的特定于域的语言来编写测试脚本,以自动测试我们其中一个应用程序的基于XML的接口.样本测试将是:
如果特定于域的语言可以是声明性的,并且其语句看起来尽可能接近上面示例中的句子,那么它将是非常棒的,因为人们不一定必须是程序员来理解/编写/维护测试.就像是:
newObject = GET FILE "http://svn/repos/template1.xml"
reponseMessage = IMPORT newObject
newObjectID = GET PROPERTY '/object/id/' FROM responseMessage
(..)
Run Code Online (Sandbox Code Playgroud)
但后来我不确定如何在Java中为该languange实现一个简单的解析器.回到学校,10年前,我使用Lex和Yacc为C语言编写了一个语言解析器.也许一种方法是使用Java的等价物?
或者,我可以放弃使用声明性语言并选择基于XML的语言,这可能更容易为其创建解析器?你会推荐什么方法?
我正在研究一个小型文本编辑器项目,并希望为几种语言添加基本的语法高亮(Java,XML ......仅举几例).作为一种学习经历,我想添加一个流行或非流行的Java词法分析器.
你推荐什么项目.Antlr可能是最知名的,但它似乎相当复杂和沉重.
这是我所知道的选项.