-
- All Known Implementing Classes:
CharScannerSyntaxBean
public interface CharScannerSyntax
This is the interface used to define the syntax to scan characters.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description char
getAltQuoteEnd()
This method gets the alternative character used to end a quotation.char
getAltQuoteEscape()
This method gets the character used to escape thealt-quote-end
character within an quotation opened byalt-quote-start
.char
getAltQuoteStart()
This method gets the alternative character used to start a quotation that should be terminated by aalt-quote-end
character.char
getEntityEnd()
This method gets the character used to end an entity.char
getEntityStart()
This method gets the character used to start an entity.char
getEscape()
This method gets the character used as escape.char
getQuoteEnd()
This method gets the character used to end a quotation.char
getQuoteEscape()
This method gets the character used to escape thequote-end
character within a quotation.char
getQuoteStart()
This method gets the character used to start a quotation that should be terminated by aquote-end
character.boolean
isAltQuoteEscapeLazy()
Ifalt-quote-start
,alt-quote-end
andalt-quote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifalt-quotation escaping
is lazy.boolean
isQuoteEscapeLazy()
Ifquote-start
,quote-end
andquote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifquotation escaping
is lazy.String
resolveEntity(String entity)
This method resolves the givenentity
.
-
-
-
Method Detail
-
getQuoteStart
char getQuoteStart()
This method gets the character used to start a quotation that should be terminated by aquote-end
character. The text inside the quote is taken as is (without the quote characters).
Common examples for quote characters are the single quotes ('
) and double quotes ("
).- Returns:
- the character used to start a quotation or
'\0'
to disable.
-
getQuoteEnd
char getQuoteEnd()
This method gets the character used to end a quotation.- Returns:
- the character used to end a quotation or
'\0'
to disable. - See Also:
getQuoteStart()
-
getEscape
char getEscape()
This method gets the character used as escape. It is used to mark special characters likegetQuoteStart()
to allow these characters also in the payload. The escape itself is removed on decoding while the next character is taken as is without any special interpretation.
The most common escape character is the backslash (\
).
Here are some examples for decoding:escape
input output \ a\b\\c ab\c ~ a~b~~~c ab~c stop-character
,quote-start
,alt-quote-start
, as well as theescape
itself.
ATTENTION:
Theescape
is disabled withinquotations
.- Returns:
- the escape character or
'\0'
for no escaping. - See Also:
getEntityStart()
-
getQuoteEscape
char getQuoteEscape()
This method gets the character used to escape thequote-end
character within a quotation. This may be thequote-end
itself so a duplicatequote-end
represents a single occurrence of that character within a quotation. Otherwise the escape may be any other character.
Please note that this escaping is only active within a quotation opened byquote-start
and only escapes thequote-end
character and nothing else so in any other case thequote-escape
is treated as a regular character.
quote-start
quote-end
quote-escape
input output ' ' ' a'bc'd abcd ' ' ' a'b''c'd ab'cd ' ' \ a'b\c\'d\\'e'f ab\c'd\'ef - Returns:
- the character used to escape the
quote-end
character or'\0'
to disable.
-
isQuoteEscapeLazy
boolean isQuoteEscapeLazy()
Ifquote-start
,quote-end
andquote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifquotation escaping
is lazy. This means that outside a quotation a double occurrence of the quote character is NOT treated as quotation but as escaped quote character. Otherwise if NOT lazy, the double quote character is treated as quotation representing the empty sequence.
Here are some examples:quote-start
quote-end
quote-escape
quote-escape-lazy
input output ' ' ' true '' ' ' ' ' false '' ' ' ' true '''' '' ' ' ' false '''' ' ' ' ' true '''a' 'a ' ' ' false '''a' 'a
Please note that for'''a'
the complete sequence is treated as quote ifquote-escape-lazy
isfalse
and otherwise just the trailing'a'
.- Returns:
true
if quote-escaping is lazy,false
otherwise.
-
getAltQuoteStart
char getAltQuoteStart()
This method gets the alternative character used to start a quotation that should be terminated by aalt-quote-end
character. The text inside the quote is taken as is (without the quote characters).- Returns:
- the alternative character used to start a quotation or
'\0'
to disable. - See Also:
getQuoteStart()
-
getAltQuoteEnd
char getAltQuoteEnd()
This method gets the alternative character used to end a quotation.- Returns:
- the alternative character used to end a quotation.
- See Also:
getAltQuoteStart()
-
getAltQuoteEscape
char getAltQuoteEscape()
This method gets the character used to escape thealt-quote-end
character within an quotation opened byalt-quote-start
.- Returns:
- the character used to escape the
quote-end
character or'\0'
to disable. - See Also:
getQuoteEscape()
-
isAltQuoteEscapeLazy
boolean isAltQuoteEscapeLazy()
Ifalt-quote-start
,alt-quote-end
andalt-quote-escape
all point to the same character (which is NOT'\0'
), then this method determines ifalt-quotation escaping
is lazy.- Returns:
true
if alt-quote-escaping is lazy,false
otherwise.- See Also:
isQuoteEscapeLazy()
-
getEntityStart
char getEntityStart()
This method gets the character used to start an entity. An entity is a specific encoded string surrounded withentity-start
andentity-end
. It will be decoded byresolveEntity(String)
.- Returns:
- the character used to start an entity or
'\0'
to disable.
-
getEntityEnd
char getEntityEnd()
This method gets the character used to end an entity.- Returns:
- the character used to end an entity.
- See Also:
getEntityStart()
-
resolveEntity
String resolveEntity(String entity)
This method resolves the givenentity
.
E.g. ifentity-start
is'&'
andgetEntityEnd()
is';'
then if the string"<"
is scanned, this method is called with"lt"
asentity
argument and may return"<"
.- Parameters:
entity
- is the entity string that was found surrounded byentity-start
andentity-end
excluding these characters.- Returns:
- the decoded entity.
-
-