/** * Print AST. * @param ast the root AST node. * @param rootPrefix prefix for the root node * @param prefix prefix for other nodes * @return string AST. */ public static String printTree(DetailNode ast, String rootPrefix, String prefix) { final StringBuilder messageBuilder = new StringBuilder(1024); DetailNode node = ast; while (node != null) { if (node.getType() == JavadocTokenTypes.JAVADOC) { messageBuilder.append(rootPrefix); } else { messageBuilder.append(prefix); } messageBuilder.append(getIndentation(node)) .append(JavadocUtil.getTokenName(node.getType())).append(" -> ") .append(JavadocUtil.escapeAllControlChars(node.getText())).append(" [") .append(node.getLineNumber()).append(':').append(node.getColumnNumber()) .append(']').append(LINE_SEPARATOR) .append(printTree(JavadocUtil.getFirstChild(node), rootPrefix, prefix)); node = JavadocUtil.getNextSibling(node); } return messageBuilder.toString(); }
/** * Print AST. * @param ast the root AST node. * @param rootPrefix prefix for the root node * @param prefix prefix for other nodes * @return string AST. */ public static String printTree(DetailNode ast, String rootPrefix, String prefix) { final StringBuilder messageBuilder = new StringBuilder(1024); DetailNode node = ast; while (node != null) { if (node.getType() == JavadocTokenTypes.JAVADOC) { messageBuilder.append(rootPrefix); } else { messageBuilder.append(prefix); } messageBuilder.append(getIndentation(node)) .append(JavadocUtil.getTokenName(node.getType())).append(" -> ") .append(JavadocUtil.escapeAllControlChars(node.getText())).append(" [") .append(node.getLineNumber()).append(':').append(node.getColumnNumber()) .append(']').append(LINE_SEPARATOR) .append(printTree(JavadocUtil.getFirstChild(node), rootPrefix, prefix)); node = JavadocUtil.getNextSibling(node); } return messageBuilder.toString(); }