使用ANTLR(AST,C#)转换源
我正在尝试将源文本转换为“/// Text here(trace)”替换为“WriteLog(modulename,functionname,trace,'Text here');”
所以我想替换nodetext
for (int i = 0; i < Tree.ChildCount; i++){
if (Tree.GetChild(i).Text == NODE_LOGGING)
Tree.GetChild(i).GetChild(0).Text = MyReplace(Tree.GetChild(i).GetChild(0).Text);
else ....
}
但属性Text是只读的,所以它不起作用。 是否可以更改节点文本,然后获得修改后的源文本或希望这种方式?
答案 0 :(得分:0)
在Java中,CommonTree的String getText()方法仅返回关联的标记文本:
public String getText() {
if ( token==null ) {
return null;
}
return token.getText();
}
要获取令牌,您可以调用CommonTree的Token getToken()并通过令牌的void setText(String text)设置令牌文本。