Sha256: 8d8ced82bbcd64d42643c539ddea971ad1fda7386be4f2c5bc8d1e7780a310ee
Contents?: true
Size: 923 Bytes
Versions: 5
Compression:
Stored size: 923 Bytes
Contents
require 'parslet' require 'kaiser_ruby/rockstar_parser' require 'kaiser_ruby/rockstar_transform' module KaiserRuby def self.parse(input) # eat comments since we don't care about them input = input.gsub(/\(.*?\)/, '') # expand contractions input = input.gsub(/'s\W+/, ' is ') # 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, reporter: Parslet::ErrorReporter::Deepest.new) else KaiserRuby::RockstarParser.new.parse(input, reporter: Parslet::ErrorReporter::Deepest.new) 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
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
kaiser-ruby-0.5.1 | lib/kaiser_ruby.rb |
kaiser-ruby-0.5 | lib/kaiser_ruby.rb |
kaiser-ruby-0.4.2 | lib/kaiser_ruby.rb |
kaiser-ruby-0.4.1 | lib/kaiser_ruby.rb |
kaiser-ruby-0.4.0 | lib/kaiser_ruby.rb |