Sha256: d234743ea50a04e5ddb4ebff211619dd5e51ef63e571f3d72cc62341d85c9608

Contents?: true

Size: 766 Bytes

Versions: 1

Compression:

Stored size: 766 Bytes

Contents

require 'mirah'
module Duby
  class NbCompiler
    include org.mirah.DubyCompiler

    class ParseResult
      ParseError = org.mirah.ParseError

      include org.mirah.ParseResult

      attr_reader :ast, :errors
      def initialize(ast, errors)
        @ast = ast
        parse_errors = errors.map do |error|
          ParseError.new(error.message, error.position)
        end
        @errors = parse_errors.to_java(ParseError)
      end
    end

    def parse(text)
      Duby::AST.type_factory = Duby::JVM::Types::TypeFactory.new
      ast = Duby::AST.parse_ruby(text)
      transformer = Duby::Transform::Transformer.new(Duby::CompilationState.new)
      return ParseResult.new(
          transformer.transform(ast, nil), transformer.errors)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mirah-0.0.4-java lib/mirah/nbcompiler.rb