private static bool Matched(
            ITreeNode treeNode,
            string pattern,
            StructuralSearchEngine structuralSearchEngine,
            int placeholdersCount,
            out IStructuralMatchResult matchResult,
            out List <string> orderedPlaceholderNames)
        {
            matchResult             = null;
            orderedPlaceholderNames = null;

            IStructuralSearchPattern structuralSearchPattern =
                structuralSearchEngine.GetFactory(CSharpLanguage.Instance).CreatePattern(pattern);

            if (!structuralSearchPattern.GuessPlaceholders() || structuralSearchPattern.Placeholders.Count != placeholdersCount)
            {
                return(false);
            }

            orderedPlaceholderNames = GetPatternOrderedPlaceholderNames(pattern);
            if (orderedPlaceholderNames.Count != placeholdersCount)
            {
                return(false);
            }

            IStructuralMatcher matcher = structuralSearchPattern.CreateMatcher();

            matchResult = matcher.Match(treeNode);

            return(matchResult.Matched);
        }
コード例 #2
0
 protected RegistrationPatternBase(IStructuralSearchPattern pattern)
 {
     matcher = pattern.CreateMatcher();
 }
コード例 #3
0
        protected RegistrationPatternBase(IStructuralSearchPattern pattern)
        {
            this.pattern = pattern;

            matcher = pattern.CreateMatcher();
        }
コード例 #4
0
 protected RegistrationBasePattern(IStructuralSearchPattern pattern)
 {
     matcher = pattern.CreateMatcher();
 }