Example #1
0
 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);
     }
 }