Class: Rubita::Transpiler
- Inherits:
-
Object
- Object
- Rubita::Transpiler
- Defined in:
- lib/rubita/transpiler.rb
Instance Method Summary collapse
Instance Method Details
#transpile(source) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/rubita/transpiler.rb', line 5 def transpile(source) sexp = Ripper.sexp(source) raise Error, "failed to parse source" if sexp.nil? nodes = extract_program_nodes(sexp) converted = nodes.map do |node| case node[0] when :def convert_definition(node) when :command convert_top_level_command(node) when :method_add_block convert_top_level_block(node) else raise Error, "unsupported top-level node: #{node[0]}" end end converted.join("\n\n") end |