if (is_null($tokenElement)) { // FIXME: useful? throw new Exception("Internal error: '{$token}' not recognized"); } else { $tokenList->add($tokenElement); } } // echo "Vidu '$tokenList'<br>\n"; return $tokenList; } function __toString() { return self::$regexp; } } Tokenizer::setRegexp(); class Analyser { static function analyse($expression) { if (is_string($expression)) { $tokenizer = new Tokenizer(); $tokens = $tokenizer->tokenize($expression); } else { // a yet formed ListOfToken $tokens = $expression; } // echo "Testaĵo unu: '$tokens'<br>"; foreach (Token::$tokenStickness as $operator) { // echo "Testaĵo du: '$tokens'<br>"; if ($operator->reversedOrderParsing) {