/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { $field = $tokenStream->expect(Token::T_STRING)->getValue(); $tokenStream->expect(Token::T_OPERATOR, $this->getOperatorNames()); $values = $this->getParser()->getExpressionParser()->parseArray($tokenStream); return $this->createNode($field, $values); }
/** * @param TokenStream $tokenStream * @return Query * @throws SyntaxErrorException */ public function parse(TokenStream $tokenStream) { $queryBuilder = $this->createQueryBuilder(); while (!$tokenStream->isEnd()) { $queryBuilder->addNode($this->tokenParserGroup->parse($tokenStream)); $tokenStream->nextIf(Token::T_AMPERSAND); } return $queryBuilder->getQuery(); }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { if ($tokenStream->nextIf(Token::T_TYPE, 'array')) { $tokenStream->expect(Token::T_COLON); return [$this->itemParser->parse($tokenStream)]; } else { return parent::parse($tokenStream); } }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { if (($typeToken = $tokenStream->nextIf(Token::T_TYPE)) !== null) { $tokenStream->expect(Token::T_COLON); $value = $this->getTypeCaster($typeToken->getValue())->typeCast($tokenStream->next()); } else { $value = $this->getScalarValue($tokenStream->next()); } return $value; }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { $tokenStream->expect(Token::T_OPEN_PARENTHESIS); $values = []; do { $values[] = $this->itemParser->parse($tokenStream); if (!$tokenStream->nextIf(Token::T_COMMA)) { break; } } while (true); $tokenStream->expect(Token::T_CLOSE_PARENTHESIS); return $values; }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { $tokenStream->expect(Token::T_OPERATOR, $this->getOperatorName()); $tokenStream->expect(Token::T_OPEN_PARENTHESIS); $queries = []; do { $queries[] = $this->conditionTokenParser->parse($tokenStream); if (!$tokenStream->nextIf(Token::T_COMMA)) { break; } } while (true); $tokenStream->expect(Token::T_CLOSE_PARENTHESIS); return $this->createNode($queries); }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { $tokenStream->expect(Token::T_OPERATOR, $this->getOperatorName()); $tokenStream->expect(Token::T_OPEN_PARENTHESIS); $field = $tokenStream->expect(Token::T_STRING)->getValue(); $tokenStream->expect(Token::T_COMMA); $value = $this->getParser()->getExpressionParser()->parseScalar($tokenStream); $tokenStream->expect(Token::T_CLOSE_PARENTHESIS); return $this->createNode($field, $value); }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { if ($tokenStream->test(Token::T_GLOB)) { return new Glob($tokenStream->next()->getValue()); } if ($tokenStream->nextIf(Token::T_TYPE, 'glob')) { $tokenStream->expect(Token::T_COLON); } return new Glob(Glob::encode($tokenStream->expect(static::$allowedTypes)->getValue())); }
/** * @inheritdoc */ public function supports(TokenStream $tokenStream) { return $tokenStream->test(Token::T_OPERATOR, $this->getOperatorName()); }
public function supports(TokenStream $tokenStream) { return $tokenStream->test(Token::T_OPERATOR, 'groupby'); }
public function parse(TokenStream $tokenStream) { $tokenStream->expect(Token::T_OPERATOR, 'elemMatch'); $tokenStream->expect(Token::T_OPEN_PARENTHESIS); $field = $tokenStream->expect(Token::T_STRING)->getValue(); $tokenStream->expect(Token::T_COMMA); $query = $this->queryParser->parse($tokenStream); if (!$query instanceof AbstractQueryNode) { throw new SyntaxErrorException(sprintf('"elemMatch" operator expects parameter "query" to be instance of "%s", "%s" given', AbstractQueryNode::class, get_class($query))); } $tokenStream->expect(Token::T_CLOSE_PARENTHESIS); return new ElemMatchNode($field, $query); }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { return $tokenStream->expect(Token::T_STRING)->getValue(); }
/** * @inheritdoc */ public function supports(TokenStream $tokenStream) { return $tokenStream->test(Token::T_OPEN_PARENTHESIS); }
/** * @inheritdoc */ public function supports(TokenStream $tokenStream) { return $tokenStream->test(Token::T_STRING) && $tokenStream->lookAhead()->test(Token::T_OPERATOR, $this->getOperatorNames()); }
/** * @inheritdoc */ public function parse(TokenStream $tokenStream) { return (int) $tokenStream->expect(Token::T_INTEGER)->getValue(); }
/** * @inheritDoc */ public function parse(TokenStream $tokenStream) { $token = $tokenStream->getCurrent(); if ($tokenStream->nextIf(Token::T_FALSE)) { return false; } elseif ($tokenStream->nextIf(Token::T_TRUE)) { return true; } elseif ($tokenStream->nextIf(Token::T_NULL)) { return null; } elseif ($tokenStream->nextIf(Token::T_DATE)) { return new \DateTime($token->getValue()); } elseif ($tokenStream->nextIf(Token::T_STRING)) { return $token->getValue(); } elseif ($tokenStream->nextIf(Token::T_INTEGER)) { return (int) $token->getValue(); } elseif ($tokenStream->nextIf(Token::T_FLOAT)) { return (double) $token->getValue(); } throw new SyntaxErrorException(sprintf('Invalid scalar token "%s" (%s)', $token->getValue(), $token->getName())); }