Example #1
0
        /// <returns>upper-case, empty is possible</returns>
        public virtual string GetAliasUnescapeUppercase()
        {
            if (alias == null || alias.Length <= 0)
            {
                return(alias);
            }
            if (aliasUpEscape != null)
            {
                return(aliasUpEscape);
            }
            switch (alias[0])
            {
            case '`':
            {
                return(aliasUpEscape = Identifier.UnescapeName(alias, true));
            }

            case '\'':
            {
                return
                    (aliasUpEscape =
                         LiteralString.GetUnescapedString(Runtime.Substring(alias, 1, alias.Length - 1), true));
            }

            case '_':
            {
                var ind = -1;
                for (var i = 1; i < alias.Length; ++i)
                {
                    if (alias[i] == '\'')
                    {
                        ind = i;
                        break;
                    }
                }
                if (ind >= 0)
                {
                    var st = new LiteralString(Runtime.Substring(alias, 0, ind),
                                               Runtime.Substring(alias, ind + 1, alias.Length - 1), false);
                    return(aliasUpEscape = st.GetUnescapedString(true));
                }
                goto default;
            }

            default:
            {
                return(aliasUpEscape = alias.ToUpper());
            }
            }
        }