Class: Crisp::Nodes::Base

Inherits:
Treetop::Runtime::SyntaxNode
  • Object
show all
Defined in:
lib/crisp/nodes/base.rb

Overview

The base node

Direct Known Subclasses

ArrayLiteral, Block, Operation, Primitive

Instance Method Summary collapse

Instance Method Details

#eval(env) ⇒ Object

this is only an abstract method



6
7
8
# File 'lib/crisp/nodes/base.rb', line 6

def eval(env)
  raise "abstract method!"
end

#resolve(env) ⇒ Object

this is only an abstract method



11
12
13
# File 'lib/crisp/nodes/base.rb', line 11

def resolve(env)
  raise "abstract method!"
end

#resolve_and_eval(env) ⇒ Object

resolves the node and evals it it is a crisp operation node



16
17
18
19
# File 'lib/crisp/nodes/base.rb', line 16

def resolve_and_eval(env)
  res = self.resolve(env)
  res.class.name == "Crisp::Nodes::Operation" ? res.eval(env) : res
end