Sha256: f90d0dad2f1ec0811f8e7ca714458c47b9aa37f4f91e9eebaa82d47ce9509eab

Contents?: true

Size: 672 Bytes

Versions: 4

Compression:

Stored size: 672 Bytes

Contents

# frozen_string_literal: true

require_relative "lexer"
require_relative "builder"
require_relative "source/map/endless_definition" unless defined?(Parser::Source::Map::EndlessDefinition)
require_relative "ast/processor"

module Parser
  # Patch the base parser class to use custom builder and lexer
  module NextExt
    def initialize(*)
      super

      # Extend builder
      @builder.singleton_class.prepend(Builders::Next)

      # Use custom lexer
      @lexer = Lexer::Next.new(version)
      @lexer.diagnostics = @diagnostics
      @lexer.static_env  = @static_env
      @lexer.context     = @context

      # Reset the state again
      reset
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-next-parser-2.8.0.7 lib/parser/ruby-next/parser_ext.rb
ruby-next-parser-2.8.0.6 lib/parser/ruby-next/parser_ext.rb
ruby-next-parser-2.8.0.5 lib/parser/ruby-next/parser_ext.rb
ruby-next-parser-2.8.0.4 lib/parser/ruby-next/parser_ext.rb