Package org.sonar.sslr.channel
Class CodeReader
java.lang.Object
org.sonar.sslr.channel.CodeBuffer
org.sonar.sslr.channel.CodeReader
- All Implemented Interfaces:
CharSequence
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.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.sonar.sslr.channel.CodeBuffer
CodeBuffer.Cursor -
Constructor Summary
ConstructorsConstructorDescriptionCodeReader(Reader code) CodeReader(Reader code, CodeReaderConfiguration configuration) Creates a code reader with specific configuration parameters.CodeReader(String code) CodeReader(String code, CodeReaderConfiguration configuration) Creates a code reader with specific configuration parameters. -
Method Summary
Modifier and TypeMethodDescriptionfinal CodeBuffer.Cursorfinal char[]peek(int length) Read without consuming the next charactersfinal voidpeekTo(EndMatcher matcher, Appendable appendable) Read without consuming the next characters until a condition is reached (EndMatcher)final voidpop(Appendable appendable) Read and consume the next characterfinal intpopTo(Matcher matcher, Appendable appendable) Read and consume the next characters according to a given regular expressionfinal intpopTo(Matcher matcher, Matcher afterMatcher, Appendable appendable) Read and consume the next characters according to a given regular expression.Methods inherited from class org.sonar.sslr.channel.CodeBuffer
charAt, getColumnPosition, getCursor, getLinePosition, intAt, lastChar, length, peek, pop, setColumnPosition, setLinePosition, startRecording, stopRecording, subSequence, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.CharSequence
chars, codePoints
-
Constructor Details
-
CodeReader
-
CodeReader
-
CodeReader
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 fromconfiguration- the configuration parameters
-
CodeReader
Creates a code reader with specific configuration parameters.- Parameters:
code- the code itselfconfiguration- the configuration parameters
-
-
Method Details
-
pop
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
Read without consuming the next characters until a condition is reached (EndMatcher)- Parameters:
matcher- the EndMatcher used to stop the readingappendable- the read characters is appended to appendable
-
popTo
Read and consume the next characters according to a given regular expression- Parameters:
matcher- the regular expression matcherappendable- 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
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 charactersafterMatcher- the Matcher used to check character sequence immediately following the consumed charactersappendable- 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
-