antlr4 - 默认上下文对象

时间:2016-05-03 14:03:05

标签: java antlr antlr4

是否可以生成默认的上下文对象?

提供以下简化语法

class {
    method* constructor? 
}

和解析文字:

SomeClass {
}

是否可以让antlr解释输入文本,好像有一个构造函数?

SomeClass {
   SomeClass() {
   }
}

我可以在类上下文监听器中做一些黑客来添加构造函数,但它看起来非常混乱。我想知道是否有任何方法可以生成默认"文本"如果没有在最低级别提供上下文对象。

1 个答案:

答案 0 :(得分:0)

学习basicks Antlr。 ANTLR监听器生成一个名为(语法名称)BaseListener的方法,其方法是输入(rulename)或退出(rulename)。 我想这些方法被调用时是不可靠的。 您可以覆盖方法以执行任何操作,例如,如果存在构造函数规则,则调用构造函数。然后将此侦听器添加到parcer中。