Beispiel #1
0
        private void generateSrcMLDoc(string rootDirectory, string xmlFileName, IEnumerable <string> fileNames)
        {
            var arguments = DefaultNamespaceArguments;

            var tempFileListing = Path.GetTempFileName();

            using (StreamWriter writer = new StreamWriter(tempFileListing))
            {
                foreach (var fileName in fileNames)
                {
                    writer.WriteLine(fileName);
                }
            }
            arguments.Add(String.Format(CultureInfo.InvariantCulture, "--files-from=\"{0}\"", tempFileListing));

            arguments.Add(String.Format(CultureInfo.InvariantCulture, "--directory=\"{0}\"", rootDirectory));
            arguments.Add(String.Format(CultureInfo.InvariantCulture, "--output=\"{0}\"", xmlFileName));

            if (ExtensionMapping.NonDefaultValueCount > 0)
            {
                arguments.Add(String.Format(CultureInfo.InvariantCulture, "--register-ext {0}", KsuAdapter.ConvertMappingToString(ExtensionMapping)));
            }

            var argumentString = KsuAdapter.MakeArgumentString(arguments);

            try
            {
                KsuAdapter.RunExecutable(this.src2srcml_exe, argumentString);
            }
            catch (SrcMLRuntimeException e)
            {
                throw new SrcMLException("src2srcml.exe encountered an error", e);
            }
            finally
            {
                File.Delete(tempFileListing);
            }
        }
 /// <summary>
 /// Converts <paramref name="extensionMap"/> to <c>--register-ext EXTENSIONMAP</c>
 /// </summary>
 /// <param name="extensionMap">the extension map to use</param>
 /// <returns>The extension map command line parameter</returns>
 private static string MakeExtensionMapArgument(Dictionary <string, Language> extensionMap)
 {
     return(extensionMap.Count > 0 ? String.Format("--register-ext {0}", KsuAdapter.ConvertMappingToString(extensionMap)) : String.Empty);
 }
Beispiel #3
0
        /// <summary>
        /// Runs this executable and places the output in the specified output file.
        /// This executable is run with the following string <c>[this.ExecutablePath] --register-ext [ExtensionMapping] --output=[outputfile] [addititionlArguments]</c>
        /// </summary>
        /// <param name="outputFile">The output file.</param>
        /// <param name="additionalArguments">The additional arguments.</param>
        public void Run(string outputFile, Collection <string> additionalArguments)
        {
            if (null == additionalArguments)
            {
                throw new ArgumentNullException("additionalArguments");
            }

            var arguments = new Collection <string>();

            foreach (var argument in this.NamespaceArguments)
            {
                arguments.Add(argument);
            }

            if (ExtensionMapping.NonDefaultValueCount > 0)
            {
                arguments.Add(String.Format(CultureInfo.InvariantCulture, "--register-ext {0}", KsuAdapter.ConvertMappingToString(ExtensionMapping)));
            }

            arguments.Add(String.Format(CultureInfo.InvariantCulture, "--output=\"{0}\"", outputFile));

            foreach (var arg in additionalArguments)
            {
                arguments.Add(arg);
            }

            try
            {
                base.Run(arguments);
            }
            catch (SrcMLRuntimeException e)
            {
                throw new SrcMLException(String.Format(CultureInfo.CurrentCulture, "{0} encountered an error: {1}", this.ExecutablePath, e.Message), e);
            }
        }