public function normalize(Scope $head, Scope $set, Lexer $lexer)
    {
        $collection = array();
        $unicode = new Unicode();
        
        while($lexer->moveNext() && !$lexer->isNextToken(Lexer::T_SET_CLOSE)) {
            
            $value = null;
            
            switch(true) {
                case($lexer->isNextTokenAny(array(Lexer::T_SHORT_UNICODE_X, Lexer::T_SHORT_P,Lexer::T_SHORT_X))):
                    $collection[] = $unicode->evaluate($lexer);
                break;
                case($lexer->isNextTokenAny(array(Lexer::T_LITERAL_CHAR, Lexer::T_LITERAL_NUMERIC))):
                    $collection[] = $lexer->lookahead['value'];
                break;
                case($lexer->isNextToken(Lexer::T_SET_RANGE)):
                    $collection[] = '-';
                break;
                case($lexer->isNextToken(Lexer::T_ESCAPE_CHAR)):
                    $collection[] = '\\';
                break;
                default :
                  throw new ParserException('Illegal meta character detected in character class');
            }
            
        }
        
        /*
        if($lexer->lookahead['type'] === null) {
            throw new ParserException('Closing character set token not found');
        } */
        
        return '['. implode('',$collection) .']';
        
    }
public function normalize(Scope $head, Scope $set, Lexer $lexer)
    {
        $collection = array();
        $unicode = new Unicode();
        
        while($lexer->moveNext() && !$lexer->isNextToken(Lexer::T_SET_CLOSE)) {
            
            $value = null;
            
            switch(true) {
                case($lexer->isNextTokenAny(array(Lexer::T_SHORT_UNICODE_X, Lexer::T_SHORT_P,Lexer::T_SHORT_X))):
                    $collection[] = $unicode->evaluate($lexer);
                break;
                case($lexer->isNextTokenAny(array(Lexer::T_LITERAL_CHAR, Lexer::T_LITERAL_NUMERIC))):
                    $collection[] = $lexer->lookahead['value'];
                break;
                case($lexer->isNextToken(Lexer::T_SET_RANGE)):
                    $collection[] = '-';
                break;
                case($lexer->isNextToken(Lexer::T_ESCAPE_CHAR)):
                    $collection[] = '\\';
                break;
                default :
                  throw new ParserException('Illegal meta character detected in character class');
            }
            
        }
        
        /*
        if($lexer->lookahead['type'] === null) {
            throw new ParserException('Closing character set token not found');
        } */
        
        return '['. implode('',$collection) .']';
        
    }
public function normalize ( Scope $ head , Scope $ set , Lexer $ lexer ) { $ collection = array ( ) ; $ unicode = new Unicode ( ) ; while ( $ lexer -> moveNext ( ) && ! $ lexer -> isNextToken ( Lexer :: T_SET_CLOSE ) ) { $ value = null ; switch ( true ) { case ( $ lexer -> isNextTokenAny ( array ( Lexer :: T_SHORT_UNICODE_X , Lexer :: T_SHORT_P , Lexer :: T_SHORT_X ) ) ) : $ collection [ ] = $ unicode -> evaluate ( $ lexer ) ; break ; case ( $ lexer -> isNextTokenAny ( array ( Lexer :: T_LITERAL_CHAR , Lexer :: T_LITERAL_NUMERIC ) ) ) : $ collection [ ] = $ lexer -> lookahead [ 'value' ] ; break ; case ( $ lexer -> isNextToken ( Lexer :: T_SET_RANGE ) ) : $ collection [ ] = '-' ; break ; case ( $ lexer -> isNextToken ( Lexer :: T_ESCAPE_CHAR ) ) : $ collection [ ] = '\\' ; break ; default : throw new ParserException ( 'Illegal meta character detected in character class' ) ; } } /*
        if($lexer->lookahead['type'] === null) {
            throw new ParserException('Closing character set token not found');
        } */ return '[' . implode ( '' , $ collection ) . ']' ; }
Will return a normalized ie unicode sequences been evaluated.

@return string a normalized character class string
@param ReverseRegex\Generator\Scope $head
@param ReverseRegex\Generator\Scope $set
@param Lexer $lexer the lexer to normalize
Will return a normalized ie unicode sequences been evaluated .