Class: Riml::Compiler::TernaryOperatorNodeVisitor

Inherits:
Visitor
  • Object
show all
Defined in:
lib/compiler.rb

Instance Method Summary collapse

Methods inherited from Visitor

#initialize, #visit

Constructor Details

This class inherits a constructor from Riml::Compiler::Visitor

Instance Method Details

#compile(node) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/compiler.rb', line 87

def compile(node)
  node.operands.each {|n| n.parent_node = node}
  cond_visitor = visitor_for_node(node.condition)
  node.condition.accept(cond_visitor)
  node.compiled_output << ' ? '
  if_expr_visitor = visitor_for_node(node.if_expr)
  node.if_expr.accept(if_expr_visitor)
  node.compiled_output << ' : '
  else_expr_visitor =  visitor_for_node(node.else_expr)
  node.else_expr.accept(else_expr_visitor)
  node.compiled_output
end