public void Read ()
{
bool flag = false;
bool flag2 = false;
this._tokenText = string.Empty;
this._tokenXamlType = null;
this._tokenProperty = null;
this._tokenNamespace = null;
this.Advance();
this.AdvanceOverWhitespace();
if (this.IsAtEndOfInput) {
this._token = MeTokenType.None;
}
else {
switch (this.CurrentChar) {
case '{':
if (this.NextChar != '}') {
this._token = MeTokenType.Open;
this._state = StringState.Type;
}
else {
this._token = MeTokenType.String;
this._state = StringState.Value;
flag2 = true;
}
break;
case '}':
this._token = MeTokenType.Close;
this._state = StringState.Value;
break;
case '=':
this._token = MeTokenType.EqualSign;
this._state = StringState.Value;
break;
case ',':
this._token = MeTokenType.Comma;
this._state = StringState.Value;
break;
case '"':
case '\'':
if (this.NextChar == '{') {
this.Advance();
if (this.NextChar != '}') {
flag = true;
}
this.PushBack();
}
flag2 = true;
break;
default:
flag2 = true;
break;
}
if (flag2) {
string longName = this.ReadString();
this._token = flag ? MeTokenType.QuotedMarkupExtension : MeTokenType.String;
switch (this._state) {
case StringState.Type:
this._token = MeTokenType.TypeName;
this.ResolveTypeName(longName);
break;
case StringState.Property:
this._token = MeTokenType.PropertyName;
this.ResolvePropertyName(longName);
break;
}
this._state = StringState.Value;
this._tokenText = RemoveEscapes(longName);
}
}
}