Class: Rubasteme::AST::ConditionalNode

Inherits:
ListNode show all
Defined in:
lib/rubasteme/ast/branch_node.rb

Instance Method Summary collapse

Methods inherited from ListNode

#elements, #empty?, #first, #rest

Methods inherited from BranchNode

#<<, #[], #[]=, #each, #size, #to_a

Methods inherited from Node

#to_a, #to_s, #type

Constructor Details

#initialize(_ = nil) ⇒ ConditionalNode

Returns a new instance of ConditionalNode.



196
197
198
199
200
# File 'lib/rubasteme/ast/branch_node.rb', line 196

def initialize(_ = nil)
  # @nodes = [<test>, <consequent>] or
  #          [<test>, <consequent>, <alternate>]
  super(2, _)
end

Instance Method Details

#alternateObject



218
219
220
# File 'lib/rubasteme/ast/branch_node.rb', line 218

def alternate
  @nodes[2]
end

#alternate=(node) ⇒ Object



222
223
224
# File 'lib/rubasteme/ast/branch_node.rb', line 222

def alternate=(node)
  @nodes[2] = node
end

#alternate?Boolean

Returns:

  • (Boolean)


226
227
228
# File 'lib/rubasteme/ast/branch_node.rb', line 226

def alternate?
  !@nodes[2].nil?
end

#consequentObject



210
211
212
# File 'lib/rubasteme/ast/branch_node.rb', line 210

def consequent
  @nodes[1]
end

#consequent=(node) ⇒ Object



214
215
216
# File 'lib/rubasteme/ast/branch_node.rb', line 214

def consequent=(node)
  @nodes[1] = node
end

#testObject



202
203
204
# File 'lib/rubasteme/ast/branch_node.rb', line 202

def test
  @nodes[0]
end

#test=(node) ⇒ Object



206
207
208
# File 'lib/rubasteme/ast/branch_node.rb', line 206

def test=(node)
  @nodes[0] = node
end