Class: Code::Node

Inherits:
Object
  • Object
show all
Defined in:
lib/code/node.rb,
lib/code/node/if.rb,
lib/code/node/not.rb,
lib/code/node/call.rb,
lib/code/node/code.rb,
lib/code/node/list.rb,
lib/code/node/splat.rb,
lib/code/node/while.rb,
lib/code/node/base_2.rb,
lib/code/node/base_8.rb,
lib/code/node/number.rb,
lib/code/node/string.rb,
lib/code/node/base_10.rb,
lib/code/node/base_16.rb,
lib/code/node/boolean.rb,
lib/code/node/decimal.rb,
lib/code/node/nothing.rb,
lib/code/node/ternary.rb,
lib/code/node/function.rb,
lib/code/node/negation.rb,
lib/code/node/statement.rb,
lib/code/node/dictionary.rb,
lib/code/node/unary_minus.rb,
lib/code/node/call_argument.rb,
lib/code/node/left_operation.rb,
lib/code/node/square_bracket.rb,
lib/code/node/right_operation.rb,
lib/code/node/function_parameter.rb

Defined Under Namespace

Classes: Base10, Base16, Base2, Base8, Boolean, Call, CallArgument, Code, Decimal, Dictionary, Function, FunctionParameter, If, LeftOperation, List, Negation, Not, Nothing, Number, RightOperation, Splat, SquareBracket, Statement, String, Ternary, UnaryMinus, While

Instance Method Summary collapse

Constructor Details

#initialize(parsed) ⇒ Node

Returns a new instance of Node.

Raises:

  • (NotImplementedError)


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

def initialize(parsed)
  return unless parsed.any?

  raise NotImplementedError, "#{self.class.name}: #{parsed.inspect}"
end

Instance Method Details

#evaluate(**_args) ⇒ Object

Raises:

  • (NotImplementedError)


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

def evaluate(**_args)
  raise NotImplementedError, "#{self.class.name}#evaluate"
end

#resolveObject



15
16
17
# File 'lib/code/node.rb', line 15

def resolve(...)
  evaluate(...)
end