Question

Pourriez-vous donner un exemple d'accès à l'arbre de syntaxe abstraite Eclipse par programmation pour un morceau de code donné?

Par exemple, obtenir l'AST pour:

Class1.java

package parseable;

public class Class1 {

/**
 * @param args
 */
public static void main(String[] args) {
    System.out.println("Hello world!");
}

}

Était-ce utile?

La solution

Ce n'est pas une réponse exacte , cela peut vous donner un point de départ:

Comme indiqué dans cette question ,

Un exemple complet est disponible dans ce coin eclipse article , plus de détails également dans le Aide eclipse . Et dans la diapositive 59 de dans cette présentation , vous voyez comment appliquer une modification à votre code source.

Autres conseils

// get an ICompilationUnit by some means
// you might drill down from an IJavaProject, for instance 
ICompilationUnit iunit = ...

// create a new parser for the latest Java Language Spec
ASTParser parser = ASTParser.newParser(AST.JLS3);

// tell the parser you are going to pass it some code where the type level is a source file
// you might also just want to parse a block, or a method ("class body declaration"), etc
parser.setKind(ASTParser.K_COMPILATION_UNIT);

// set the source to be parsed to the ICompilationUnit
// we could also use a character array
parser.setSource(iunit);

// parse it.
// the output will be a CompilationUnit (also an ASTNode)
// the null is because we're not using a progress monitor
CompilationUnit unit = (CompilationUnit) parser.createAST(null);

Ne soyez pas dérouté par la distinction ICompilationUnit vs CompilationUnit, qui semble résulter simplement d’une dénomination peu créative de leur part. CompilationUnit est un type de ASTNode. ICompilationUnit dans ce contexte ressemble à un descripteur de fichier. Pour plus d'informations sur la distinction, voir ici: http://wiki.eclipse.org/FAQ_How_do_I_manipulate_Java_code%%FF a>

scroll top