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;
}
}