2016-04-13 10 views
0

Ich habe auf ein bestimmtes Problem, das zum Extrahieren eines Infixausdruck aus einem VariableDeclarationStatement festgefahren ist. zum Beispiel:Java JDT UI: Wie Infix-Ausdruck von einer VariableDeclarationStatement

Zeichenfolge s = 'a' + 'b' + 'c';

Dies ist eine Instanz von VariableDeclarationStatement. und ich muss den Infix-Ausdruck 'a'+'b'+'c' daraus machen.

Ich habe versucht: 1.Tried Konvertierung in String.Aber keine Konvertierung zurück ist möglich.

2.Tried Umwandlung in Liste, aber immer noch nicht möglich.

Ich habe oben Methoden versucht, um zu versuchen und InfixExpression daraus zu manipulieren. Bitte helfen Sie mir.

EDIT

hier ist das, was ich getan habe:

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

Bitte posten, was Sie bisher versucht haben – ehh

+0

@ehh ich einen Code-Schnipsel, wo iam versuchen, den Knoten zu konvertieren String und dann extrahieren Sie den infixAusdruck und konvertieren Sie ihn dann zurück. aber diese Konvertierung funktioniert nicht. – Midhun0407

+0

Sorry Java ist nicht mein Gebiet. Fragen Sie einfach nach, damit andere Ihnen helfen können. – ehh

Antwort

1

Sein noch unklar, was Sie tun wollen.

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); 
    } 
} 

Mit über Besucher können Sie alle InfixExpression Knoten mit zB Zugang:

ASTNode sourceNode = ... 
sourceNode.accept(new InfixVisitor()); 
Verwandte Themen