public function parse(Scope $head, Scope $set, Lexer $lexer)
    {
        switch(true) {
            case ($lexer->isNextToken(Lexer::T_DOT)) :
                $this->convertDotToRange($head,$set,$lexer);
            break;
            case ($lexer->isNextToken(Lexer::T_SHORT_D)) :
            case ($lexer->isNextToken(Lexer::T_SHORT_NOT_D)) :
                $this->convertDigitToRange($head,$set,$lexer);
            break;
            case ($lexer->isNextToken(Lexer::T_SHORT_W)) :
            case ($lexer->isNextToken(Lexer::T_SHORT_NOT_W)) :
                $this->convertWordToRange($head,$set,$lexer);
            break;
            case ($lexer->isNextToken(Lexer::T_SHORT_S)) :
            case ($lexer->isNextToken(Lexer::T_SHORT_NOT_S)) :
                $this->convertWhiteSpaceToRange($head,$set,$lexer);
            break;
            default :
                //do nothing no token matches found
        }
        
    }