Inheritance: IStringReplacer
Beispiel #1
0
        private void GetMacroData(StringBuilder s, SortedDictionary <int, Tuple <int, IMacro, string[]> > replace, ref int i, string name)
        {
            IMacro macro;
            bool   flag1 = this.builtInValues.TryGetValue(name, out macro);
            IDictionary <int, IMacro> dictionary;
            bool flag2 = this.values.TryGetValue(name, out dictionary);

            if (flag2 || flag1)
            {
                int      lengthInString;
                string[] strArray;
                if (i < s.Length && (int)s[i] == 40)
                {
                    strArray = NewReplacer.GetParameters(s, i, out lengthInString);
                }
                else
                {
                    lengthInString = 0;
                    strArray       = new string[0];
                }
                if (flag1 && macro.IsCorrectAmountOfParameters(strArray.Length) || flag2 && dictionary.TryGetValue(strArray.Length, out macro))
                {
                    replace[i - name.Length] = new Tuple <int, IMacro, string[]>(lengthInString + name.Length, macro, strArray);
                }
                i += lengthInString;
            }
            else
            {
                ++i;
            }
        }
Beispiel #2
0
        private static string[] GetParameters(StringBuilder s, int index)
        {
            int lengthInString;

            return(NewReplacer.GetParameters(s, index, out lengthInString));
        }