Class IncludingCharBuf.CharBuf

java.lang.Object
eu.bandm.tools.rdparser.IncludingCharBuf.CharBuf
Enclosing class:
IncludingCharBuf<D>

protected class IncludingCharBuf.CharBuf extends Object
Auxiliary class for IncludingCharBuf, representing exactly one source of character data, ie the original file or inserted expansions.
  • Field Details

    • location

      Location<D> location
      Position of the last bufferConsume(). (May be one position beyond the exisiting data, but this will be detected by the caller bufferConsume() immediately.)
    • startLocation

      Location<D> startLocation
      Position of the first IncludingCharBuf.consume().
    • data

      protected char[] data
      The complete data, read in when constructing the object.
    • len

      protected int len
      The length of the complete data, in characters.
    • CHUNKSIZE

      protected static final int CHUNKSIZE
      How many characters to read when filling from file.
      See Also:
    • pos

      protected int pos
      Current read position.
    • host

      protected IncludingCharBuf<D>.CharBuf host
      Chaining to calling CharBuf object.
  • Constructor Details

    • CharBuf

      public CharBuf(Reader r, IncludingCharBuf<D>.CharBuf buf, Location<D> loc) throws IOException
      Create a new buffer, link it via host to the calling text, and fill it with all character data from r.
      Parameters:
      r - source
      buf - calling predecessor
      loc - location of the start of the data
      Throws:
      IOException
    • CharBuf

      public CharBuf(char[] s, IncludingCharBuf<D>.CharBuf buf, Location<D> loc)
      Create a new buffer, link it via host to the calling text, and take the array s as its character data.
      Parameters:
      s - a character store, directly used by the new buffer.
      buf - calling predecessor
      loc - location of the start of the data
  • Method Details

    • fill

      protected void fill(Reader fr) throws IOException
      Fill the data from all contents of the reader, until its "eof".
      Throws:
      IOException
    • bufferLA

      public char bufferLA(int k)
      Look ahead to the next k-th character, either in its own data, or in the caller. The next-to-consume character is looked at with k=0(zero).
    • bufferConsume

      void bufferConsume()
      Advance position counter and line number, if linefeed is detected. Return to the including buffer, if this has reached its end, is made by the caller IncludingCharBuf.consume().

      Assume that all input is normalized to "\n" = "^J" = linefeed. (windows cr and apple cr-lf have been replaced.)

    • isNewline

      boolean isNewline(char c)
      Decide if the next character is a newline. Assume that the input is normalized to "\n" = "^J" = linefeed. (windows cr and apple cr-lf have been replaced.)