private ASTNode parseSourceCode(int kind) { ASTParser parser = ASTParser.newParser(AST.JLS8); Map<String, String> parserOptions = JavaCore.getOptions(); parserOptions.put(CompilerOptions.OPTION_Source, this.sourceLevel); parserOptions.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED); parser.setCompilerOptions(parserOptions); switch (kind & K_MASK) { case K_COMPILATION_UNIT: return parseSourceCode(parser, ASTParser.K_COMPILATION_UNIT, true); case K_CLASS_BODY_DECLARATIONS: return parseSourceCode(parser, ASTParser.K_CLASS_BODY_DECLARATIONS, false); case K_STATEMENTS: return parseSourceCode(parser, ASTParser.K_STATEMENTS, false); case K_EXPRESSION: return parseSourceCode(parser, ASTParser.K_EXPRESSION, false); case K_UNKNOWN: int[] parserModes = { ASTParser.K_COMPILATION_UNIT, ASTParser.K_EXPRESSION, ASTParser.K_CLASS_BODY_DECLARATIONS, ASTParser.K_STATEMENTS }; for (int parserMode : parserModes) { ASTNode astNode = parseSourceCode(parser, parserMode, false); if (astNode != null) return astNode; parser.setCompilerOptions(parserOptions); // parser loses compiler options after every use } return null; default: throw new IllegalArgumentException(); } }
private List<Token> prepareFormattedCode(String source, int kind) { if (!init(source, kind)) return null; this.astRoot = parseSourceCode(kind); if (this.astRoot == null) return null; if (kind != CodeFormatter.K_UNKNOWN) findHeader(); prepareSpaces(); prepareLineBreaks(); prepareComments(); prepareWraps(kind); return this.tokens; }
private List<Token> prepareFormattedCode(String source, int kind) { if (!init(source, kind)) return null; this.astRoot = parseSourceCode(kind); if (this.astRoot == null) return null; if (kind != CodeFormatter.K_UNKNOWN) findHeader(); prepareSpaces(); prepareLineBreaks(); prepareComments(); prepareWraps(kind); return this.tokens; }
for (Token token : this.tokens) { if (token.tokenType == TokenNameCOMMENT_JAVADOC) { CompilationUnit cu = (CompilationUnit) parseSourceCode(ASTParser.K_COMPILATION_UNIT); Javadoc javadoc = (Javadoc) cu.getCommentList().get(0); javadoc.accept(commentsPreparator);
List<Token> prepareFormattedCode(String source, int kind) { if (!init(source)) return null; this.astRoot = parseSourceCode(kind); if (this.astRoot == null) return null; if (kind != CodeFormatter.K_UNKNOWN) findHeader(); prepareSpaces(); prepareLineBreaks(); prepareComments(); prepareWraps(kind); this.tokenManager.applyFormatOff(); return this.tokens; }
for (Token token : this.tokens) { if (token.tokenType == TokenNameCOMMENT_JAVADOC) { CompilationUnit cu = (CompilationUnit) parseSourceCode(ASTParser.K_COMPILATION_UNIT); Javadoc javadoc = (Javadoc) cu.getCommentList().get(0); javadoc.accept(commentsPreparator);
if (token.tokenType == TokenNameCOMMENT_JAVADOC) { parser.setSourceRange(token.originalStart, token.countChars()); CompilationUnit cu = (CompilationUnit) parseSourceCode(parser, ASTParser.K_COMPILATION_UNIT, true); Javadoc javadoc = (Javadoc) cu.getCommentList().get(0);