|
@@ 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 ::= "=" | "<" | "<=" | "<>" | ">" | ">=" | "!=" |