protected function createServiceArgumentsFromNode(ArgumentArrayNode $argumentsNode) : ServiceArguments
    {
        $arguments = $argumentsNode 
            ->getArguments();

        $definition = new ServiceArguments();

        foreach($arguments as $argument)
        {
            if ($argument instanceof ServiceReferenceNode)
            {
                $definition->addDependency($argument->getName());
            }
            elseif ($argument instanceof ParameterReferenceNode)
            {
                $definition->addParameter($argument->getName());
            }
            elseif ($argument instanceof ArrayNode)
            {
                $definition->addRaw($argument->convertToNativeArray());
            }
            elseif ($argument instanceof ValueNode)
            {
                $definition->addRaw($argument->getRawValue());
            }
            else 
            {
                throw new ContainerInterpreterException("Unable to handle argument node of type \"" . get_class($argument) . "\".");
            }
        }

        return $definition;
    }