public void PreprocessPragma(string pragmaName, string args, XmlWriter writer)
        {
            string[] prefixParts = pragmaName.Split(variableSplitter, 2);
            // Check to make sure there are 2 parts and neither is an empty string.
            if (2 != prefixParts.Length)
            {
                Console.WriteLine("[Warning] Preprocessor Unknown Pragma: " + pragmaName);
            }
            string prefix = prefixParts[0];
            string pragma = prefixParts[1];

            if (String.IsNullOrEmpty(prefix) || String.IsNullOrEmpty(pragma))
            {
                Console.WriteLine("[Warning] Preprocessor Unknown Pragma: " + pragmaName);
            }

            switch (prefix)
            {
            default:
                PreprocessorExtension extension = (PreprocessorExtension)this.extensionsByPrefix[prefix];
                if (null == extension || !extension.ProcessPragma(prefix, pragma, args, writer))
                {
                    Console.WriteLine("[Warning] Preprocessor Unknown Pragma: " + pragmaName);
                }
                break;
            }
        }