Beispiel #1
0
        /// <summary>
        /// Compare() is to be used to help with implementation of IComparer for sorting operations.
        /// </summary>
        public static int Compare(ParsingParams xPrams, ParsingParams yPrams)
        {
            if (xPrams == null && yPrams == null)
            {
                return(0);
            }

            int retval = xPrams == null ? -1 : (yPrams == null ? 1 : 0);

            if (retval == 0)
            {
                string[][] xNames = xPrams.RenameNamespaceMap;
                string[][] yNames = yPrams.RenameNamespaceMap;
                retval = Comparer.Default.Compare(xNames.Length, yNames.Length);
                if (retval == 0)
                {
                    for (int i = 0; i < xNames.Length && retval == 0; i++)
                    {
                        retval = Comparer.Default.Compare(xNames[i].Length, yNames[i].Length);
                        if (retval == 0)
                        {
                            for (int j = 0; j < xNames[i].Length; j++)
                            {
                                retval = Comparer.Default.Compare(xNames[i][j], yNames[i][j]);
                            }
                        }
                    }
                }
            }
            return(retval);
        }
Beispiel #2
0
 public FileParser(string fileName, ParsingParams prams, bool process, bool imported, string[] searchDirs)
 {
     this.imported   = imported;
     this.prams      = prams;
     this.searchDirs = searchDirs;
     this.fileName   = ResolveFile(fileName, searchDirs);
     if (process)
     {
         ProcessFile();
     }
 }
Beispiel #3
0
        int IComparer.Compare(object x, object y)
        {
            if (x == null && y == null)
            {
                return(0);
            }

            int retval = x == null ? -1 : (y == null ? 1 : 0);

            if (retval == 0)
            {
                FileParser xParser = (FileParser)x;
                FileParser yParser = (FileParser)y;
                retval = string.Compare(xParser.fileName, yParser.fileName, true);
                if (retval == 0)
                {
                    retval = ParsingParams.Compare(xParser.prams, yParser.prams);
                }
            }

            return(retval);
        }
Beispiel #4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="statement">'Import' statement from the script file to be parsed</param>
        public ScriptInfo(string statement)
        {
            RegexFind(statement, @"\w*,?", ref fileName);
            fileName = fileName.Trim(" ,".ToCharArray());

            string rename = "";

            foreach (
                string match in RegexGetMatches(statement, @"rename_namespace\s*\(\s* \w+ \s* , \s* \w+ \s*\)", null))
            {
                if (match.Length > 0)
                {
                    rename = match.Replace("rename_namespace", "").Trim("()".ToCharArray());
                    if (parseParams == null)
                    {
                        parseParams = new ParsingParams();
                    }

                    parseParams.AddRenameNamespaceMap(rename.Split(",".ToCharArray()));
                }
            }
        }