rubyx/lib/vool/compiler.rb
Torsten Ruger 295782d9e6 start on vool, the virtual oo language
start with syntax tree, not linked into existing code until finished
2017-04-01 15:57:39 +03:00

24 lines
569 B
Ruby

module Vool
class Compiler < ::Rubyx::Passes::TotalProcessor
def self.compile(input)
ast = Parser::Ruby22.parse( input )
self.new.process(ast)
end
def on_class( statement )
name , sup , body = *statement
ClassStatement.new( get_name(name) , get_name(sup) , body )
end
def get_name( statement )
return nil unless statement
raise "Not const #{statement}" unless statement.type == :const
name = statement.children[1]
raise "Not symbol #{name}" unless name.is_a? Symbol
name
end
end
end