Module: Keisan

Defined in:
lib/keisan.rb,
lib/keisan/ast.rb,
lib/keisan/repl.rb,
lib/keisan/util.rb,
lib/keisan/token.rb,
lib/keisan/parser.rb,
lib/keisan/context.rb,
lib/keisan/version.rb,
lib/keisan/ast/cell.rb,
lib/keisan/ast/date.rb,
lib/keisan/ast/hash.rb,
lib/keisan/ast/list.rb,
lib/keisan/ast/node.rb,
lib/keisan/ast/null.rb,
lib/keisan/ast/plus.rb,
lib/keisan/ast/time.rb,
lib/keisan/function.rb,
lib/keisan/ast/block.rb,
lib/keisan/ast/cache.rb,
lib/keisan/ast/times.rb,
lib/keisan/evaluator.rb,
lib/keisan/tokenizer.rb,
lib/keisan/ast/modulo.rb,
lib/keisan/ast/number.rb,
lib/keisan/ast/parent.rb,
lib/keisan/ast/string.rb,
lib/keisan/calculator.rb,
lib/keisan/exceptions.rb,
lib/keisan/tokens/dot.rb,
lib/keisan/ast/boolean.rb,
lib/keisan/ast/builder.rb,
lib/keisan/ast/literal.rb,
lib/keisan/interpreter.rb,
lib/keisan/parsing/dot.rb,
lib/keisan/tokens/null.rb,
lib/keisan/tokens/word.rb,
lib/keisan/ast/exponent.rb,
lib/keisan/ast/function.rb,
lib/keisan/ast/indexing.rb,
lib/keisan/ast/operator.rb,
lib/keisan/ast/variable.rb,
lib/keisan/functions/if.rb,
lib/keisan/parsing/hash.rb,
lib/keisan/parsing/list.rb,
lib/keisan/parsing/null.rb,
lib/keisan/parsing/plus.rb,
lib/keisan/tokens/colon.rb,
lib/keisan/tokens/comma.rb,
lib/keisan/tokens/group.rb,
lib/keisan/functions/abs.rb,
lib/keisan/functions/cos.rb,
lib/keisan/functions/cot.rb,
lib/keisan/functions/csc.rb,
lib/keisan/functions/erf.rb,
lib/keisan/functions/exp.rb,
lib/keisan/functions/let.rb,
lib/keisan/functions/log.rb,
lib/keisan/functions/map.rb,
lib/keisan/functions/sec.rb,
lib/keisan/functions/sin.rb,
lib/keisan/functions/tan.rb,
lib/keisan/parsing/group.rb,
lib/keisan/parsing/minus.rb,
lib/keisan/parsing/times.rb,
lib/keisan/tokens/number.rb,
lib/keisan/tokens/string.rb,
lib/keisan/ast/assignment.rb,
lib/keisan/ast/bitwise_or.rb,
lib/keisan/ast/logical_or.rb,
lib/keisan/ast/multi_line.rb,
lib/keisan/ast/unary_plus.rb,
lib/keisan/functions/cbrt.rb,
lib/keisan/functions/cosh.rb,
lib/keisan/functions/coth.rb,
lib/keisan/functions/csch.rb,
lib/keisan/functions/diff.rb,
lib/keisan/functions/imag.rb,
lib/keisan/functions/puts.rb,
lib/keisan/functions/rand.rb,
lib/keisan/functions/real.rb,
lib/keisan/functions/sech.rb,
lib/keisan/functions/sinh.rb,
lib/keisan/functions/sqrt.rb,
lib/keisan/functions/tanh.rb,
lib/keisan/functions/to_h.rb,
lib/keisan/parsing/divide.rb,
lib/keisan/parsing/modulo.rb,
lib/keisan/parsing/number.rb,
lib/keisan/parsing/string.rb,
lib/keisan/tokens/boolean.rb,
lib/keisan/tokens/unknown.rb,
lib/keisan/ast/bitwise_and.rb,
lib/keisan/ast/bitwise_xor.rb,
lib/keisan/ast/logical_and.rb,
lib/keisan/ast/unary_minus.rb,
lib/keisan/functions/break.rb,
lib/keisan/functions/range.rb,
lib/keisan/functions/while.rb,
lib/keisan/parsing/boolean.rb,
lib/keisan/parsing/element.rb,
lib/keisan/tokens/operator.rb,
lib/keisan/ast/line_builder.rb,
lib/keisan/functions/filter.rb,
lib/keisan/functions/reduce.rb,
lib/keisan/functions/sample.rb,
lib/keisan/parsing/argument.rb,
lib/keisan/parsing/dot_word.rb,
lib/keisan/parsing/exponent.rb,
lib/keisan/parsing/function.rb,
lib/keisan/parsing/indexing.rb,
lib/keisan/parsing/operator.rb,
lib/keisan/parsing/variable.rb,
lib/keisan/ast/logical_equal.rb,
lib/keisan/ast/unary_inverse.rb,
lib/keisan/functions/replace.rb,
lib/keisan/parsing/component.rb,
lib/keisan/tokens/assignment.rb,
lib/keisan/ast/unary_identity.rb,
lib/keisan/ast/unary_operator.rb,
lib/keisan/functions/continue.rb,
lib/keisan/functions/registry.rb,
lib/keisan/parsing/assignment.rb,
lib/keisan/parsing/bitwise_or.rb,
lib/keisan/parsing/logical_or.rb,
lib/keisan/parsing/unary_plus.rb,
lib/keisan/variables/registry.rb,
lib/keisan/ast/cell_assignment.rb,
lib/keisan/ast/list_assignment.rb,
lib/keisan/parsing/bitwise_and.rb,
lib/keisan/parsing/bitwise_not.rb,
lib/keisan/parsing/bitwise_xor.rb,
lib/keisan/parsing/curly_group.rb,
lib/keisan/parsing/logical_and.rb,
lib/keisan/parsing/logical_not.rb,
lib/keisan/parsing/round_group.rb,
lib/keisan/parsing/unary_minus.rb,
lib/keisan/ast/bitwise_operator.rb,
lib/keisan/ast/constant_literal.rb,
lib/keisan/ast/logical_operator.rb,
lib/keisan/parsing/dot_operator.rb,
lib/keisan/parsing/square_group.rb,
lib/keisan/tokens/bitwise_shift.rb,
lib/keisan/ast/date_time_methods.rb,
lib/keisan/ast/logical_less_than.rb,
lib/keisan/ast/logical_not_equal.rb,
lib/keisan/ast/unary_bitwise_not.rb,
lib/keisan/ast/unary_logical_not.rb,
lib/keisan/parsing/logical_equal.rb,
lib/keisan/tokens/line_separator.rb,
lib/keisan/ast/bitwise_left_shift.rb,
lib/keisan/parsing/line_separator.rb,
lib/keisan/parsing/unary_operator.rb,
lib/keisan/ast/arithmetic_operator.rb,
lib/keisan/ast/bitwise_right_shift.rb,
lib/keisan/ast/function_assignment.rb,
lib/keisan/ast/variable_assignment.rb,
lib/keisan/functions/math_function.rb,
lib/keisan/functions/proc_function.rb,
lib/keisan/parsing/bitwise_not_not.rb,
lib/keisan/parsing/logical_not_not.rb,
lib/keisan/string_and_group_parser.rb,
lib/keisan/tokens/bitwise_operator.rb,
lib/keisan/tokens/logical_operator.rb,
lib/keisan/ast/logical_greater_than.rb,
lib/keisan/functions/cmath_function.rb,
lib/keisan/parsing/bitwise_operator.rb,
lib/keisan/parsing/logical_operator.rb,
lib/keisan/parsing/logical_less_than.rb,
lib/keisan/parsing/logical_not_equal.rb,
lib/keisan/functions/default_registry.rb,
lib/keisan/parsing/bitwise_left_shift.rb,
lib/keisan/tokens/arithmetic_operator.rb,
lib/keisan/variables/default_registry.rb,
lib/keisan/parsing/arithmetic_operator.rb,
lib/keisan/parsing/bitwise_right_shift.rb,
lib/keisan/parsing/compound_assignment.rb,
lib/keisan/parsing/logical_greater_than.rb,
lib/keisan/functions/enumerable_function.rb,
lib/keisan/functions/expression_function.rb,
lib/keisan/ast/logical_less_than_or_equal_to.rb,
lib/keisan/ast/logical_greater_than_or_equal_to.rb,
lib/keisan/functions/loop_control_flow_function.rb,
lib/keisan/parsing/logical_less_than_or_equal_to.rb,
lib/keisan/parsing/logical_greater_than_or_equal_to.rb

Defined Under Namespace

Modules: AST, Exceptions, Functions, Parsing, Tokens, Variables Classes: Calculator, Context, Evaluator, Function, Interpreter, Parser, Repl, StringAndGroupParser, Token, Tokenizer, Util

Constant Summary collapse

VERSION =
"0.9.1"

Class Method Summary collapse

Class Method Details

.[](expression) ⇒ Object



164
165
166
# File 'lib/keisan.rb', line 164

def self.[](expression)
  simplify(expression)
end

.ast(expression) ⇒ Object



176
177
178
# File 'lib/keisan.rb', line 176

def self.ast(expression)
  calculator.ast(expression)
end

.calculatorObject



156
157
158
# File 'lib/keisan.rb', line 156

def self.calculator
  @@calculator ||= Calculator.new
end

.evaluate(expression) ⇒ Object



168
169
170
# File 'lib/keisan.rb', line 168

def self.evaluate(expression)
  calculator.evaluate(expression)
end

.resetObject



160
161
162
# File 'lib/keisan.rb', line 160

def self.reset
  @@calculator = nil
end

.simplify(expression) ⇒ Object



172
173
174
# File 'lib/keisan.rb', line 172

def self.simplify(expression)
  calculator.simplify(expression)
end