IEnumerable <ITokenCollection> SplitBySpaceTokens(ITokenCollection tokens)
        {
            var groupTokens = new List <IToken>();

            foreach (var token in tokens)
            {
                if (token is SpaceToken)
                {
                    yield return(groupTokens.ToTokenCollection());

                    groupTokens = new List <IToken>();
                }
                else
                {
                    groupTokens.Add(token);

                    if (token == tokens.Last())
                    {
                        yield return(groupTokens.ToTokenCollection());
                    }
                }
            }
        }