Selon ce old article, vous devriez pouvoir appeler AST parser indépendamment de votre contexte d'application (plugin eclipse ou non).
ASTParser parser = ASTParser.newParser(AST.JLS2);
parser.setSource("".toCharArray());
CompilationUnit unit = (CompilationUnit) parser.createAST(null);
unit.recordModifications();
AST ast = unit.getAST();
alt text http://www.ibm.com/developerworks/opensource/library/os-ast/astexplorer.gif
De cette bug entry:
ASTParser dans la version 3.0 peut être utilisé dans un autre programme autonome pour créer Eclipse Eclipse sans RSHS en cours d'exécution en fait. Comme la documentation dit:
char[] source = ...;
ASTParser parser = ASTParser.newParser(AST.JLS2); // handles JLS2 (J2SE 1.4)
parser.setSource(source);
CompilationUnit result = (CompilationUnit) parser.createAST(null);
D'où this thread tente d'analyser une source java très courte:
import org.eclipse.jdt.core.dom.*;
import org.eclipse.jface.text.Document;
import org.eclipse.text.edits.TextEdit;
public class Test{
public static void main(String[] args){
Test t= new Test();
t.runtest();
}
void runtest(){
Document doc = new Document("import java.util.List;\nclass X {}\n");
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setResolveBindings(true);
parser.setSource(doc.get().toCharArray());
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.recordModifications();
AST ast = cu.getAST();
ImportDeclaration id = ast.newImportDeclaration();
id.setName(ast.newName(new String[] {"java", "util", "Set"}));
cu.imports().add(id); // add import declaration at end
TextEdit edits = cu.rewrite(doc, null);
}
}
vous Rock - J'ai dupliqués ne et le mettre sur github ici: https: //github.com/juliangamble/ASTTest – hawkeye
@hawkeye: excellent. +1 pour une solution beaucoup plus à jour. – VonC
comment puis-je obtenir les bocaux requis autres que commons-io? –