在遍历EclipseJDT生成的AST时,访问源令牌流中的空白或其他格式化令牌

在遍历EclipseJDT生成的AST时,访问源令牌流中的空白或其他格式化令牌,eclipse,antlr,abstract-syntax-tree,static-analysis,eclipse-jdt,Eclipse,Antlr,Abstract Syntax Tree,Static Analysis,Eclipse Jdt,除了一些静态分析之外,我还使用AST执行某些lint样式的检查,我想了解如何访问AST节点附近的空白和其他此类格式化标记。我目前正在使用EclipseJDT生成AST 我正在寻找EclipseJDT中的机制,相当于ANTLR提供的通道机制;它生成解析树,并为令牌流提供单独的通道(隐藏通道和解析树通道)或实现相同功能的解决方法。AST中的每个令牌都带有一个索引,描述其在输入流中的绝对位置(0..n)。当你检查它们时,你会发现它们不是连续的。这是因为隐藏的令牌丢失了。知道您可以使用您的令牌源按索引获

除了一些静态分析之外,我还使用AST执行某些lint样式的检查,我想了解如何访问AST节点附近的空白和其他此类格式化标记。我目前正在使用EclipseJDT生成AST


我正在寻找EclipseJDT中的机制,相当于ANTLR提供的通道机制;它生成解析树,并为令牌流提供单独的通道(隐藏通道和解析树通道)或实现相同功能的解决方法。

AST中的每个令牌都带有一个索引,描述其在输入流中的绝对位置(0..n)。当你检查它们时,你会发现它们不是连续的。这是因为隐藏的令牌丢失了。知道您可以使用您的令牌源按索引获取任何令牌,包括隐藏的令牌。

您是指提供源中节点/令牌的第一个字符的索引的
node.getStartPosition()
?隐藏标记的含义分析只能在字符数组抽象级别进行,而不能在源代码的“标记列表”抽象级别进行@MikeLischkeNo,我是指公共令牌结构/类中的
getTokenIndex()
,以及从令牌源中获取给定索引的任意令牌。也许您指的是ANTLR中的CommonToken类及其方法,即:。我在EclipseJDT中寻找与上述功能等效的功能。编辑问题以澄清这一点@MikeLischkeAh,我明白了。那么我的回答可能没有帮助,对不起。