Package eu.bandm.tools.rdparser
Class IncludingCharBuf.CharBuf
java.lang.Object
eu.bandm.tools.rdparser.IncludingCharBuf.CharBuf
- Enclosing class:
- IncludingCharBuf<D>
Auxiliary class for
IncludingCharBuf
, representing exactly
one source of character data, ie the original file or inserted expansions.-
Field Summary
Modifier and TypeFieldDescriptionprotected static final int
How many characters to read when filling from file.protected char[]
The complete data, read in when constructing the object.protected IncludingCharBuf<D>.CharBuf
Chaining to callingCharBuf
object.protected int
The length of the complete data, in characters.Position of the lastbufferConsume()
.protected int
Current read position.Position of the firstIncludingCharBuf.consume()
. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription(package private) void
Advance position counter and line number, if linefeed is detected.char
bufferLA
(int k) Look ahead to the next k-th character, either in its own data, or in the caller.protected void
Fill the data from all contents of the reader, until its "eof".(package private) boolean
isNewline
(char c) Decide if the next character is a newline.
-
Field Details
-
location
Position of the lastbufferConsume()
. (May be one position beyond the exisiting data, but this will be detected by the callerbufferConsume()
immediately.) -
startLocation
Position of the firstIncludingCharBuf.consume()
. -
data
protected char[] dataThe complete data, read in when constructing the object. -
len
protected int lenThe length of the complete data, in characters. -
CHUNKSIZE
protected static final int CHUNKSIZEHow many characters to read when filling from file.- See Also:
-
pos
protected int posCurrent read position. -
host
Chaining to callingCharBuf
object.
-
-
Constructor Details
-
CharBuf
Create a new buffer, link it viahost
to the calling text, and fill it with all character data from r.- Parameters:
r
- sourcebuf
- calling predecessorloc
- location of the start of the data- Throws:
IOException
-
CharBuf
Create a new buffer, link it viahost
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 predecessorloc
- location of the start of the data
-
-
Method Details
-
fill
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 callerIncludingCharBuf.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.)
-