# File kwartz.rb, line 155 def compile(input, plogic=nil, lang=@lang) converter = Kwartz::DefaultConverter.new(input, @toppings) kpl_code = converter.convert kpl_code << plogic if plogic scanner = Kwartz::Scanner.new(kpl_code, @toppings) parser = Kwartz::Parser.new(scanner, @toppings) translator = Kwartz::Translator.instance(lang, @toppings) unless translator then raise InvalidLanguageError.new(lang) end nodelist = parser.parse output = translator.translate_all(nodelist) return output end