Class: TPPlus::Nodes::DefinitionNode
- Inherits:
-
Object
- Object
- TPPlus::Nodes::DefinitionNode
- Defined in:
- lib/tp_plus/nodes/definition_node.rb
Instance Attribute Summary collapse
-
#assignable ⇒ Object
readonly
Returns the value of attribute assignable.
-
#identifier ⇒ Object
readonly
Returns the value of attribute identifier.
Instance Method Summary collapse
- #eval(context) ⇒ Object
-
#initialize(identifier, assignable) ⇒ DefinitionNode
constructor
A new instance of DefinitionNode.
Constructor Details
#initialize(identifier, assignable) ⇒ DefinitionNode
Returns a new instance of DefinitionNode.
5 6 7 8 |
# File 'lib/tp_plus/nodes/definition_node.rb', line 5 def initialize(identifier,assignable) @identifier = identifier @assignable = assignable end |
Instance Attribute Details
#assignable ⇒ Object (readonly)
Returns the value of attribute assignable.
4 5 6 |
# File 'lib/tp_plus/nodes/definition_node.rb', line 4 def assignable @assignable end |
#identifier ⇒ Object (readonly)
Returns the value of attribute identifier.
4 5 6 |
# File 'lib/tp_plus/nodes/definition_node.rb', line 4 def identifier @identifier end |
Instance Method Details
#eval(context) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# 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 |