|
@@ 2087-2109 (lines=23) @@
|
| 2084 |
|
* |
| 2085 |
|
* @return \Doctrine\ORM\Query\AST\CollectionMemberExpression |
| 2086 |
|
*/ |
| 2087 |
|
public function CollectionMemberExpression() { |
| 2088 |
|
$not = false; |
| 2089 |
|
$entityExpr = $this->EntityExpression(); |
| 2090 |
|
|
| 2091 |
|
if ($this->lexer->isNextToken(Lexer::T_NOT)) { |
| 2092 |
|
$this->match(Lexer::T_NOT); |
| 2093 |
|
|
| 2094 |
|
$not = true; |
| 2095 |
|
} |
| 2096 |
|
|
| 2097 |
|
$this->match(Lexer::T_MEMBER); |
| 2098 |
|
|
| 2099 |
|
if ($this->lexer->isNextToken(Lexer::T_OF)) { |
| 2100 |
|
$this->match(Lexer::T_OF); |
| 2101 |
|
} |
| 2102 |
|
|
| 2103 |
|
$collMemberExpr = new AST\CollectionMemberExpression( |
| 2104 |
|
$entityExpr, $this->CollectionValuedPathExpression() |
| 2105 |
|
); |
| 2106 |
|
$collMemberExpr->not = $not; |
| 2107 |
|
|
| 2108 |
|
return $collMemberExpr; |
| 2109 |
|
} |
| 2110 |
|
|
| 2111 |
|
/** |
| 2112 |
|
* Literal ::= string | char | integer | float | boolean |
|
@@ 2726-2743 (lines=18) @@
|
| 2723 |
|
* |
| 2724 |
|
* @return \Doctrine\ORM\Query\AST\ExistsExpression |
| 2725 |
|
*/ |
| 2726 |
|
public function ExistsExpression() { |
| 2727 |
|
$not = false; |
| 2728 |
|
|
| 2729 |
|
if ($this->lexer->isNextToken(Lexer::T_NOT)) { |
| 2730 |
|
$this->match(Lexer::T_NOT); |
| 2731 |
|
$not = true; |
| 2732 |
|
} |
| 2733 |
|
|
| 2734 |
|
$this->match(Lexer::T_EXISTS); |
| 2735 |
|
$this->match(Lexer::T_OPEN_PARENTHESIS); |
| 2736 |
|
|
| 2737 |
|
$existsExpression = new AST\ExistsExpression($this->Subselect()); |
| 2738 |
|
$existsExpression->not = $not; |
| 2739 |
|
|
| 2740 |
|
$this->match(Lexer::T_CLOSE_PARENTHESIS); |
| 2741 |
|
|
| 2742 |
|
return $existsExpression; |
| 2743 |
|
} |
| 2744 |
|
|
| 2745 |
|
/** |
| 2746 |
|
* ComparisonOperator ::= "=" | "<" | "<=" | "<>" | ">" | ">=" | "!=" |