Sha256: 6d4bc0e28b6952eba19b504a27f8cdbaf2f9d3860bb1c9d637474afd4be6daaf

Contents?: true

Size: 752 Bytes

Versions: 2

Compression:

Stored size: 752 Bytes

Contents

require 'parslet'
require 'kaiser_ruby/rockstar_parser'
require 'kaiser_ruby/rockstar_transform'

module KaiserRuby
  def self.up_indent
    @@indent ||= 0
    @@indent += 2
  end

  def self.down_indent
    @@indent ||= 0
    @@indent -= 2
  end

  def self.indent
    @@indent ||= 0
  end

  def self.parse(input)
    if input.split("\n").size == 1
      KaiserRuby::RockstarSingleLineParser.new.parse(input.chomp)
    else
      KaiserRuby::RockstarParser.new.parse(input)
    end
  rescue Parslet::ParseFailed => failure
    puts input.inspect
    puts failure.parse_failure_cause.ascii_tree
  end

  def self.transform(tree)
    KaiserRuby::RockstarTransform.new.apply(tree)
  end

  def self.transpile(input)
    transform(parse(input))
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kaiser-ruby-0.2.3 lib/kaiser_ruby.rb
kaiser-ruby-0.2.2 lib/kaiser_ruby.rb