当前位置: 首页 > 知识库问答 >
问题:

查找变量标识符的变量声明(Eclipse JDT ASTNode)

严成礼
2023-03-14

我正在分析ASTNodes(org.eclipse.jdt.core.dom),并试图找到我拥有的变量节点(SimpleName)的VariableDeclaration。示例

String foo = "bar"; // <-- need to get node for 'foo' (VariableDeclaration)
....
....
return foo; // <-- have node for 'foo' (SimpleName)

我还需要一个解决方案,可以找到声明,如果它是一个类字段。

共有1个答案

锺离嘉容
2023-03-14

不知道你正在做什么的具体细节,下面是我如何用简单的术语来做这样的事情:

我会将AST传送到每个VarDecl,并将左侧子节点发送到“AST节点->source Location”函数,以查看“source Location”文本是否匹配foo。

 类似资料:
  • 问题内容: 我想知道在MS SQL Server 2005中是否有办法做到这一点: 这可能吗? 问题答案: 有可能,但是需要使用动态SQL。 我建议先阅读动态SQL的诅咒和祝福,然后再继续… 动态SQL只是一条SQL语句,在执行前由字符串组成。因此,通常的字符串连接发生。每当您想以不允许的SQL语法执行某些操作时,都需要使用动态SQL,例如: 单个参数表示IN子句的逗号分隔值列表 一个既代表值又代

  • let和const是JavaScript里相对较新的变量声明方式。 像我们之前提到过的,let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题。 const是对let的一个增强,它能阻止对一个变量再次赋值。 因为TypeScript是JavaScript的超集,所以它本身就支持let和const。 下面我们会详细说明这些新的声明方式以及为什么推荐使用它们来代替v

  • 局部变量使用关键字 def 来声明,其只在声明它的地方可见 . 局部变量是 Groovy 语言的一个基本特性. 例子 13.2 . 使用局部变量 def dest = "dest" task copy(type: Copy) { form "source" into dest }

  • Rust 语言可以先声明变量绑定,后面才将它们初始化。但是这种情况用得很少,因为这样很可能导致使用未 初始的变量。 fn main() { // 声明一个变量绑定 let a_binding; { let x = 2; // 初始化一个绑定 a_binding = x * x; } println!("a bi

  • 问题内容: 我不明白这个脚本有什么问题 我希望它在表中插入10个值,但是第二行有错误。 问题答案: MySQL不支持执行存储过程代码的匿名块。 您需要创建一个包含该代码的存储过程,然后调用它。 另外,您在插入语句的末尾缺少分号。我修好了 您可能还想使用concat()而不是+来生成名称,但是我将把更改留给您。 创建过程: 调用过程:

  • 主要内容:类型断言(Type Assertion),类型推断,变量作用域变量是一种使用方便的占位符,用于引用计算机内存地址。 我们可以把变量看做存储数据的容器。 TypeScript 变量的命名规则: 变量名称可以包含数字和字母。 除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。 变量名不能以数字开头。 变量使用前必须先声明,我们可以使用 var 来声明变量。 我们可以使用以下四种方式来声明变量: 声明变量的类型及初始值: 例如: 声明变量的类型,