我正在尝试使用XText来解析/解析现有语言。我已经决定使用自定义的ANTLRv3词法分析器,因为语言不能以无上下文的方式使用。幸运的是,我不需要解析器信息;只是以前遇到的令牌足以决定lexing模式。
目标语言有一个InputSection,可以描述如下:InputSection: INPUT_SECTION A=ID B=ID;
。但是,它可以用两种不同的方式指定。
; The canonical way
$InputSection Foo Bar
$SomeOtherSection Fonzie
; The haphazard way
$InputSection Foo
$SomeOtherSection Fonzie
$InputSection Bar
在将其传递给解析器之前,我是否可以使用TokenStreamRewriter以规范方式重新排序所有标记?或者这会在以后的XText中产生问题吗?
答案 0 :(得分:0)
经过大量调查,我得出的结论是,编辑器工具本身确实不适合此类问题。
如果您要开始输入一条规则,则必须考虑后续各节中的AST上下文,以了解如何自动完成。同时,这会使用户感到困惑。
最后,我将因此简单地不支持该语言的晦涩之处。取而代之的是,将构造AST,以便在两部分之间合理划分的部分仍然可以正确解析。