internal object GetArguments(string line)
        {
            StringBuilder output = new StringBuilder();
            string        directiveName;

            string[] arguments;

            if (this.ParseDirective(line, output, out directiveName, out arguments))
            {
                IDirective directive = this.directives.FirstOrDefault(d => String.Equals(d.Name, directiveName, StringComparison.OrdinalIgnoreCase));
                if (directive == null)
                {
                    return(null);
                }

                return(directive.ParseArgs(arguments));
            }

            return(null);
        }