public abstract class Parser extends Object
Parser
object is to be used as a simple template
for parsing uncomplicated expressions. This object is used to parse
a String
. This provides a few methods that can be used
to store and track the reading of data from a buffer. There are two
abstract methods provided to allow this to be subclassed to create
a Parser
for a given String
.Modifier and Type | Field and Description |
---|---|
protected char[] |
buf
This is the buffer that is being parsed.
|
protected int |
count
This represents the length of the buffer.
|
protected int |
off
This represents the current read offset.
|
Modifier | Constructor and Description |
---|---|
protected |
Parser()
This is a no argument constructor for the
Parser . |
Modifier and Type | Method and Description |
---|---|
protected boolean |
digit(char c)
This is used to determine weather or not a given character is
a digit character.
|
protected void |
ensureCapacity(int min)
This ensure that there is enough space in the buffer to allow
for more
char 's to be added. |
protected abstract void |
init()
This will initialize the
Parser when it is ready
to parse a new String . |
protected abstract void |
parse()
This is the method that should be implemented to read
the buf.
|
void |
parse(String text)
This is used to parse the
String given to it. |
protected boolean |
skip(String text)
This is used to skip an arbitrary
String within the
char buf. |
protected boolean |
space(char c)
This is used to determine if a given ISO-8859-1 character is
a space character.
|
protected char |
toLower(char c)
This takes a unicode character and assumes an encoding of
ISO-8859-1.
|
protected char[] buf
protected int off
protected int count
protected Parser()
Parser
.
This will be invoked by each subclass of this object. It will
set the buffer to a zero length buffer so that when the
ensureCapacity
method is used the buf's
length can be checked.public void parse(String text)
String
given to it. This
will ensure that the char
buffer has enough space
to contain the characters from the String
. This
will firstly ensure that the buffer is resized if nessecary. The
second step in this parse
method is to initialize
the Parser
object so that multiple parse invocations
can be made. The init
method will reset this to an
prepared state. Then finally the parse
method is
called to parse the char
buffer.text
- the String
to be parsed with this
Parser
protected void ensureCapacity(int min)
char
's to be added. If the buffer is
already larger than min then the buffer will not be expanded
at all.min
- the minimum size needed to accommodate the charactersprotected boolean space(char c)
c
- the character that is being determined by thisprotected boolean digit(char c)
c
- the character being determined by this methodprotected char toLower(char c)
c
- the char
to be converted to lowercaseprotected boolean skip(String text)
String
within the
char
buf. It checks the length of the String
first to ensure that it will not go out of bounds. A comparison
is then made with the buffers contents and the String
if the reigon in the buffer matched the String
then the
offset within the buffer is increased by the String
's
length so that it has effectively skipped it.text
- this is the String
value to be skippedString
was skippedprotected abstract void init()
Parser
when it is ready
to parse a new String
. This will reset the
Parser
to a ready state. The init
method is invoked by the Parser
when the
parse
method is invoked.protected abstract void parse()
init
method is invoked.Copyright © 2024. All rights reserved.