Package org.sonar.sslr.channel
Class CodeBuffer
- java.lang.Object
-
- org.sonar.sslr.channel.CodeBuffer
-
- All Implemented Interfaces:
CharSequence
- Direct Known Subclasses:
CodeReader
public class CodeBuffer extends Object implements CharSequence
The CodeBuffer class provides all the basic features required to manipulate a source code character stream. Those features are :- Read and consume next source code character : pop()
- Retrieve last consumed character : lastChar()
- Read without consuming next source code character : peek()
- Read without consuming character at the specified index after the cursor
- Position of the pending cursor : line and column
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCodeBuffer.Cursor
-
Constructor Summary
Constructors Modifier Constructor Description protectedCodeBuffer(Reader initialCodeReader, CodeReaderConfiguration configuration)Note that this constructor will read everything from reader and will close it.protectedCodeBuffer(String code, CodeReaderConfiguration configuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description charcharAt(int index)Returns the character at the specified index after the cursor without consuming itintgetColumnPosition()CodeBuffer.CursorgetCursor()intgetLinePosition()protected intintAt(int index)intlastChar()Looks at the last consumed characterintlength()Returns the relative length of the string (i.e.intpeek()Looks at the next character without consuming itintpop()Read and consume the next characterCodeBuffersetColumnPosition(int cp)Overrides the current column positionvoidsetLinePosition(int lp)Overrides the current line positionvoidstartRecording()CharSequencestopRecording()CharSequencesubSequence(int start, int end)StringtoString()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.CharSequence
chars, codePoints
-
-
-
-
Constructor Detail
-
CodeBuffer
protected CodeBuffer(String code, CodeReaderConfiguration configuration)
-
CodeBuffer
protected CodeBuffer(Reader initialCodeReader, CodeReaderConfiguration configuration)
Note that this constructor will read everything from reader and will close it.
-
-
Method Detail
-
pop
public final int pop()
Read and consume the next character- Returns:
- the next character or -1 if the end of the stream is reached
-
lastChar
public final int lastChar()
Looks at the last consumed character- Returns:
- the last character or -1 if the no character has been yet consumed
-
peek
public final int peek()
Looks at the next character without consuming it- Returns:
- the next character or -1 if the end of the stream has been reached
-
getLinePosition
public final int getLinePosition()
- Returns:
- the current line of the cursor
-
getCursor
public final CodeBuffer.Cursor getCursor()
-
getColumnPosition
public final int getColumnPosition()
- Returns:
- the current column of the cursor
-
setColumnPosition
public final CodeBuffer setColumnPosition(int cp)
Overrides the current column position
-
setLinePosition
public final void setLinePosition(int lp)
Overrides the current line position
-
startRecording
public final void startRecording()
-
stopRecording
public final CharSequence stopRecording()
-
charAt
public final char charAt(int index)
Returns the character at the specified index after the cursor without consuming it- Specified by:
charAtin interfaceCharSequence- Parameters:
index- the relative index of the character to be returned- Returns:
- the desired character
- See Also:
CharSequence.charAt(int)
-
intAt
protected final int intAt(int index)
-
length
public final int length()
Returns the relative length of the string (i.e. excluding the popped chars)- Specified by:
lengthin interfaceCharSequence
-
subSequence
public final CharSequence subSequence(int start, int end)
- Specified by:
subSequencein interfaceCharSequence
-
toString
public final String toString()
- Specified by:
toStringin interfaceCharSequence- Overrides:
toStringin classObject
-
-