public function InExpression()
{
$inExpression = new AST\InExpression($this->SingleValuedPathExpression());
if ($this->_lexer->isNextToken(Lexer::T_NOT)) {
$this->match(Lexer::T_NOT);
$inExpression->not = true;
}
$this->match(Lexer::T_IN);
$this->match(Lexer::T_OPEN_PARENTHESIS);
if ($this->_lexer->isNextToken(Lexer::T_SELECT)) {
$inExpression->subselect = $this->Subselect();
} else {
$literals = array();
$literals[] = $this->InParameter();
while ($this->_lexer->isNextToken(Lexer::T_COMMA)) {
$this->match(Lexer::T_COMMA);
$literals[] = $this->InParameter();
}
$inExpression->literals = $literals;
}
$this->match(Lexer::T_CLOSE_PARENTHESIS);
return $inExpression;
}