首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历AST节点

遍历AST节点
EN

Stack Overflow用户
提问于 2010-02-02 19:10:42
回答 2查看 1.7K关注 0票数 3

我想找出在包中使用AST api引用调用的行号。我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-02 20:01:46

下面举例说明了如何在此papercut article中的CompilationUnit方法中进行搜索

代码语言:javascript
复制
for (ICompilationUnit unit : mypackage.getCompilationUnits()) {
IType[] types = unit.getTypes();
for (int i = 0; i < types.length; i++) {
  IType type = types[i];
  IMethod[] methods = type.getMethods();

  • 如果方法是ASTNode,则可以使用ASTNode.getStartPosition()函数。
  • 如果该IMember的编译单元是CompilationUnit,则可以在unit中使用它
票数 2
EN

Stack Overflow用户

发布于 2010-02-02 19:54:28

CompilationUnit.getLineNumber(整型位置)

位置是相对于CompilationUnit对象的

文档:

返回与原始源字符串中给定源字符位置对应的行号。编译单元的初始行编号为1,每行都延伸到行尾分隔符的最后一个字符。最后一行一直延伸到源字符串的末尾,并且没有行分隔符。例如,对于源字符串类A\n{\n},有3行对应于包含字符范围0、7、8、9和10,10。对于不对应于任何源行的字符位置,返回-1;如果此编译单元没有可用的行号信息,则返回-2。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2183488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档