ABB.SrcML.SrcMLGenerator.RegisterExecutable C# (CSharp) Method

RegisterExecutable() public method

Registers a src2srcml executable to use for the given languages.
public RegisterExecutable ( string executableDirectory, IEnumerable languages, IEnumerable namespaceArguments ) : void
executableDirectory string The directory containing the src2srcml executable to use.
languages IEnumerable A collection of the Languages that should be parsed by this executable.
namespaceArguments IEnumerable The namespace arguments to use when converting to SrcML.
return void
        public void RegisterExecutable(string executableDirectory, IEnumerable<Language> languages, IEnumerable<string> namespaceArguments) {
            if(nonDefaultExecutables == null) {
                nonDefaultExecutables = new Dictionary<Language, Src2SrcMLRunner2>();
            }

            var langList = languages.ToList();
            var dupLanguages = langList.Intersect(nonDefaultExecutables.Keys);
            if(dupLanguages.Any()) {
                var oldExec = nonDefaultExecutables[dupLanguages.First()];
                throw new InvalidOperationException(string.Format("Executable already registered for language {0}: {1}", dupLanguages.First(), oldExec.ExecutablePath));
            }

            var runner = new Src2SrcMLRunner2(executableDirectory);
            
            foreach(var lang in languages) {
                nonDefaultExecutables[lang] = runner;
                if(namespaceArguments != null) {
                    nonDefaultArguments[lang] = namespaceArguments.ToArray();
                }
            }
        }

Same methods

SrcMLGenerator::RegisterExecutable ( string executableDirectory, IEnumerable languages ) : void