private static bool DoSortingField(ref StateContext context)
        {
            switch (context.Character)
            {
            case '~':
            case '!':
                if (context.HasBuffer())
                {
                    context.OnError("SyntaxError: Expected sorting field in the data schema, but missing.");
                    return(false);
                }

                context.Accept();
                return(true);

            case ',':
                if (context.AddSorting())
                {
                    context.State = State.SortingGutter;
                    return(true);
                }

                return(false);

            case ')':
                if (context.AddSorting())
                {
                    context.State = State.Include;
                    return(true);
                }

                return(false);

            default:
                if (context.IsLetterOrDigitOrUnderscore())
                {
                    context.Accept();
                    return(true);
                }

                context.OnError($"SyntaxError: The sorting field of the data schema contains '{context.Character}' illegal character.");
                return(false);
            }
        }
        private static bool DoSortingField(ref StateContext context)
        {
            switch (context.Character)
            {
            case '~':
            case '!':
                if (context.HasBuffer())
                {
                    context.OnError("");
                    return(false);
                }

                context.Accept();
                return(true);

            case ',':
                if (context.AddSorting())
                {
                    context.State = State.SortingGutter;
                    return(true);
                }

                return(false);

            case ')':
                if (context.AddSorting())
                {
                    context.State = State.Include;
                    return(true);
                }

                return(false);

            default:
                if (context.IsLetterOrDigitOrUnderscore())
                {
                    context.Accept();
                    return(true);
                }

                context.OnError("");
                return(false);
            }
        }