public function parse($input = null)
    {
        if (null !== $input) {
            $this->input = $input;
        }

        $this->nextCardinal = null;
        $this->nextSymbol   = null;

        $this->lexer->setInput($this->input);

        // Move Lexer to first token
        $this->lexer->moveNext();

        // Parse and return value
        return $this->point();
    }