我有一个规则,我有一个声明返回
tablename
returns [String fieldString, TableObj obj]
TableObj 是我在同一个 g4 文件中声明的自定义类
class TableObj {
public String realName;
public String aliasName;
public List<String> fields;
public List<Relation> relations;
public TableObj(){
fields = new ArrayList<String>();
relations = new ArrayList<Relation>();
}
}
但是当我必须尝试使用 $obj.field 访问 obj 的字段时,生成的代码是:
_localCtx.field
代替
_localCtx.obj.field
如何获得第二种形式而不是第一种形式?
如果需要,或者它将有助于遵循我的规则片段
tablename
returns [String fieldString, TableObj obj]
:
(tablePrefix=ID {
$obj.aliasName = $tablePrefix.text;
System.out.println( "Alias = " + $tablePrefix.text + " " + $obj.aliasName );
}
;