protected function parseTableLine($line)
    {
        $header = false;
        $pretty = false;
        $line = trim($line);

        if (!strlen($line)) {
            return false;
        }

        // Finds the table chars
        $chars = $this->findTableChars($line);

        if (!$chars) {
            return false;
        }

        if ($chars[0] == Environment::$prettyTableJoint && $chars[1] == Environment::$prettyTableLetter) {
            $pretty = true;
            $chars = array(Environment::$prettyTableLetter, Environment::$prettyTableJoint);
        } else if ($chars[0] == Environment::$prettyTableJoint && $chars[1] == Environment::$prettyTableHeader) {
            $pretty = true;
            $header = true;
            $chars = array(Environment::$prettyTableHeader, Environment::$prettyTableJoint);
        } else {
            if (!($chars[0] == Environment::$tableLetter && $chars[1] == ' ')) {
                return false;
            }
        }

        $parts = array();
        $separator = false;
        // Crawl the line to match those chars
        for ($i=0; $i<strlen($line); $i++) {
            if ($line[$i] == $chars[0]) {
                if (!$separator) {
                    $parts[] = $i;
                    $separator = true;
                }
            } else {
                if ($line[$i] == $chars[1]) {
                    $separator = false;
                } else {
                    return false;
                }
            }
        }

        if (count($parts) > 1) {
            return array(
                $header,
                $pretty,
                $parts
            );
        }

        return false;
    }