bool MoveToNextMarkupExtensionAttributeMember ()
{
if (markup_extension_attr_members != null) {
switch (node_type) {
case XamlNodeType.StartObject:
case XamlNodeType.EndMember:
// -> next member or end object
if (!markup_extension_attr_members.MoveNext ()) {
node_type = XamlNodeType.EndObject;
} else {
current = current_member = markup_extension_attr_members.Current.Key;
members.Push (current_member);
node_type = XamlNodeType.StartMember;
}
return true;
case XamlNodeType.EndObject:
types.Pop ();
markup_extension_attr_members = null;
return false;
case XamlNodeType.StartMember:
node_type = XamlNodeType.Value;
current = markup_extension_attr_members.Current.Value;
if (current_member == XamlLanguage.PositionalParameters) {
markup_extension_attr_values = ((List<string>) current).GetEnumerator ();
goto case XamlNodeType.Value;
}
return true;
case XamlNodeType.Value:
if (markup_extension_attr_values != null) {
if (markup_extension_attr_values.MoveNext ())
current = markup_extension_attr_values.Current;
else {
node_type = XamlNodeType.EndMember;
markup_extension_attr_values = null;
}
}
else
node_type = XamlNodeType.EndMember;
return true;
}
}
return false;
}