/// <summary>
 /// Visit a NonSystemToken
 /// </summary>
 /// <param name="tokenIn">the token to visit</param>
 /// <returns>A string containing the expand represented by the input token.</returns>
 public string Visit(NonSystemToken tokenIn)
 {
     if (tokenIn.IsNamespaceOrContainerQualified())
     {
         if (tokenIn.NextToken != null)
         {
             return(tokenIn.Identifier + "/" + tokenIn.NextToken.Accept(this));
         }
         else
         {
             throw new NotSupportedException(Strings.ALinq_TypeTokenWithNoTrailingNavProp(tokenIn.Identifier));
         }
     }
     else
     {
         if (tokenIn.NextToken == null)
         {
             return(tokenIn.Identifier);
         }
         else
         {
             return(tokenIn.Identifier + subExpandStartingText + tokenIn.NextToken.Accept(this) + UriHelper.RIGHTPAREN);
         }
     }
 }