Class: DDQL::TokenType::Operator
Constant Summary
collapse
- NULL_TYPES =
/IS\s+(NO_INFORMATION|NOT_(APPLICABLE|COLLECTED|DISCLOSED|MEANINGFUL))/
ALL, CURRENCY_LITERAL, FACTOR, FACTOR_PATTERN, INFIXOPERATOR, INTEGER_LITERAL, LBRACE, LPAREN, NESTED_CLOSER, NESTED_CLOSE_PATTERN, NESTED_OPENER, NESTED_OPEN_PATTERN, NUMERIC_LITERAL, POSTFIXOPERATOR, PREFIXOPERATOR, RBRACE, RPAREN, SCI_NUM_LITERAL, SCREEN, SPECIAL_MARKER, STRING_LITERAL, SUB_Q_ALIAS, SUB_Q_EXPR, SUB_Q_FIELDS, SUB_Q_GROUP, SUB_Q_TYPE, WHITESPACE
Instance Attribute Summary
#label, #name, #pattern
Instance Method Summary
collapse
#==, all_types_pattern, #data_from, #expression?, #factor?, #group?, #infix?, #initialize, #interpret, #interpreted_data_from, #literal?, #match?, #postfix?, #prefix?, #screen?, #skipping!, #supports_post_processing?, #trimming!
Instance Method Details
#as_hash(data) ⇒ Object
271
272
273
274
|
# File 'lib/ddql/token_type.rb', line 271
def as_hash(data)
return NullOperators.instance.as_hash(data) if data =~ NULL_TYPES
{op: {op_symbol(data) => data}}
end
|
#comparison?(data) ⇒ Boolean
276
277
278
|
# File 'lib/ddql/token_type.rb', line 276
def comparison?(data)
Operators.instance.cache[data]&.comparison?
end
|
#complex_comparison?(data) ⇒ Boolean
280
281
282
|
# File 'lib/ddql/token_type.rb', line 280
def complex_comparison?(data)
Operators.instance.cache[data]&.complex_comparison?
end
|
#math?(data) ⇒ Boolean
284
285
286
|
# File 'lib/ddql/token_type.rb', line 284
def math?(data)
Operators.instance.cache[data]&.math?
end
|
#parse(parser, token, expression: nil) ⇒ Object
288
289
290
291
292
293
294
|
# File 'lib/ddql/token_type.rb', line 288
def parse(parser, token, expression: nil)
operator = Operators.instance.cache[token.op_data]
if expression.nil? && !operator&.prefix?
raise "expected op[#{operator&.name}] to be part of an expression"
end
operator.parse(parser, token, expression: expression)
end
|
#simple_comparison?(data) ⇒ Boolean
296
297
298
|
# File 'lib/ddql/token_type.rb', line 296
def simple_comparison?(data)
Operators.instance.cache[data]&.simple_comparison?
end
|