Class JavadocLexer


  • final class JavadocLexer
    extends java.lang.Object
    Lexer for the Javadoc formatter.
    • Field Detail

      • NON_UNIX_LINE_ENDING

        private static final java.util.regex.Pattern NON_UNIX_LINE_ENDING
      • somethingSinceNewline

        private boolean somethingSinceNewline
      • NEWLINE

        private static final com.google.common.base.CharMatcher NEWLINE
      • NEWLINE_PATTERN

        private static final java.util.regex.Pattern NEWLINE_PATTERN
      • FOOTER_TAG_PATTERN

        private static final java.util.regex.Pattern FOOTER_TAG_PATTERN
      • MOE_BEGIN_STRIP_COMMENT_PATTERN

        private static final java.util.regex.Pattern MOE_BEGIN_STRIP_COMMENT_PATTERN
      • MOE_END_STRIP_COMMENT_PATTERN

        private static final java.util.regex.Pattern MOE_END_STRIP_COMMENT_PATTERN
      • HTML_COMMENT_PATTERN

        private static final java.util.regex.Pattern HTML_COMMENT_PATTERN
      • PRE_OPEN_PATTERN

        private static final java.util.regex.Pattern PRE_OPEN_PATTERN
      • PRE_CLOSE_PATTERN

        private static final java.util.regex.Pattern PRE_CLOSE_PATTERN
      • CODE_OPEN_PATTERN

        private static final java.util.regex.Pattern CODE_OPEN_PATTERN
      • CODE_CLOSE_PATTERN

        private static final java.util.regex.Pattern CODE_CLOSE_PATTERN
      • TABLE_OPEN_PATTERN

        private static final java.util.regex.Pattern TABLE_OPEN_PATTERN
      • TABLE_CLOSE_PATTERN

        private static final java.util.regex.Pattern TABLE_CLOSE_PATTERN
      • LIST_OPEN_PATTERN

        private static final java.util.regex.Pattern LIST_OPEN_PATTERN
      • LIST_CLOSE_PATTERN

        private static final java.util.regex.Pattern LIST_CLOSE_PATTERN
      • LIST_ITEM_OPEN_PATTERN

        private static final java.util.regex.Pattern LIST_ITEM_OPEN_PATTERN
      • LIST_ITEM_CLOSE_PATTERN

        private static final java.util.regex.Pattern LIST_ITEM_CLOSE_PATTERN
      • HEADER_OPEN_PATTERN

        private static final java.util.regex.Pattern HEADER_OPEN_PATTERN
      • HEADER_CLOSE_PATTERN

        private static final java.util.regex.Pattern HEADER_CLOSE_PATTERN
      • PARAGRAPH_OPEN_PATTERN

        private static final java.util.regex.Pattern PARAGRAPH_OPEN_PATTERN
      • PARAGRAPH_CLOSE_PATTERN

        private static final java.util.regex.Pattern PARAGRAPH_CLOSE_PATTERN
      • BLOCKQUOTE_OPEN_PATTERN

        private static final java.util.regex.Pattern BLOCKQUOTE_OPEN_PATTERN
      • BLOCKQUOTE_CLOSE_PATTERN

        private static final java.util.regex.Pattern BLOCKQUOTE_CLOSE_PATTERN
      • BR_PATTERN

        private static final java.util.regex.Pattern BR_PATTERN
      • INLINE_TAG_OPEN_PATTERN

        private static final java.util.regex.Pattern INLINE_TAG_OPEN_PATTERN
      • LITERAL_PATTERN

        private static final java.util.regex.Pattern LITERAL_PATTERN
    • Constructor Detail

      • JavadocLexer

        private JavadocLexer​(CharStream input)
    • Method Detail

      • normalizeLineEndings

        private static java.lang.String normalizeLineEndings​(java.lang.String input)
        The lexer crashes on windows line endings, so for now just normalize to `\n`.
      • stripJavadocBeginAndEnd

        private static java.lang.String stripJavadocBeginAndEnd​(java.lang.String input)
      • preserveExistingFormatting

        private boolean preserveExistingFormatting()
      • joinAdjacentLiteralsAndAdjacentWhitespace

        private static com.google.common.collect.ImmutableList<Token> joinAdjacentLiteralsAndAdjacentWhitespace​(java.util.List<Token> input)
        Join together adjacent literal tokens, and join together adjacent whitespace tokens.

        For literal tokens, this means something like ["<b>", "foo", "</b>"] => ["<b>foo</b>"]. See LITERAL_PATTERN for discussion of why those tokens are separate to begin with.

        Whitespace tokens are treated analogously. We don't really "want" to join whitespace tokens, but in the course of joining literals, we incidentally join whitespace, too. We do take advantage of the joining later on: It simplifies inferParagraphTags(java.util.List<com.google.googlejavaformat.java.javadoc.Token>).

        Note that we do not merge a literal token and a whitespace token together.

      • deindentPreCodeBlocks

        private static com.google.common.collect.ImmutableList<Token> deindentPreCodeBlocks​(java.util.List<Token> input)
        Adjust indentation inside `
        ` blocks.
        
         <p>Also trim leading and trailing blank lines, and move the trailing `` to its own line.
      • deindentPreCodeBlock

        private static void deindentPreCodeBlock​(com.google.common.collect.ImmutableList.Builder<Token> output,
                                                 com.google.common.collect.PeekingIterator<Token> tokens)
      • hasMultipleNewlines

        private static boolean hasMultipleNewlines​(java.lang.String s)
      • fullCommentPattern

        private static java.util.regex.Pattern fullCommentPattern()
      • openTagPattern

        private static java.util.regex.Pattern openTagPattern​(java.lang.String namePattern)
      • closeTagPattern

        private static java.util.regex.Pattern closeTagPattern​(java.lang.String namePattern)