private IEnumerable<XamlNode> P_MarkupExtension (Found f)
{
if (this.Expect(MeTokenType.Open, "MarkupExtension ::= @'{' Expr '}'")) {
this.NextToken();
if (this._tokenizer.Token != MeTokenType.TypeName) {
this.SetBrokenRuleString("MarkupExtension ::= '{' @TYPENAME (Arguments)? '}'");
}
else {
XamlType tokenType = this._tokenizer.TokenType;
yield return this.Logic_StartElement(tokenType, this._tokenizer.Namespace);
this.NextToken();
Found iteratorVariable1 = new Found();
switch (this._tokenizer.Token) {
case MeTokenType.PropertyName:
case MeTokenType.String:
case MeTokenType.QuotedMarkupExtension:
case MeTokenType.Open: {
IEnumerator<XamlNode> enumerator = this.P_Arguments(iteratorVariable1).GetEnumerator();
while (enumerator.MoveNext()) {
XamlNode current = enumerator.Current;
yield return current;
}
break;
}
default:
/*this.SetBrokenRuleString("MarkupExtension ::= '{' TYPENAME @(Arguments)? '}'");
break;*/
yield return this.Logic_EndObject();
this.NextToken();
f.found = true;
break;
}
if (iteratorVariable1.found && this.Expect(MeTokenType.Close, "MarkupExtension ::= '{' TYPENAME (Arguments)? @'}'")) {
yield return this.Logic_EndObject();
f.found = true;
this.NextToken();
}
}
}
}