Затмение ASTParser для анализа только функции Java? - PullRequest
1 голос
/ 11 августа 2010

Я просто хочу знать, используя org.eclipse.jdt.core.dom.ASTParser, можно ли анализировать только функцию Java?

Вот как я пытался: я передал код функции в ASTParser.setSource (char [] s) следующим образом:

    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    parser.setSource(unit); //set source
    CompilationUnit cu = (CompilationUnit) parser.createAST(null /* IProgressMonitor */); // parse
    List list = node.types();
    for(int i = 0; i < list.size(); i++){
       ASTNode typeNode = (ASTNode) list.get(i);
       System.out.println(ASTNode.nodeClassForType(typeNode.getNodeType()));
    }

Но я вижу, что в списке типов ничего нет (размер = 0).

Пожалуйста, предложите. Благодарю. Фахим

1 Ответ

1 голос
/ 12 августа 2010

Просто небольшая опечатка, в строке List list = node.types(); должно быть List list = cu.types();.Вы не можете передать только функцию.Это должен быть допустимый модуль компиляции Java, поэтому он должен иметь определение типа.Убедитесь, что вы обернули свою функцию классом.Любой класс.Это должно работать просто отлично.

Если это не сработает, помните, что вы можете запросить cu.getProblems() и посмотреть, где это не удалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...