Class JMESPath::Lexer
In: lib/jmespath/lexer.rb
Parent: Object

@api private

Methods

tokenize  

Classes and Modules

Class JMESPath::Lexer::CharacterStream

Constants

T_DOT = :dot
T_STAR = :star
T_COMMA = :comma
T_COLON = :colon
T_CURRENT = :current
T_EXPREF = :expref
T_LPAREN = :lparen
T_RPAREN = :rparen
T_LBRACE = :lbrace
T_RBRACE = :rbrace
T_LBRACKET = :lbracket
T_RBRACKET = :rbracket
T_FLATTEN = :flatten
T_IDENTIFIER = :identifier
T_NUMBER = :number
T_QUOTED_IDENTIFIER = :quoted_identifier
T_UNKNOWN = :unknown
T_PIPE = :pipe
T_OR = :or
T_AND = :and
T_NOT = :not
T_FILTER = :filter
T_LITERAL = :literal
T_EOF = :eof
T_COMPARATOR = :comparator
STATE_IDENTIFIER = 0
STATE_NUMBER = 1
STATE_SINGLE_CHAR = 2
STATE_WHITESPACE = 3
STATE_STRING_LITERAL = 4
STATE_QUOTED_STRING = 5
STATE_JSON_LITERAL = 6
STATE_LBRACKET = 7
STATE_PIPE = 8
STATE_LT = 9
STATE_GT = 10
STATE_EQ = 11
STATE_NOT = 12
STATE_AND = 13
TRANSLATION_TABLE = { '<' => STATE_LT, '>' => STATE_GT, '=' => STATE_EQ, '!' => STATE_NOT, '[' => STATE_LBRACKET, '|' => STATE_PIPE, '&' => STATE_AND, '`' => STATE_JSON_LITERAL, '"' => STATE_QUOTED_STRING, "'" => STATE_STRING_LITERAL, '-' => STATE_NUMBER, '0' => STATE_NUMBER, '1' => STATE_NUMBER, '2' => STATE_NUMBER, '3' => STATE_NUMBER, '4' => STATE_NUMBER, '5' => STATE_NUMBER, '6' => STATE_NUMBER, '7' => STATE_NUMBER, '8' => STATE_NUMBER, '9' => STATE_NUMBER, ' ' => STATE_WHITESPACE, "\t" => STATE_WHITESPACE, "\n" => STATE_WHITESPACE, "\r" => STATE_WHITESPACE, '.' => STATE_SINGLE_CHAR, '*' => STATE_SINGLE_CHAR, ']' => STATE_SINGLE_CHAR, ',' => STATE_SINGLE_CHAR, ':' => STATE_SINGLE_CHAR, '@' => STATE_SINGLE_CHAR, '(' => STATE_SINGLE_CHAR, ')' => STATE_SINGLE_CHAR, '{' => STATE_SINGLE_CHAR, '}' => STATE_SINGLE_CHAR, '_' => STATE_IDENTIFIER, 'A' => STATE_IDENTIFIER, 'B' => STATE_IDENTIFIER, 'C' => STATE_IDENTIFIER, 'D' => STATE_IDENTIFIER, 'E' => STATE_IDENTIFIER, 'F' => STATE_IDENTIFIER, 'G' => STATE_IDENTIFIER, 'H' => STATE_IDENTIFIER, 'I' => STATE_IDENTIFIER, 'J' => STATE_IDENTIFIER, 'K' => STATE_IDENTIFIER, 'L' => STATE_IDENTIFIER, 'M' => STATE_IDENTIFIER, 'N' => STATE_IDENTIFIER, 'O' => STATE_IDENTIFIER, 'P' => STATE_IDENTIFIER, 'Q' => STATE_IDENTIFIER, 'R' => STATE_IDENTIFIER, 'S' => STATE_IDENTIFIER, 'T' => STATE_IDENTIFIER, 'U' => STATE_IDENTIFIER, 'V' => STATE_IDENTIFIER, 'W' => STATE_IDENTIFIER, 'X' => STATE_IDENTIFIER, 'Y' => STATE_IDENTIFIER, 'Z' => STATE_IDENTIFIER, 'a' => STATE_IDENTIFIER, 'b' => STATE_IDENTIFIER, 'c' => STATE_IDENTIFIER, 'd' => STATE_IDENTIFIER, 'e' => STATE_IDENTIFIER, 'f' => STATE_IDENTIFIER, 'g' => STATE_IDENTIFIER, 'h' => STATE_IDENTIFIER, 'i' => STATE_IDENTIFIER, 'j' => STATE_IDENTIFIER, 'k' => STATE_IDENTIFIER, 'l' => STATE_IDENTIFIER, 'm' => STATE_IDENTIFIER, 'n' => STATE_IDENTIFIER, 'o' => STATE_IDENTIFIER, 'p' => STATE_IDENTIFIER, 'q' => STATE_IDENTIFIER, 'r' => STATE_IDENTIFIER, 's' => STATE_IDENTIFIER, 't' => STATE_IDENTIFIER, 'u' => STATE_IDENTIFIER, 'v' => STATE_IDENTIFIER, 'w' => STATE_IDENTIFIER, 'x' => STATE_IDENTIFIER, 'y' => STATE_IDENTIFIER, 'z' => STATE_IDENTIFIER, }
VALID_IDENTIFIERS = Set.new(%w( A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z _ 0 1 2 3 4 5 6 7 8 9 ))
NUMBERS = Set.new(%w(0 1 2 3 4 5 6 7 8 9))
SIMPLE_TOKENS = { '.' => T_DOT, '*' => T_STAR, ']' => T_RBRACKET, ',' => T_COMMA, ':' => T_COLON, '@' => T_CURRENT, '(' => T_LPAREN, ')' => T_RPAREN, '{' => T_LBRACE, '}' => T_RBRACE, }

Public Instance methods

@param [String<JMESPath>] expression @return [Array<Hash>]

[Validate]