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 int
private int
protected String
protected int
private static final String
private String
private int
private int
private static final String
private static final String
private 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 boolean
Return a boolean value indicating whether the following non-whitespace character is an opening parenthesis.private static boolean
isDigit
(char c) Return a boolean value indicating whether the argument is a decimal digit (0-9).private static boolean
isHexDigit
(char c) Return a boolean value indicating whether the argument is a hexadecimal digit (0-9, A-F, a-f).private static boolean
isNameChar
(char c) Return a boolean value indicating whether the argument is a valid name character, ie.private static boolean
isNameStartChar
(char c) Return a boolean value indicating whether the argument is a valid name start character, ie.(package private) void
next()
Parse the next token in the expression string.private void
private void
private void
Attempt to recognize a valid sequence of decimal DIGITS in the input expression.private void
Attempt to recognize a valid sequence of hexadecimal DIGITS in the input expression.private void
scanName()
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
-