Sha256: e3f2ae7f0073ff1607ad028f128b154dd31422405f92dc9ef8e39a47dba209cc
Contents?: true
Size: 1.54 KB
Versions: 5
Compression:
Stored size: 1.54 KB
Contents
# encoding: utf-8 module Unparser class Emitter # Emitter for begin nodes class Begin < self children :body private # Emit inner nodes # # @return [undefined] # # @api private # def emit_inner delimited(children, NL) end # Emitter for implicit begins class Implicit < self handle :begin NON_EMPTY_PARENS = [:root, :dstr, :dyn_str_body].to_set.freeze private # Perform dispatch # # @return [undefined] # # @api private # def dispatch if children.empty? && !NON_EMPTY_PARENS.include?(parent_type) write('()') else conditional_parentheses(parent_type == :optarg) do emit_inner end end end end # Implicit # Emitter for explicit begins class Explicit < self handle :kwbegin private # Perform dispatch # # @return [undefined] # # @api private # def dispatch write(K_BEGIN) emit_body k_end end # Emit body # # @return [undefined] # # @api private # def emit_body case when body.nil? nl when NOINDENT.include?(body.type) emit_inner else indented { emit_inner } end end end # Explicit end # Begin end # Emitter end # Unparser
Version data entries
5 entries across 5 versions & 1 rubygems