Module: KaiserRuby

Defined in:
lib/kaiser_ruby.rb,
lib/kaiser_ruby/cli.rb,
lib/kaiser_ruby/version.rb,
lib/kaiser_ruby/rockstar_parser.rb,
lib/kaiser_ruby/rockstar_transform.rb

Defined Under Namespace

Classes: CLI, RockstarParser, RockstarSingleLineParser, RockstarTransform

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.down_indentObject



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

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

.indentObject



16
17
18
# File 'lib/kaiser_ruby.rb', line 16

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

.parse(input) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/kaiser_ruby.rb', line 20

def self.parse(input)
  # strings without a line ending (or single lines) should be fed into the alternative parser
  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

.transform(tree) ⇒ Object



32
33
34
# File 'lib/kaiser_ruby.rb', line 32

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

.transpile(input) ⇒ Object



36
37
38
# File 'lib/kaiser_ruby.rb', line 36

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

.up_indentObject



6
7
8
9
# File 'lib/kaiser_ruby.rb', line 6

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