class TPPlus::Nodes::DefinitionNode

Attributes

assignable[R]
identifier[R]

Public Class Methods

new(identifier,assignable) click to toggle source
# File lib/tp_plus/nodes/definition_node.rb, line 5
def initialize(identifier,assignable)
  @identifier = identifier
  @assignable = assignable
end

Public Instance Methods

eval(context) click to toggle source
# File lib/tp_plus/nodes/definition_node.rb, line 10
def eval(context)
  if @assignable.is_a?(DigitNode) || @assignable.is_a?(RealNode)
    raise "Constants must be defined with all CAPS" unless @identifier.upcase == @identifier

    context.add_constant(@identifier, @assignable)
  else
    context.add_var(@identifier, @assignable)
  end
  nil
end