Antlr 在XText lexer中重新排序令牌流
我正在尝试使用XText对现有语言进行lex/parse。我已经决定我将使用一个定制的ANTLRv3词法分析器,因为该语言不能以上下文无关的方式进行词法分析。幸运的是,我不需要解析器信息;仅仅是前面遇到的标记就足以决定词法分析模式 目标语言有一个InputSection,可以如下描述:Antlr 在XText lexer中重新排序令牌流,antlr,xtext,Antlr,Xtext,我正在尝试使用XText对现有语言进行lex/parse。我已经决定我将使用一个定制的ANTLRv3词法分析器,因为该语言不能以上下文无关的方式进行词法分析。幸运的是,我不需要解析器信息;仅仅是前面遇到的标记就足以决定词法分析模式 目标语言有一个InputSection,可以如下描述:InputSection:INPUT\u SECTION A=IDB=ID。但是,它可以用两种不同的方式指定 ; The canonical way $InputSection Foo Bar $SomeOther
InputSection:INPUT\u SECTION A=IDB=ID代码>。但是,它可以用两种不同的方式指定
; The canonical way
$InputSection Foo Bar
$SomeOtherSection Fonzie
; The haphazard way
$InputSection Foo
$SomeOtherSection Fonzie
$InputSection Bar
在将其传递给解析器之前,我是否可以使用TokenStreamRewriter以规范的方式对所有令牌重新排序?或者这会在以后的XText中产生问题吗?经过大量调查,我得出结论,编辑器工具本身确实不适合这种类型的问题
如果要开始键入一条规则,则必须考虑后续章节中的AST上下文,以了解如何自动完成。同时,这会让用户非常困惑
因此,我最终不会支持该语言的这一模糊特征。相反,AST的构造将使在两个部分之间(合理地)划分的部分仍然能够正确解析