Sha256: ac71da3e8bdf5e3a4edabdd9aa593a1e75372a6a35f65fb0e79dbe7bca25b962
Contents?: true
Size: 800 Bytes
Versions: 2
Compression:
Stored size: 800 Bytes
Contents
module Gisele module Language class ElsifFlattener < Rewriter alias :on_missing :copy_and_applyall def on_if_st(node) condition, dost, *clauses = node.children base = [:if_st, condition, dost] base = node(base, node.markers.dup) clauses.inject base do |cur_if, clause| rw_clause = call(clause) cur_if << rw_clause rw_clause.last end base end def on_elsif_clause(node) base = \ [:else_clause, [:if_st, node[1], mainflow.call(node[2])] ] base = node(base, node.markers.dup) end def on_else_clause(node) [:else_clause, mainflow.call(node.last)] end end # class ElsifFlattener end # module Language end # module Gisele
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gisele-0.4.0 | lib/gisele/language/processors/elsif_flattener.rb |
gisele-0.3.0 | lib/gisele/language/elsif_flattener.rb |