Package org.apache.fop.fo.expr
Class PropertyTokenizer
java.lang.Object
org.apache.fop.fo.expr.PropertyTokenizer
- Direct Known Subclasses:
PropertyParser
Class to tokenize XSL FO property expression.
This class is heavily based on the epxression tokenizer in James Clark's
XT, an XSLT processor.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprivate intprotected Stringprotected intprivate static final Stringprivate Stringprivate intprivate intprivate static final Stringprivate static final Stringprivate static final String(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final int -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a new PropertyTokenizer object to tokenize the passed String. -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanReturn a boolean value indicating whether the following non-whitespace character is an opening parenthesis.private static booleanisDigit(char c) Return a boolean value indicating whether the argument is a decimal digit (0-9).private static booleanisHexDigit(char c) Return a boolean value indicating whether the argument is a hexadecimal digit (0-9, A-F, a-f).private static booleanisNameChar(char c) Return a boolean value indicating whether the argument is a valid name character, ie.private static booleanisNameStartChar(char c) Return a boolean value indicating whether the argument is a valid name start character, ie.(package private) voidnext()Parse the next token in the expression string.private voidprivate voidprivate voidAttempt to recognize a valid sequence of decimal DIGITS in the input expression.private voidAttempt to recognize a valid sequence of hexadecimal DIGITS in the input expression.private voidscanName()Attempt to recognize a valid NAME token in the input expression.private void
-
Field Details
-
TOK_EOF
static final int TOK_EOF- See Also:
-
TOK_NCNAME
static final int TOK_NCNAME- See Also:
-
TOK_MULTIPLY
static final int TOK_MULTIPLY- See Also:
-
TOK_LPAR
static final int TOK_LPAR- See Also:
-
TOK_RPAR
static final int TOK_RPAR- See Also:
-
TOK_LITERAL
static final int TOK_LITERAL- See Also:
-
TOK_NUMBER
static final int TOK_NUMBER- See Also:
-
TOK_FUNCTION_LPAR
static final int TOK_FUNCTION_LPAR- See Also:
-
TOK_PLUS
static final int TOK_PLUS- See Also:
-
TOK_MINUS
static final int TOK_MINUS- See Also:
-
TOK_MOD
static final int TOK_MOD- See Also:
-
TOK_DIV
static final int TOK_DIV- See Also:
-
TOK_NUMERIC
static final int TOK_NUMERIC- See Also:
-
TOK_COMMA
static final int TOK_COMMA- See Also:
-
TOK_PERCENT
static final int TOK_PERCENT- See Also:
-
TOK_COLORSPEC
static final int TOK_COLORSPEC- See Also:
-
TOK_FLOAT
static final int TOK_FLOAT- See Also:
-
TOK_INTEGER
static final int TOK_INTEGER- See Also:
-
currentToken
protected int currentToken -
currentTokenValue
-
currentUnitLength
protected int currentUnitLength -
currentTokenStartIndex
private int currentTokenStartIndex -
expr
-
exprIndex
private int exprIndex -
exprLength
private int exprLength -
NAME_START_CHARS
- See Also:
-
NAME_CHARS
- See Also:
-
DIGITS
- See Also:
-
HEX_CHARS
- See Also:
-
-
Constructor Details
-
PropertyTokenizer
PropertyTokenizer(String s) Construct a new PropertyTokenizer object to tokenize the passed String.- Parameters:
s- The Property expressio to tokenize.
-
-
Method Details
-
next
Parse the next token in the expression string. This sets the following package visible variables: currentToken An enumerated value identifying the recognized token currentTokenValue A String containing the token contents currentUnitLength If currentToken = TOK_NUMERIC, the number of characters in the unit name.- Throws:
PropertyException- If un unrecognized token is encountered.
-
nextDecimalPoint
- Throws:
PropertyException
-
nextColor
- Throws:
PropertyException
-
scanName
private void scanName()Attempt to recognize a valid NAME token in the input expression. -
scanRestOfName
private void scanRestOfName() -
scanDigits
private void scanDigits()Attempt to recognize a valid sequence of decimal DIGITS in the input expression. -
scanHexDigits
private void scanHexDigits()Attempt to recognize a valid sequence of hexadecimal DIGITS in the input expression. -
followingParen
private boolean followingParen()Return a boolean value indicating whether the following non-whitespace character is an opening parenthesis. -
isDigit
private static boolean isDigit(char c) Return a boolean value indicating whether the argument is a decimal digit (0-9).- Parameters:
c- The character to check
-
isHexDigit
private static boolean isHexDigit(char c) Return a boolean value indicating whether the argument is a hexadecimal digit (0-9, A-F, a-f).- Parameters:
c- The character to check
-
isNameStartChar
private static boolean isNameStartChar(char c) Return a boolean value indicating whether the argument is a valid name start character, ie. can start a NAME as defined by XSL.- Parameters:
c- The character to check
-
isNameChar
private static boolean isNameChar(char c) Return a boolean value indicating whether the argument is a valid name character, ie. can occur in a NAME as defined by XSL.- Parameters:
c- The character to check
-