2016-04-13 15 views
0

からの発現を中置するにはどうすればVariableDeclarationStatementからinfixexpressionを抽出することで、特定の問題に貼付されています。例えば:JavaのJDT UIは:VariableDeclarationStatement

文字列S = '+ 'B' + 'C';

これはVariableDeclarationStatementのインスタンスです。私はそれからinfydexpression 'a'+'b'+'c'を取得する必要があります。

私は試しました: 1.文字列に変換しようとしました。変換はできません。可能なリストが、まだないために変換

2.Tried。

私がしようと操作して、私を助けてit.Pleaseのうち、InfixExpressionを抽出するためのメソッドの上にしようとしています。あなたが何をしたいのかまだ不明

if (node instanceof InfixExpression) { 
     infixExpression= (InfixExpression) node; 
    } else if (node.getParent() instanceof InfixExpression) { 
     infixExpression= (InfixExpression) node.getParent(); 
    } else {   //while trying to get this proposal with spaces its reaching here. 
     String nodeString =node.toString(); 
     String infixExp="s"; 
     int t; 
    for (t=0;nodeString.charAt(t)!='=';t++); 

     infixExp.concat(nodeString.substring(t+1, nodeString.length())); 
     infixExpression = (InfixExpression)infixExp;   //this cast doesn't work here 

    } 
+0

あなたはこれまでのところ、私はi'amは、ノードを変換しようとしているコードスニペットを持って@ehh – ehh

+0

を試してみましたが、何を投稿してください文字列に挿入してinfixexpressionを抽出し、それを元に戻します。その変換は機能しません。 – Midhun0407

+0

申し訳ありませんJavaは私の領域ではありません。他の人があなたを助けることができるように投稿するように依頼してください。 – ehh

答えて

1

その:こちらを

EDIT

は私がやっていることです。上記の訪問者で

public class InfixVisitor extends ASTVisitor { 
    @Override 
    public boolean visit(InfixExpression node) { 
     // NOTE: node.toString() should only be used debugging. 
     // Probably you could use it anyway. 
     ... 
     return super.visit(node); 
    } 
} 

あなたは例えばと、すべてのInfixExpressionのノードにアクセスすることができます。

ASTNode sourceNode = ... 
sourceNode.accept(new InfixVisitor()); 
関連する問題