processExpectedReturn($context); $symbolVariable = $call->getSymbolVariable(); if (empty($symbolVariable)) { throw new CompilerException('Missing symbol variable.'); } if ($symbolVariable->getType() !== 'variable') { throw new CompilerException( 'Return value must only be assigned to a dynamic variable.', $expression ); } if ($call->mustInitSymbolVariable()) { $symbolVariable->initVariant($context); } $context->headersManager->add( 'include/arithmetic', HeadersManager::POSITION_LAST ); $resolvedParams = $call->getResolvedParams( $expression['parameters'], $context, $expression ); $symbol = $context->backend->getVariableCode($symbolVariable); $context->codePrinter->output( "tensor_multiply($symbol, {$resolvedParams[0]}, {$resolvedParams[1]});" ); return new CompiledExpression( 'variable', $symbolVariable->getRealName(), $expression ); } }