public function repl()
    {
        $input = $this->prompt();
        $buffer = null;

        while ($input != 'exit;') {
            try {
                $buffer .= $input;

                if ((new ShallowParser)->statements($buffer)) {
                    ob_start();
                    $app = $this->container;
                    eval($buffer);
                    $response = ob_get_clean();
                    
                    if ( ! empty($response)) $this->output->writeln(trim($response));

                    $buffer = null;
                }
            } catch (\Exception $e) {
                $this->error($e->getMessage());
            }

            $input = $this->prompt($buffer !== null);
        }

        if ($input == 'exit;') exit;
    }