类 Tokenizer

java.lang.Object
cn.taketoday.expression.spel.standard.Tokenizer

final class Tokenizer extends Object
Lex some input data into a stream of tokens that can then be parsed.
从以下版本开始:
4.0
作者:
Andy Clement, Juergen Hoeller, Phillip Webb, Harry Yang
  • 字段详细资料

    • ALTERNATIVE_OPERATOR_NAMES

      private static final String[] ALTERNATIVE_OPERATOR_NAMES
      Alternative textual operator names which must match enum constant names in TokenKind.

      Note that AND and OR are also alternative textual names, but they are handled later in InternalSpelExpressionParser.

      If this list gets changed, it must remain sorted since we use it with Arrays.binarySearch(Object[], Object).

    • FLAGS

      private static final byte[] FLAGS
    • IS_DIGIT

      private static final byte IS_DIGIT
      另请参阅:
    • IS_HEXDIGIT

      private static final byte IS_HEXDIGIT
      另请参阅:
    • expressionString

      private final String expressionString
    • charsToProcess

      private final char[] charsToProcess
    • pos

      private int pos
    • max

      private final int max
    • tokens

      private final ArrayList<Token> tokens
  • 构造器详细资料

    • Tokenizer

      public Tokenizer(String inputData)
  • 方法详细资料

    • process

      public List<Token> process()
    • lexQuotedStringLiteral

      private void lexQuotedStringLiteral()
    • lexDoubleQuotedStringLiteral

      private void lexDoubleQuotedStringLiteral()
    • lexNumericLiteral

      private void lexNumericLiteral(boolean firstCharIsZero)
    • lexIdentifier

      private void lexIdentifier()
    • pushIntToken

      private void pushIntToken(char[] data, boolean isLong, int start, int end)
    • pushHexIntToken

      private void pushHexIntToken(char[] data, boolean isLong, int start, int end)
    • pushRealToken

      private void pushRealToken(char[] data, boolean isFloat, int start, int end)
    • subarray

      private char[] subarray(int start, int end)
    • isTwoCharToken

      private boolean isTwoCharToken(TokenKind kind)
      Check if this might be a two character token.
    • pushCharToken

      private void pushCharToken(TokenKind kind)
      Push a token of just one character in length.
    • pushPairToken

      private void pushPairToken(TokenKind kind)
      Push a token of two characters in length.
    • pushOneCharOrTwoCharToken

      private void pushOneCharOrTwoCharToken(TokenKind kind, int pos, char[] data)
    • isIdentifier

      private boolean isIdentifier(char ch)
    • isChar

      private boolean isChar(char a, char b)
    • isExponentChar

      private boolean isExponentChar(char ch)
    • isFloatSuffix

      private boolean isFloatSuffix(char ch)
    • isDoubleSuffix

      private boolean isDoubleSuffix(char ch)
    • isSign

      private boolean isSign(char ch)
    • isDigit

      private boolean isDigit(char ch)
    • isAlphabetic

      private boolean isAlphabetic(char ch)
    • isHexadecimalDigit

      private boolean isHexadecimalDigit(char ch)
    • isExhausted

      private boolean isExhausted()
    • raiseParseException

      private void raiseParseException(int start, SpelMessage msg, Object... inserts)