Class: Code::Node::Statement

Inherits:
Object
  • Object
show all
Defined in:
lib/code/node/statement.rb

Instance Method Summary collapse

Constructor Details

#initialize(statement) ⇒ Statement

Returns a new instance of Statement.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/code/node/statement.rb', line 4

def initialize(statement)
  if statement.key?(:nothing)
    @statement = ::Code::Node::Nothing.new
  elsif statement.key?(:boolean)
    @statement = ::Code::Node::Boolean.new(statement[:boolean])
  elsif statement.key?(:number)
    @statement = ::Code::Node::Number.new(statement[:number])
  elsif statement.key?(:string)
    @statement = ::Code::Node::String.new(statement[:string])
  elsif statement.key?(:call)
    @statement = ::Code::Node::Call.new(statement[:call])
  elsif statement.key?(:name)
    @statement = ::Code::Node::Name.new(statement[:name])
  elsif statement.key?(:list)
    @statement = ::Code::Node::List.new(statement[:list])
  elsif statement.key?(:dictionnary)
    @statement = ::Code::Node::Dictionnary.new(statement[:dictionnary])
  else
    raise NotImplementedError.new(statement.inspect)
  end
end

Instance Method Details

#evaluate(context) ⇒ Object



26
27
28
# File 'lib/code/node/statement.rb', line 26

def evaluate(context)
  @statement.evaluate(context)
end