protected override void LocalParse(ref List<Match>.Enumerator tokens, string sNum)
{
if (!tokens.MoveNext())
return;
string name,value;
if (!string.IsNullOrEmpty(tokens.Current.Groups["lparen"].Value))
{
tokens.MoveNext();
while (tokens.Current != null &&
string.IsNullOrEmpty(tokens.Current.Groups["rparen"].Value))
{
if (
string.IsNullOrEmpty(
name = tokens.Current.Groups["name"].Value.Split(new[] {':'})[0]))
{
tokens.MoveNext();
continue;
}
if (!tokens.MoveNext())
continue;
if (string.IsNullOrEmpty(value = tokens.Current.Groups["word"].Value) &&
string.IsNullOrEmpty(sNum = tokens.Current.Groups["float"].Value))
{
tokens.MoveNext();
continue;
}
_dimensions[name] = new Dimension {Name = name, Value = string.IsNullOrEmpty(sNum) ? value : sNum};
}
}
else
{
if (!string.IsNullOrEmpty(tokens.Current.Groups["lparen"].Value))
tokens.MoveNext();
if (
string.IsNullOrEmpty(
name = tokens.Current.Groups["name"].Value.Split(new[] {':'})[0]))
{
tokens.MoveNext();
return;
}
if (!tokens.MoveNext())
return;
if (string.IsNullOrEmpty(value = tokens.Current.Groups["word"].Value))
{
tokens.MoveNext();
return;
}
_dimensions[name] = new Dimension {Name = name, Value = string.IsNullOrEmpty(sNum) ? value : sNum};
}
}