Class CodeReader

java.lang.Object
org.sonar.sslr.channel.CodeBuffer
org.sonar.sslr.channel.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 Details

    • 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 Details

    • 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
    • getPreviousCursor

      public final CodeBuffer.Cursor getPreviousCursor()