如何用C#替换AST(ANTLR)中的文本

时间:2012-12-17 13:31:23

标签: c# antlr3 abstract-syntax-tree

任何人都可以帮我解决这个问题。我需要遍历一个抽象语法树来替换C#中所有的儿童文本

1 个答案:

答案 0 :(得分:1)

我会说CommonTree.Text属性是为此目的而提供的,但正如您所看到的,该方法实际上什么都不做。 CommonTreeAdaptor.SetText方法(继承自BaseTreeAdaptor至少会抛出NotSupportedException

您需要做的是获取与树节点关联的IToken,可能是通过调用CommonTreeAdaptor.GetToken。然后,您可以设置令牌的IToken.Text属性,至少为CommonToken is implemented