Class CodeReader

  • All Implemented Interfaces:
    CharSequence

    public class CodeReader
    extends CodeBuffer
    The CodeReader class provides some advanced features to read a source code. The most important one is the ability to try consuming the next characters in the stream according to a regular expression.
    • Constructor Detail

      • CodeReader

        public CodeReader​(Reader code)
      • CodeReader

        public CodeReader​(String code)
      • CodeReader

        public CodeReader​(Reader code,
                          CodeReaderConfiguration configuration)
        Creates a code reader with specific configuration parameters. Note that this constructor will read everything from reader and will close it.
        Parameters:
        code - the Reader to read code from
        configuration - the configuration parameters
      • CodeReader

        public CodeReader​(String code,
                          CodeReaderConfiguration configuration)
        Creates a code reader with specific configuration parameters.
        Parameters:
        code - the code itself
        configuration - the configuration parameters
    • Method Detail

      • pop

        public final void pop​(Appendable appendable)
        Read and consume the next character
        Parameters:
        appendable - the read character is appended to appendable
      • peek

        public final char[] peek​(int length)
        Read without consuming the next characters
        Parameters:
        length - number of character to read
        Returns:
        array of characters
      • peekTo

        public final void peekTo​(EndMatcher matcher,
                                 Appendable appendable)
        Read without consuming the next characters until a condition is reached (EndMatcher)
        Parameters:
        matcher - the EndMatcher used to stop the reading
        appendable - the read characters is appended to appendable
      • popTo

        public final int popTo​(Matcher matcher,
                               Appendable appendable)
        Read and consume the next characters according to a given regular expression
        Parameters:
        matcher - the regular expression matcher
        appendable - the consumed characters are appended to this appendable
        Returns:
        number of consumed characters or -1 if the next input sequence doesn't match this matcher's pattern
      • popTo

        public final int popTo​(Matcher matcher,
                               Matcher afterMatcher,
                               Appendable appendable)
        Read and consume the next characters according to a given regular expression. Moreover the character sequence immediately following the desired characters must also match a given regular expression.
        Parameters:
        matcher - the Matcher used to try consuming next characters
        afterMatcher - the Matcher used to check character sequence immediately following the consumed characters
        appendable - the consumed characters are appended to this appendable
        Returns:
        number of consumed characters or -1 if one of the two Matchers doesn't match