private static void HandleCurrentPositionInMember(OPathParseResult parseResult, char opathChar) { if (IsMemberChar(opathChar)) { parseResult.AppendToMember(opathChar); parseResult.ResetWhitespace(); } else if (IsOpeningBracket(opathChar)) { parseResult.CurrentPosition = OPathParsePosition.InMethodParameters; parseResult.ResetWhitespace(); } else if (IsMemberPrefixChar(opathChar)) { parseResult.CurrentPosition = OPathParsePosition.InMember; parseResult.AddOPathPropertyPart(); parseResult.ResetWhitespace(); } else if (IsIndexerStartChar(opathChar)) { parseResult.CurrentPosition = OPathParsePosition.PreIndexerValue; parseResult.AddOPathPropertyPart(); parseResult.ResetWhitespace(); } else if (IsWhitespaceChar(opathChar)) { parseResult.AppendCharToWhitespace(); } else { parseResult.CurrentPosition = OPathParsePosition.InExpression; parseResult.AddOPathPropertyPart(); parseResult.AddVariable(); parseResult.AppendToXPath(parseResult.GetAndResetWhitespace()); parseResult.AppendToXPath(opathChar); } }