public final class VelocityCharStream extends java.lang.Object implements CharStream
An implementation of interface CharStream, where the stream is assumed to contain only ASCII characters (without unicode processing).
NOTE : This class was originally an ASCII_CharStream autogenerated by Javacc. It was then modified via changing class name with appropriate fixes for CTORS, and mods to readChar().
This is safe because we *always* use Reader with this class, and never a InputStream. This guarantees that we have a correct stream of 16-bit chars - all encoding transformations have been done elsewhere, so we believe that there is no risk in doing this. Time will tell :)
Modifier and Type | Field and Description |
---|---|
(package private) int |
available |
private boolean |
beforeEOF |
private int[] |
bufcolumn |
private char[] |
buffer |
private int[] |
bufline |
int |
bufpos |
(package private) int |
bufsize |
private int |
column |
private static char |
END_OF_FILE |
private int |
inBuf |
private java.io.Reader |
inputStream |
private int |
line |
private int |
maxNextCharInd |
private int |
nextBufExpand |
private boolean |
prevCharIsCR |
private boolean |
prevCharIsLF |
static boolean |
staticFlag |
(package private) int |
tokenBegin |
Constructor and Description |
---|
VelocityCharStream(java.io.InputStream dstream,
int startline,
int startcolumn) |
VelocityCharStream(java.io.InputStream dstream,
int startline,
int startcolumn,
int buffersize) |
VelocityCharStream(java.io.Reader dstream,
int startline,
int startcolumn) |
VelocityCharStream(java.io.Reader dstream,
int startline,
int startcolumn,
int buffersize) |
Modifier and Type | Method and Description |
---|---|
void |
adjustBeginLineColumn(int newLine,
int newCol)
Method to adjust line and column numbers for the start of a token.
|
void |
backup(int amount)
Backs up the input stream by amount steps.
|
char |
BeginToken()
Returns the next character that marks the beginning of the next token.
|
void |
Done()
The lexer calls this function to indicate that it is done with the stream
and hence implementations can free any resources held by this class.
|
private void |
ExpandBuff(boolean wrapAround) |
private void |
FillBuff() |
int |
getBeginColumn()
Returns the column number of the first character for current token (being
matched after the last call to BeginTOken).
|
int |
getBeginLine()
Returns the line number of the first character for current token (being
matched after the last call to BeginTOken).
|
int |
getEndColumn()
Returns the column number of the last character for current token (being
matched after the last call to BeginTOken).
|
int |
getEndLine()
Returns the line number of the last character for current token (being
matched after the last call to BeginTOken).
|
java.lang.String |
GetImage()
Returns a string made up of characters from the marked token beginning
to the current buffer position.
|
char[] |
GetSuffix(int len)
Returns an array of characters that make up the suffix of length 'len' for
the currently matched token.
|
char |
readChar()
Returns the next character from the selected input.
|
void |
ReInit(java.io.InputStream dstream,
int startline,
int startcolumn) |
void |
ReInit(java.io.InputStream dstream,
int startline,
int startcolumn,
int buffersize) |
void |
ReInit(java.io.Reader dstream,
int startline,
int startcolumn) |
void |
ReInit(java.io.Reader dstream,
int startline,
int startcolumn,
int buffersize) |
private void |
UpdateLineColumn(char c) |
public static final boolean staticFlag
int bufsize
private int nextBufExpand
int available
int tokenBegin
public int bufpos
private int[] bufline
private int[] bufcolumn
private int column
private int line
private boolean prevCharIsCR
private boolean prevCharIsLF
private java.io.Reader inputStream
private char[] buffer
private int maxNextCharInd
private int inBuf
private boolean beforeEOF
private static char END_OF_FILE
public VelocityCharStream(java.io.Reader dstream, int startline, int startcolumn, int buffersize)
dstream
- startline
- startcolumn
- buffersize
- public VelocityCharStream(java.io.Reader dstream, int startline, int startcolumn)
dstream
- startline
- startcolumn
- public VelocityCharStream(java.io.InputStream dstream, int startline, int startcolumn, int buffersize)
dstream
- startline
- startcolumn
- buffersize
- public VelocityCharStream(java.io.InputStream dstream, int startline, int startcolumn)
dstream
- startline
- startcolumn
- private void ExpandBuff(boolean wrapAround)
private void FillBuff() throws java.io.IOException
java.io.IOException
public final char BeginToken() throws java.io.IOException
CharStream
BeginToken
in interface CharStream
java.io.IOException
CharStream.BeginToken()
private void UpdateLineColumn(char c)
public final char readChar() throws java.io.IOException
CharStream
readChar
in interface CharStream
java.io.IOException
CharStream.readChar()
public final int getEndColumn()
CharStream
getEndColumn
in interface CharStream
CharStream.getEndColumn()
public final int getEndLine()
CharStream
getEndLine
in interface CharStream
CharStream.getEndLine()
public final int getBeginColumn()
CharStream
getBeginColumn
in interface CharStream
CharStream.getBeginColumn()
public final int getBeginLine()
CharStream
getBeginLine
in interface CharStream
CharStream.getBeginLine()
public final void backup(int amount)
CharStream
backup
in interface CharStream
CharStream.backup(int)
public void ReInit(java.io.Reader dstream, int startline, int startcolumn, int buffersize)
dstream
- startline
- startcolumn
- buffersize
- public void ReInit(java.io.Reader dstream, int startline, int startcolumn)
dstream
- startline
- startcolumn
- public void ReInit(java.io.InputStream dstream, int startline, int startcolumn, int buffersize)
dstream
- startline
- startcolumn
- buffersize
- public void ReInit(java.io.InputStream dstream, int startline, int startcolumn)
dstream
- startline
- startcolumn
- public final java.lang.String GetImage()
CharStream
GetImage
in interface CharStream
CharStream.GetImage()
public final char[] GetSuffix(int len)
CharStream
Returns an array of characters that make up the suffix of length 'len' for the currently matched token. This is used to build up the matched string for use in actions in the case of MORE. A simple and inefficient implementation of this is as follows :
{
String t = GetImage();
return t.substring(t.length() - len, t.length()).toCharArray();
}
GetSuffix
in interface CharStream
len
- suffix lenCharStream.GetSuffix(int)
public void Done()
CharStream
Done
in interface CharStream
CharStream.Done()
public void adjustBeginLineColumn(int newLine, int newCol)
newLine
- newCol
-