Sha256: de593c909b55738dc00c542f97b50ae40ab2574c598eee3babe91db62a4a62cf
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
module Unparser class Emitter # Emitter for case nodes class Case < self handle :case children :condition private # Perform dispatch # # @return [undefined] # # @api private # def dispatch write(K_CASE) emit_condition emit_whens emit_else k_end end # Emit else # # @return [undefined] # # @api private # def emit_else else_branch = children.last return unless else_branch write(K_ELSE) indented { visit(else_branch) } end # Emit whens # # @return [undefined] # # @api private # def emit_whens nl children[1..-2].each do |child| visit(child) end end # Emit condition # # @return [undefined] # # @api private # def emit_condition return unless condition write(WS) visit(condition) end end # Case # Emitter for when nodes class When < self handle :when private # Perform dispatch # # @return [undefined] # # @api private # def dispatch write(K_WHEN, WS) emit_captures body = children.last if body indented { visit(body) } else nl end end # Emit captures # # @return [undefined] # # @api private # def emit_captures delimited(children[0..-2]) end end end # Emitter end # Unparser
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
unparser-0.0.6 | lib/unparser/emitter/case.rb |