static function processElementTransformationChild($useComments, $php, $tpl, &$node, $elementTree, $elementList, &$resourceData)
 {
     $count = count($elementList);
     $lastElement = null;
     $newElementList = array();
     for ($i = 0; $i < $count; ++$i) {
         $element =& $elementList[$i];
         $elementType = $element[0];
         if ($elementType == eZTemplate::TYPE_OPERATOR) {
             $operatorName = $element[1][0];
             $operatorParameters = array_slice($element[1], 1);
             if (!isset($tpl->Operators[$operatorName])) {
                 return false;
             }
             if (is_array($tpl->Operators[$operatorName])) {
                 $tpl->loadAndRegisterOperators($tpl->Operators[$operatorName]);
             }
             $operatorObject =& $tpl->Operators[$operatorName];
             if (is_object($operatorObject)) {
                 $hasTransformationSupport = false;
                 $transformParameters = false;
                 $inputAsParameter = false;
                 $knownType = 'static';
                 if (method_exists($operatorObject, 'operatorTemplateHints')) {
                     $hints = $operatorObject->operatorTemplateHints();
                     if (isset($hints[$operatorName]) and isset($hints[$operatorName]['element-transformation']) and $hints[$operatorName]['element-transformation']) {
                         $hasTransformationSupport = true;
                     }
                     if ($hasTransformationSupport and isset($hints[$operatorName]['element-transformation-func'])) {
                         $transformationMethod = $hints[$operatorName]['element-transformation-func'];
                     } else {
                         $transformationMethod = 'templateElementTransformation';
                     }
                     if (isset($hints[$operatorName]) and isset($hints[$operatorName]['transform-parameters'])) {
                         $transformParameters = $hints[$operatorName]['transform-parameters'];
                     }
                     if (isset($hints[$operatorName]) and isset($hints[$operatorName]['input-as-parameter'])) {
                         $inputAsParameter = $hints[$operatorName]['input-as-parameter'];
                     }
                     if (isset($hints[$operatorName]['output']) and !$hints[$operatorName]['output']) {
                         $knownType = 'null';
                     } else {
                         if (isset($hints[$operatorName]['output-type'])) {
                             $knownType = $hints[$operatorName]['output-type'];
                         }
                     }
                 }
                 if ($hasTransformationSupport and method_exists($operatorObject, $transformationMethod)) {
                     $resetNewElementList = false;
                     if ($transformParameters) {
                         $newParameters = array();
                         if ($inputAsParameter) {
                             $newParameterElements = eZTemplateCompiler::processElementTransformationChild($useComments, $php, $tpl, $node, $elementTree, $newElementList, $resourceData);
                             if (count($newParameterElements) > 0 or $inputAsParameter === 'always') {
                                 $newParameters[] = $newParameterElements;
                                 $resetNewElementList = true;
                             }
                         }
                         foreach ($operatorParameters as $operatorParameter) {
                             $newParameterElements = eZTemplateCompiler::processElementTransformationChild($useComments, $php, $tpl, $node, $elementTree, $operatorParameter, $resourceData);
                             if (!$newParameterElements) {
                                 $newParameters[] = $operatorParameter;
                             } else {
                                 $newParameters[] = $newParameterElements;
                             }
                         }
                         $operatorParameters = $newParameters;
                     }
                     $newElements = $operatorObject->{$transformationMethod}($operatorName, $node, $tpl, $resourceData, $element, $lastElement, $elementList, $elementTree, $operatorParameters);
                     if (is_array($newElements)) {
                         if ($resetNewElementList) {
                             $newElementList = $newElements;
                         } else {
                             $newElementList = array_merge($newElementList, $newElements);
                         }
                     } else {
                         $newElementList[] = $element;
                     }
                 } else {
                     $newElementList[] = $element;
                 }
             } else {
                 if ($resourceData['test-compile']) {
                     $tpl->warning('', "Operator '{$operatorName}' is not registered.");
                 }
             }
         } else {
             $newElementList[] = $element;
         }
         $lastElement = $element;
     }
     return $newElementList;
 }