public function evaluateChildNodes(RenderingContextInterface $renderingContext)
    {
        $output = null;
        /** @var $subNode NodeInterface */
        foreach ($this->childNodes as $subNode) {
            if ($output === null) {
                $output = $subNode->evaluate($renderingContext);
            } else {
                if (is_object($output)) {
                    if (!method_exists($output, '__toString')) {
                        throw new Parser\Exception('Cannot cast object of type "' . get_class($output) . '" to string.', 1248356140);
                    }
                    $output = $output->__toString();
                } else {
                    $output = (string) $output;
                }
                $subNodeOutput = $subNode->evaluate($renderingContext);

                if (is_object($subNodeOutput)) {
                    if (!method_exists($subNodeOutput, '__toString')) {
                        throw new Parser\Exception('Cannot cast object of type "' . get_class($subNodeOutput) . '" to string.', 1273753083);
                    }
                    $output .= $subNodeOutput->__toString();
                } else {
                    $output .= (string) $subNodeOutput;
                }
            }
        }
        return $output;
    }