Ejemplo n.º 1
0
 /**
  * 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;
 }