Exemple #1
0
        /// <summary>
        /// Parse the configuration from a string.
        /// </summary>
        public bool Parse(string inConfigString, string inBasePath, ref string outError)
        {
            mIncludePaths      = new List <string>();
            mIgnorePaths       = new List <string>();
            mTypeAliasPrefixes = new List <string>();
            mIgnoreHeaderInfos = new List <IncludeChecker.IgnoreHeaderInfo>();
            mVerbose           = false;

            try
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(inConfigString);
                XPathNavigator nav = doc.CreateNavigator();

                XPathNodeIterator iter = nav.Select("/devpal/includechecker/settings/ctags_path");
                foreach (XPathNavigator current in iter)
                {
                    mCtagsPath = current.Value;
                }

                iter = nav.Select("/devpal/includechecker/settings/include_path");
                AddPathsFromIteratorToList(iter, mIncludePaths, inBasePath);

                iter = nav.Select("/devpal/includechecker/settings/interface_header");
                AddPathsFromIteratorToList(iter, mInterfaceHeaders, inBasePath);

                iter = nav.Select("/devpal/includechecker/settings/exclude_path");
                AddPathsFromIteratorToList(iter, mIgnorePaths, inBasePath);

                iter = nav.Select("/devpal/includechecker/settings/type_alias_prefix");
                foreach (XPathNavigator current in iter)
                {
                    mTypeAliasPrefixes.Add(current.Value);
                }

                iter = nav.Select("/devpal/includechecker/settings/type_alias_suffix");
                foreach (XPathNavigator current in iter)
                {
                    mTypeAliasSuffixes.Add(current.Value);
                }

                iter     = nav.Select("/devpal/includechecker/settings/verbose");
                mVerbose = (iter.Count > 0);

                iter = nav.Select("/devpal/includechecker/settings/ignore_header");
                foreach (XPathNavigator current in iter)
                {
                    XPathNodeIterator source        = current.SelectChildren("source", "");
                    string            source_string = null;
                    if (source.MoveNext())
                    {
                        source_string = source.Current.Value;
                    }

                    XPathNodeIterator header = current.SelectChildren("header", "");
                    if (!header.MoveNext())
                    {
                        outError = "Missing <header> in ignore_header: " + current.InnerXml;
                        return(false);
                    }
                    string header_string = header.Current.Value;

                    IncludeChecker.IgnoreHeaderInfo info = new IncludeChecker.IgnoreHeaderInfo(source_string, header_string);
                    mIgnoreHeaderInfos.Add(info);
                }

                return(true);
            }
            catch (XmlException e)
            {
                outError = e.ToString();
                return(false);
            }
        }
Exemple #2
0
 /// <summary>
 /// Add a header to be ignored.
 /// </summary>
 public void AddIgnoreHeaderInfo(IncludeChecker.IgnoreHeaderInfo inIgnoreHeaderInfo)
 {
     mIgnoreHeaderInfos.Add(inIgnoreHeaderInfo);
 }