/// <summary>
        /// Runs <see cref="ExecutablePath"/> with the specified arguments. <paramref name="standardInput"/> is passed in to the process's standard input stream
        /// </summary>
        /// <param name="arguments">configuration arguments</param>
        /// <param name="standardInput">contents of standard input</param>
        /// <returns>contents of standard output</returns>
        private string Run(Collection <string> arguments, string standardInput)
        {
            string argumentText = KsuAdapter.MakeArgumentString(arguments);
            var    output       = KsuAdapter.RunExecutable(this.ExecutablePath, argumentText, standardInput);

            return(output);
        }
예제 #2
0
        /// <summary>
        /// Generate SrcML from a given string of source code.
        /// </summary>
        /// <param name="source">A string containing the source code to parse.</param>
        /// <param name="language">The source language to use (C,C++,Java,AspectJ).
        /// If the source languageFilter is either not in this list or is null, the default source language (C++) will be used.</param>
        /// <returns>XML representing the source.</returns>
        public string GenerateSrcMLFromString(string source, Language language)
        {
            Collection <string> arguments = DefaultNamespaceArguments;

            arguments.Add("--no-xml-declaration");
            arguments.Add(String.Format(CultureInfo.InvariantCulture, "--language={0}", KsuAdapter.GetLanguage(language)));

            var argumentString = KsuAdapter.MakeArgumentString(arguments);

            try
            {
                var xml = KsuAdapter.RunExecutable(this.src2srcml_exe, argumentString, source);
                return(xml);
            }
            catch (SrcMLRuntimeException e)
            {
                throw new SrcMLException("src2srcml encountered an error", e);
            }
        }
예제 #3
0
        private void generateSrcMLDoc(string path, string xmlFileName, Language language)
        {
            var arguments = DefaultNamespaceArguments;

            if (language > Language.Any)
            {
                arguments.Add(String.Format(CultureInfo.InvariantCulture, "--language={0}", KsuAdapter.GetLanguage(language)));
            }
            arguments.Add(String.Format(CultureInfo.InvariantCulture, "\"{0}\"", path));
            arguments.Add(String.Format(CultureInfo.InvariantCulture, "--output=\"{0}\"", xmlFileName));

            var argumentString = KsuAdapter.MakeArgumentString(arguments);

            try
            {
                KsuAdapter.RunExecutable(this.src2srcml_exe, argumentString);
            }
            catch (SrcMLRuntimeException e)
            {
                throw new SrcMLException("src2srcml.exe encountered an error", e);
            }
        }
예제 #4
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>
        /// Runs <see cref="ExecutablePath"/> with the specified arguments
        /// </summary>
        /// <param name="arguments">the arguments</param>
        private void Run(Collection <string> arguments)
        {
            string argumentText = KsuAdapter.MakeArgumentString(arguments);

            KsuAdapter.RunExecutable(ExecutablePath, argumentText);
        }