Sha256: 951b3f104a16fbbbf46a91f316e17872436b61ff2c6842d9cda3d10fb7bfec83

Contents?: true

Size: 758 Bytes

Versions: 1

Compression:

Stored size: 758 Bytes

Contents

require 'ripper_ruby_parser/commenting_ripper_parser'
require 'ripper_ruby_parser/sexp_processor'

module RipperRubyParser
  # Main parser class. Brings together Ripper and our
  # RipperRubyParser::SexpProcessor.
  class Parser
    attr_accessor :extra_compatible

    def initialize processor=SexpProcessor.new
      @processor = processor
      @extra_compatible = false
    end

    def parse source, filename='(string)', lineno=1
      parser = CommentingRipperParser.new(source, filename, lineno)
      exp = parser.parse

      @processor.filename = filename
      @processor.extra_compatible = extra_compatible
      result = @processor.process exp

      if result == s(:void_stmt)
        nil
      else
        result
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ripper_ruby_parser-1.0.0 lib/ripper_ruby_parser/parser.rb