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

  • Method Details

    • 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:
      charAt in interface CharSequence
      Parameters:
      index - the relative index of the character to be returned
      Returns:
      the desired character
      See Also:
    • 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:
      length in interface CharSequence
    • subSequence

      public final CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • toString

      public final String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object