Class: Code

Inherits:
Object
  • Object
show all
Defined in:
lib/code.rb,
lib/code/node.rb,
lib/code/object.rb,
lib/code/parser.rb,
lib/code/node/call.rb,
lib/code/node/code.rb,
lib/code/node/list.rb,
lib/code/node/name.rb,
lib/code/node/number.rb,
lib/code/node/string.rb,
lib/code/object/list.rb,
lib/code/parser/call.rb,
lib/code/parser/code.rb,
lib/code/parser/list.rb,
lib/code/parser/name.rb,
lib/code/node/boolean.rb,
lib/code/node/nothing.rb,
lib/code/object/string.rb,
lib/code/parser/number.rb,
lib/code/parser/string.rb,
lib/code/node/statement.rb,
lib/code/object/boolean.rb,
lib/code/object/decimal.rb,
lib/code/object/integer.rb,
lib/code/object/nothing.rb,
lib/code/parser/boolean.rb,
lib/code/parser/nothing.rb,
lib/code/node/dictionnary.rb,
lib/code/parser/statement.rb,
lib/code/node/base_2_number.rb,
lib/code/node/base_8_number.rb,
lib/code/object/dictionnary.rb,
lib/code/parser/dictionnary.rb,
lib/code/node/base_10_number.rb,
lib/code/node/base_16_number.rb,
lib/code/node/base_10_decimal.rb,
lib/code/node/base_10_integer.rb,
lib/code/node/dictionnary_key_value.rb

Defined Under Namespace

Classes: Node, Object, Parser

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input) ⇒ Code

Returns a new instance of Code.



5
6
7
8
# File 'lib/code.rb', line 5

def initialize(input)
  @input = input
  @parsed = ::Code::Parser::Code.new.parse(@input)
end

Class Method Details

.evaluate(input, context = "") ⇒ Object



10
11
12
# File 'lib/code.rb', line 10

def self.evaluate(input, context = "")
  new(input).evaluate(context)
end

Instance Method Details

#evaluate(context = "") ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/code.rb', line 14

def evaluate(context = "")
  if context.present?
    context = ::Code.evaluate(context)
  else
    context = ::Code::Object::Dictionnary.new
  end

  ::Code::Node::Code.new(parsed).evaluate(context)
end