PHPSA\Context::getExpressionCompiler PHP Метод

getExpressionCompiler() публичный Метод

public getExpressionCompiler ( ) : Expression
Результат PHPSA\Compiler\Expression
    public function getExpressionCompiler()
    {
        return new Expression($this, $this->eventManager);
    }

Usage Example

Пример #1
0
Файл: Plus.php Проект: ovr/phpsa
 /**
  * {expr} + {expr}
  *
  * @param \PhpParser\Node\Expr\BinaryOp\Plus $expr
  * @param Context $context
  * @return CompiledExpression
  */
 protected function compile($expr, Context $context)
 {
     $left = $context->getExpressionCompiler()->compile($expr->left);
     $right = $context->getExpressionCompiler()->compile($expr->right);
     switch ($left->getType()) {
         case CompiledExpression::INTEGER:
             switch ($right->getType()) {
                 case CompiledExpression::INTEGER:
                     /**
                      * php -r "var_dump(1 + 1);" int(2)
                      */
                     return new CompiledExpression(CompiledExpression::INTEGER, $left->getValue() + $right->getValue());
                 case CompiledExpression::DOUBLE:
                     /**
                      * php -r "var_dump(1 + 1.0);" double(2)
                      */
                     return new CompiledExpression(CompiledExpression::DOUBLE, $left->getValue() + $right->getValue());
             }
             break;
         case CompiledExpression::DOUBLE:
             switch ($right->getType()) {
                 case CompiledExpression::INTEGER:
                 case CompiledExpression::DOUBLE:
                     /**
                      * php -r "var_dump(1.0 + 1);"   double(2)
                      * php -r "var_dump(1.0 + 1.0);" double(2)
                      */
                     return new CompiledExpression(CompiledExpression::DOUBLE, $left->getValue() + $right->getValue());
             }
     }
     return new CompiledExpression();
 }
All Usage Examples Of PHPSA\Context::getExpressionCompiler