/** * Parse primitive type literal. * * @param IType $targetType Expected type of the current literal. * * @return AbstractExpression * * @throws ODataException */ private function _parseTypedLiteral(IType $targetType) { $literal = $this->_lexer->getCurrentToken()->Text; $outVal = null; if (!$targetType->validate($literal, $outVal)) { throw ODataException::createSyntaxError(Messages::expressionParserUnrecognizedLiteral($targetType->getFullTypeName(), $literal, $this->_lexer->getCurrentToken()->Position)); } $result = new ConstantExpression($outVal, $targetType); $this->_lexer->nextToken(); return $result; }