Module: Sparkql::Token

Included in:
Lexer
Defined in:
lib/sparkql/token.rb

Constant Summary collapse

SPACE =
/[\t ]+/.freeze
NEWLINE =
/\r\n|\n\r|\r|\n/.freeze
LPAREN =
/\(/.freeze
RPAREN =
/\)/.freeze
KEYWORD =
/[A-Za-z]+/.freeze
ADD =
'Add'.freeze
SUB =
'Sub'.freeze
MUL =
'Mul'.freeze
DIV =
'Div'.freeze
MOD =
'Mod'.freeze
STANDARD_FIELD =
/[A-Z]+[A-Za-z0-9]*/.freeze
CUSTOM_FIELD =
/^("([^$."][^."]+)"."([^$."][^."]*)")/.freeze
INTEGER =
/^-?[0-9]+/.freeze
DECIMAL =
/^-?[0-9]+\.[0-9]+([Ee]-?[0-9]{1,2})?/.freeze
CHARACTER =
/^'([^'\\]*(\\.[^'\\]*)*)'/.freeze
DATE =
/^[0-9]{4}-[0-9]{2}-[0-9]{2}/.freeze
TIME =
/^[0-9]{2}:[0-9]{2}((:[0-9]{2})(\.[0-9]{1,50})?)?/.freeze
DATETIME =
/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}((:[0-9]{2})(\.[0-9]{1,50})?)?(((\+|-)[0-9]{2}:?[0-9]{2})|Z)?/.freeze
BOOLEAN =
/^true|false/.freeze
NULL =
/NULL|null|Null/.freeze
RANGE_OPERATOR =

Reserved words

'Bt'.freeze
EQUALITY_OPERATORS =
%w[Eq Ne].freeze
OPERATORS =
%w[Gt Ge Lt Le] + EQUALITY_OPERATORS
UNARY_CONJUNCTIONS =
['Not'].freeze
CONJUNCTIONS =
%w[And Or].freeze