Sha256: d5a3ce216a30bb1edbeade96bb2944938fc854e92b8ece6f759a65c248dfcb0f

Contents?: true

Size: 757 Bytes

Versions: 4

Compression:

Stored size: 757 Bytes

Contents

module RipperRubyParser
  module SexpHandlers
    module Loops
      def process_until exp
        _, cond, block = exp.shift 3
        s(:until, process(cond), handle_statement_list(block), true)
      end

      def process_until_mod exp
        _, cond, block = exp.shift 3

        check_at_start = block.sexp_type != :begin

        s(:until, process(cond), process(block), check_at_start)
      end

      def process_while exp
        _, cond, block = exp.shift 3
        s(:while, process(cond), handle_statement_list(block), true)
      end

      def process_for exp
        _, var, coll, block = exp.shift 4
        s(:for, process(coll),
          s(:lasgn, process(var)[1]),
          handle_statement_list(block))
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ripper_ruby_parser-0.0.5 lib/ripper_ruby_parser/sexp_handlers/loops.rb
ripper_ruby_parser-0.0.4 lib/ripper_ruby_parser/sexp_handlers/loops.rb
ripper_ruby_parser-0.0.3 lib/ripper_ruby_parser/sexp_handlers/loops.rb
ripper_ruby_parser-0.0.2 lib/ripper_ruby_parser/sexp_handlers/loops.rb