private bool Match()

in src/PSDocs/Pipeline/PathBuilder.cs [593:628]


            private bool Match(string path)
            {
                _Expression.Reset();
                var stream = new PathStream(path);
                while (stream.Next() && _Expression.Next())
                {
                    // Match characters
                    if (stream.TryMatch(_Expression, 0))
                        continue;

                    // Skip ? when zero characters are being matched
                    else if (stream.IsUnmatchedSingle(_Expression, 0))
                        _Expression.Next();

                    // Match ending wildcards e.g. src/** or src/**/
                    else if (_Expression.IsAnyMatchEnding())
                        break;

                    // Match ending with depth e.g. src/**/bin/
                    else if (_Expression.SkipMatchAA())
                    {
                        if (!stream.TryMatchAA(_Expression, 0))
                            return false;
                    }

                    // Match wildcard *
                    else if (_Expression.SkipMatchA())
                    {
                        if (!stream.TryMatchA(_Expression, 0))
                            return false;
                    }

                    else return false;
                }
                return true;
            }