Sha256: 564dcf2a35685a3082639b47b7e315ac78e43baf27faa40079d14fe3149e3d8e
Contents?: true
Size: 900 Bytes
Versions: 5
Compression:
Stored size: 900 Bytes
Contents
# frozen_string_literal: true require "rubocop" require "rubocop/ast/builder" require "parser/current" module SlimLint # Parser for the Ruby language. # # This provides a convenient wrapper around the `parser` gem and the # `astrolabe` integration to go with it. It is intended to be used for linter # checks that require deep inspection of Ruby code. class RubyParser # Creates a reusable parser. def initialize @builder = ::RuboCop::AST::Builder.new @parser = ::Parser::CurrentRuby.new(@builder) end # Parse the given Ruby source into an abstract syntax tree. # # @param source [String] Ruby source code # @return [Array] syntax tree in the form returned by Parser gem def parse(source) buffer = ::Parser::Source::Buffer.new("(string)") buffer.source = source @parser.reset @parser.parse(buffer) end end end
Version data entries
5 entries across 5 versions & 1 rubygems