Package com.puppycrawl.tools.checkstyle
Class AstTreeStringPrinter
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.AstTreeStringPrinter
-
public final class AstTreeStringPrinter extends Object
Class for printing AST to String.
-
-
Constructor Summary
Constructors Modifier Constructor Description private
AstTreeStringPrinter()
Prevent instances.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static String
escapeAllControlChars(String text)
Replace all control chars with escaped symbols.private static String
getIndentation(DetailAST ast)
Get indentation for an AST node.private static String
getNodeInfo(DetailAST node)
Get string representation of the node as token name, node text, line number and column number.private static String
parseAndPrintJavadocTree(DetailAST node)
Parses block comment as javadoc and prints its tree.static String
printAst(FileText text, JavaParser.Options options)
Parse a file and print the parse tree.static String
printBranch(DetailAST node)
Print branch info from root down to givennode
.static String
printFileAst(File file, JavaParser.Options options)
Parse a file and print the parse tree.private static String
printJavaAndJavadocTree(DetailAST ast)
Prints full tree (java + comments + javadoc) of the DetailAST.static String
printJavaAndJavadocTree(File file)
Prints full AST (java + comments + javadoc) of the java file.private static String
printTree(DetailAST ast)
Print AST.
-
-
-
Constructor Detail
-
AstTreeStringPrinter
private AstTreeStringPrinter()
Prevent instances.
-
-
Method Detail
-
printFileAst
public static String printFileAst(File file, JavaParser.Options options) throws IOException, CheckstyleException
Parse a file and print the parse tree.- Parameters:
file
- the file to print.options
-JavaParser.Options
to control the inclusion of comment nodes.- Returns:
- the AST of the file in String form.
- Throws:
IOException
- if the file could not be read.CheckstyleException
- if the file is not a Java source.
-
printJavaAndJavadocTree
public static String printJavaAndJavadocTree(File file) throws IOException, CheckstyleException
Prints full AST (java + comments + javadoc) of the java file.- Parameters:
file
- java file- Returns:
- Full tree
- Throws:
IOException
- Failed to open a fileCheckstyleException
- error while parsing the file
-
printJavaAndJavadocTree
private static String printJavaAndJavadocTree(DetailAST ast)
Prints full tree (java + comments + javadoc) of the DetailAST.- Parameters:
ast
- root DetailAST- Returns:
- Full tree
-
parseAndPrintJavadocTree
private static String parseAndPrintJavadocTree(DetailAST node)
Parses block comment as javadoc and prints its tree.- Parameters:
node
- block comment begin- Returns:
- string javadoc tree
-
printAst
public static String printAst(FileText text, JavaParser.Options options) throws CheckstyleException
Parse a file and print the parse tree.- Parameters:
text
- the text to parse.options
-JavaParser.Options
to control the inclusion of comment nodes.- Returns:
- the AST of the file in String form.
- Throws:
CheckstyleException
- if the file is not a Java source.
-
printBranch
public static String printBranch(DetailAST node)
Print branch info from root down to givennode
.- Parameters:
node
- last item of the branch- Returns:
- branch as string
-
printTree
private static String printTree(DetailAST ast)
Print AST.- Parameters:
ast
- the root AST node.- Returns:
- string AST.
-
getNodeInfo
private static String getNodeInfo(DetailAST node)
Get string representation of the node as token name, node text, line number and column number.- Parameters:
node
- DetailAST- Returns:
- node info
-
getIndentation
private static String getIndentation(DetailAST ast)
Get indentation for an AST node.- Parameters:
ast
- the AST to get the indentation for.- Returns:
- the indentation in String format.
-
escapeAllControlChars
private static String escapeAllControlChars(String text)
Replace all control chars with escaped symbols.- Parameters:
text
- the String to process.- Returns:
- the processed String with all control chars escaped.
-
-