@@ 2616-2639 (lines=24) @@ | ||
2613 | * |
|
2614 | * @return \Doctrine\ORM\Query\AST\CollectionMemberExpression |
|
2615 | */ |
|
2616 | public function CollectionMemberExpression() |
|
2617 | { |
|
2618 | $not = false; |
|
2619 | $entityExpr = $this->EntityExpression(); |
|
2620 | ||
2621 | if ($this->lexer->isNextToken(Lexer::T_NOT)) { |
|
2622 | $this->match(Lexer::T_NOT); |
|
2623 | ||
2624 | $not = true; |
|
2625 | } |
|
2626 | ||
2627 | $this->match(Lexer::T_MEMBER); |
|
2628 | ||
2629 | if ($this->lexer->isNextToken(Lexer::T_OF)) { |
|
2630 | $this->match(Lexer::T_OF); |
|
2631 | } |
|
2632 | ||
2633 | $collMemberExpr = new AST\CollectionMemberExpression( |
|
2634 | $entityExpr, $this->CollectionValuedPathExpression() |
|
2635 | ); |
|
2636 | $collMemberExpr->not = $not; |
|
2637 | ||
2638 | return $collMemberExpr; |
|
2639 | } |
|
2640 | ||
2641 | /** |
|
2642 | * Literal ::= string | char | integer | float | boolean |
|
@@ 3275-3293 (lines=19) @@ | ||
3272 | * |
|
3273 | * @return \Doctrine\ORM\Query\AST\ExistsExpression |
|
3274 | */ |
|
3275 | public function ExistsExpression() |
|
3276 | { |
|
3277 | $not = false; |
|
3278 | ||
3279 | if ($this->lexer->isNextToken(Lexer::T_NOT)) { |
|
3280 | $this->match(Lexer::T_NOT); |
|
3281 | $not = true; |
|
3282 | } |
|
3283 | ||
3284 | $this->match(Lexer::T_EXISTS); |
|
3285 | $this->match(Lexer::T_OPEN_PARENTHESIS); |
|
3286 | ||
3287 | $existsExpression = new AST\ExistsExpression($this->Subselect()); |
|
3288 | $existsExpression->not = $not; |
|
3289 | ||
3290 | $this->match(Lexer::T_CLOSE_PARENTHESIS); |
|
3291 | ||
3292 | return $existsExpression; |
|
3293 | } |
|
3294 | ||
3295 | /** |
|
3296 | * ComparisonOperator ::= "=" | "<" | "<=" | "<>" | ">" | ">=" | "!=" |