Module: Logicality

Defined in:
lib/logicality/version.rb,
lib/logicality/logicality.rb,
lib/logicality/lexer/token.rb,
lib/logicality/lexer/grammar.rb,
lib/logicality/parser/ast/node.rb,
lib/logicality/lexer/regexp_lexer.rb,
lib/logicality/parser/simple_parser.rb,
lib/logicality/interpreter/node_visitor.rb,
lib/logicality/parser/ast/value_operand_node.rb,
lib/logicality/interpreter/simple_interpreter.rb,
lib/logicality/parser/ast/unary_operator_node.rb,
lib/logicality/parser/ast/binary_operator_node.rb

Overview

Copyright © 2018-present, Blue Marble Payroll, LLC

This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree.

Defined Under Namespace

Modules: Interpreter, Lexer, Parser

Constant Summary collapse

VERSION =
'2.0.0'

Class Method Summary collapse

Class Method Details

.evaluate(expression, input = nil, resolver = nil) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/logicality/logicality.rb', line 17

def evaluate(expression, input = nil, resolver = nil)
  node        = get(expression)
  wrapper     = resolver_wrapper(input, resolver)
  interpreter = Interpreter::SimpleInterpreter.new(wrapper)

  interpreter.visit(node)
end