Module: KaiserRuby

Defined in:
lib/kaiser_ruby.rb,
lib/kaiser_ruby/cli.rb,
lib/kaiser_ruby/parser.rb,
lib/kaiser_ruby/version.rb,
lib/kaiser_ruby/refinements.rb,
lib/kaiser_ruby/transformer.rb

Defined Under Namespace

Modules: Refinements Classes: CLI, Parser, RockstarSyntaxError, Transformer

Constant Summary collapse

VERSION =
"0.7.1"

Class Method Summary collapse

Class Method Details

.execute(input) ⇒ Object



26
27
28
29
30
# File 'lib/kaiser_ruby.rb', line 26

def self.execute(input)
  with_captured_stdout do
    instance_eval transpile(input)
  end
end

.parse(input) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/kaiser_ruby.rb', line 11

def self.parse(input)
  # eat comments since we don't care about them
  input = input.gsub(/\n *\(.*?\) *\n/m, "\n\n")
  input = input.gsub(/\(.*?\)\s*\n/m, "\n").gsub(/ +/, ' ')
  parser = KaiserRuby::Parser.new(input)
  parser.parse
end

.transpile(input) ⇒ Object



19
20
21
22
# File 'lib/kaiser_ruby.rb', line 19

def self.transpile(input)
  tree = parse(input)
  KaiserRuby::Transformer.new(tree).transform
end