我有一个规则,我有一个声明返回
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 );
}
;