Example #1
0
 private function parseOperatorToken($firstChar)
 {
     $offset = $this->pos;
     $len = 1;
     $symbol = "";
     $lastValid = null;
     $symbol .= $firstChar;
     while (!$this->isEndOfExpression($offset + $len) && Operator::isAllowedOperatorChar($this->expression[$offset + $len])) {
         $symbol .= $this->expression[$offset + $len++];
     }
     while (strlen($symbol) > 0) {
         $op = $this->getOperator($symbol);
         if ($op == null) {
             $symbol = substr($symbol, 0, strlen($symbol) - 1);
         } else {
             $lastValid = $op;
             break;
         }
     }
     $this->pos += strlen($symbol);
     $this->lastToken = new OperatorToken($lastValid);
     return $this->lastToken;
 }
Example #2
0
 private function checkOperatorSymbol($op)
 {
     $name = $op->getSymbol();
     foreach (str_split($name) as $ch) {
         if (!Operator::isAllowedOperatorChar($ch)) {
             throw new ExpressionException("The operator symbol '" . $name . "' is invalid");
         }
     }
 }