Exemple #1
0
 private static function strToTokens($str)
 {
     // Multi-pass segmentation
     $node = new Token(ExpType::$RAW, $str);
     $tokenStream = array($node);
     $tokenStream = ExpLexer::divideString($tokenStream);
     $tokenStream = ExpLexer::divideBlank($tokenStream);
     $tokenStream = ExpLexer::divideKey($tokenStream, ExpLexer::$FUNCTION_PATTERN, 'functionHandler');
     $tokenStream = ExpLexer::divideKey($tokenStream, ExpLexer::$TERNARY_PATTERN, 'ternaryHandler');
     $tokenStream = ExpLexer::divideKey($tokenStream, ExpLexer::$PAREN_PATTERN, 'parenHandler');
     $tokenStream = ExpLexer::divideKey($tokenStream, ExpLexer::$COMMA_PATTERN, 'commaHandler');
     $tokenStream = ExpLexer::divideKey($tokenStream, ExpLexer::$OPERATOR_PATTERN, 'operatorHandler');
     $tokenStream = ExpLexer::divideFloating($tokenStream);
     $tokenStream = ExpLexer::divideKey($tokenStream, ExpLexer::$OPERATOR_PATTERN2, 'operatorHandler2');
     $tokenStream = ExpLexer::divideDot($tokenStream);
     ExpLexer::distinguishOperator($tokenStream);
     return $tokenStream;
 }