Interface InputBuffer

All Known Implementing Classes:
DefaultInputBuffer, IndentDedentInputBuffer, MutableInputBuffer

public interface InputBuffer
Abstraction of a simple char[] buffer holding the input text to be parsed.
  • Method Summary

    Modifier and Type
    Method
    Description
    char
    charAt(int index)
    Returns the character at the given index.
    extract(int start, int end)
    Constructs a new String from all character between the given indices.
    Constructs a new String from all character covered by the given IndexRange.
    extractLine(int lineNumber)
    Constructs a new String containing all characters with the given line number except for the trailing newline.
    int
    Returns the number of lines in the input buffer.
    int
    getOriginalIndex(int index)
    Translates the given index from the scope of this InputBuffer to the scope of the original, underlying char array.
    getPosition(int index)
    Returns the line and column number of the character with the given index encapsulated in a Position object.
    boolean
    test(int index, char[] characters)
    Determines whether the characters starting at the given index match the ones from the given array (in order).
  • Method Details

    • charAt

      char charAt(int index)
      Returns the character at the given index. If the index is invalid the method returns Chars.EOI.
      Parameters:
      index - the index
      Returns:
      the character at the given index or Chars.EOI.
    • test

      boolean test(int index, char[] characters)
      Determines whether the characters starting at the given index match the ones from the given array (in order).
      Parameters:
      index - the index into the input buffer where to start the comparison
      characters - the characters to test against the input buffer
      Returns:
      true if matched
    • extract

      String extract(int start, int end)
      Constructs a new String from all character between the given indices. Invalid indices are automatically adjusted to their respective boundary.
      Parameters:
      start - the start index (inclusively)
      end - the end index (exclusively)
      Returns:
      a new String (non-interned)
    • extract

      String extract(IndexRange range)
      Constructs a new String from all character covered by the given IndexRange.
      Parameters:
      range - the IndexRange
      Returns:
      a new String (non-interned)
    • getPosition

      Position getPosition(int index)
      Returns the line and column number of the character with the given index encapsulated in a Position object. The very first character has the line number 1 and the column number 1.
      Parameters:
      index - the index of the character to get the line number of
      Returns:
      the line number
    • getOriginalIndex

      int getOriginalIndex(int index)
      Translates the given index from the scope of this InputBuffer to the scope of the original, underlying char array. The DefaultInputBuffer implementation simply returns the given index, but other implementations like the IndentDedentInputBuffer or the MutableInputBuffer need to "undo" all compressions and index shiftings performed internally in order to return the underlying index.
      Parameters:
      index - the index relative to this InputBuffer
      Returns:
      the index relative to the underlying string or char array
    • extractLine

      String extractLine(int lineNumber)
      Constructs a new String containing all characters with the given line number except for the trailing newline.
      Parameters:
      lineNumber - the line number to get
      Returns:
      the string
    • getLineCount

      int getLineCount()
      Returns the number of lines in the input buffer.
      Returns:
      number of lines in the input buffer.