class TreeInterpreter

Defined in:

visitor.cr

Constant Summary

COMPARATOR_FUNC = {"eq" => ->(a : JSON::Any, b : JSON::Any) do TreeInterpreter.equals(a, b) end, "ne" => ->(a : JSON::Any, b : JSON::Any) do !(TreeInterpreter.equals(a, b)) end, "lt" => ->(a : JSON::Any, b : JSON::Any) do a.as_i < b.as_i end, "gt" => ->(a : JSON::Any, b : JSON::Any) do a.as_i > b.as_i end, "lte" => ->(a : JSON::Any, b : JSON::Any) do a.as_i <= b.as_i end, "gte" => ->(a : JSON::Any, b : JSON::Any) do a.as_i >= b.as_i end}

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Visitor

default_visit(node : ASTNode, value : JSON::Any) : JSON::Any default_visit, visit(node : ASTNode, value : JSON::Any) : JSON::Any visit

Constructor Detail

def self.new(options : Hash(String, JSON::Any) | Nil = nil) #

[View source]

Class Method Detail

def self.equals(a : JSON::Any, b : JSON::Any) : Bool #

[View source]

Instance Method Detail

def default_visit(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_and_expression(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_comparator(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_current(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_expref(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_field(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_filter_projection(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_flatten(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_function_expression(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_identity(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_index(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_index_expression(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_key_val_pair(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_literal(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_multi_select_dict(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_multi_select_list(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_not_expression(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_or_expression(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_pipe(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_projection(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_slice(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_subexpression(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]
def visit_value_projection(node : ASTNode, value : JSON::Any) : JSON::Any #

[View source]