[英]How to get binary subexpressions with javaparser
我正在使用javaparser解析Java源文件的AST。
我想將源代碼中的所有二進制子表達式作為單個節點獲取。 這是我正在解析的源代碼:
class MyClass {
public MyClass() {
double x = (4 / 10.0) + 15;
}
}
我實現了一個Visitor,該Visitor接受內置的BinaryExp類型,但是它找到的唯一節點包含二進制表達式:
(4 / 10.0) + 15
有沒有辦法訪問子表達式“(4 / 10.0)”? 我嘗試獲取完整表達式的“左操作數”,但是它的類型為Expression,而不是我期望的BinaryExpr。
任何幫助,將不勝感激。
左操作數不能為Expression
的實際類型,因為Expression
是抽象類。
binEx.getLeft() instanceof BinaryExp
檢查實際類型。如果該值為true,則可以binEx.getLeft() instanceof BinaryExp
為BinaryExpression。 EnclosedExpr
(括號)。 那么二進制表達式是左節點的子代 這可能無法解決整個問題。 我認為您錯過了將訪問者應用於子節點。 您必須調整visit(BinaryExpr n, A arg)
:
GenericVisitorAdaptor
,則必須調用super.visit(n,arg)
accept(this, arg)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.