# 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, scanner.newline)
            unless translator
                raise InvalidLanguageError.new(lang)
            end
            nodelist   = parser.parse
            output     = translator.translate_all(nodelist)
            return output
        end