/// <summary>
        /// Determines whether the parse tree is wrapped in parenthesis.
        /// </summary>
        /// <param name="parseTree">The parse tree.</param>
        /// <returns></returns>
        private bool IsWrappedInParenthesis(IParseTree parseTree)
        {
            var lMostToken = parseTree.LeftMostToken();
            var rMostToken = parseTree.RightMostToken();

            return
                (lMostToken != null && lMostToken.Type == TSQLParser.LPAREN &&
                 rMostToken != null && rMostToken.Type == TSQLParser.RPAREN);
        }
        /// <summary>
        /// Wraps the parse tree in parenthesis.
        /// </summary>
        /// <param name="parseTree">The parse tree.</param>
        private void WrapInParenthesis(IParseTree parseTree)
        {
            var lMostToken = parseTree.LeftMostToken();
            var rMostToken = parseTree.RightMostToken();

            if (lMostToken != null && lMostToken.Type == TSQLParser.LPAREN &&
                rMostToken != null && rMostToken.Type == TSQLParser.RPAREN)
            {
                // wrapped
            }
            else
            {
                InsertBefore(
                    parseTree, "(", false);
                InsertAfter(
                    parseTree, ")", false);
            }
        }