Ejemplo n.º 1
0
        /// <summary>
        /// Tries to match a pattern against a tree.  If it succeeds, apply the surgical operations contained in a {@link TsurgeonPattern}.
        /// </summary>
        /// <param name="matchPattern">A {@link TregexPattern} to be matched against a {@link Tree}.</param>
        /// <param name="p">A {@link TsurgeonPattern} to apply.</param>
        /// <param name="t">the {@link Tree} to match against and perform surgery on.</param>
        /// <returns>t, which has been surgically modified.</returns>
        public static Tree ProcessPattern(TregexPattern matchPattern, TsurgeonPattern p, Tree t)
        {
            TregexMatcher   m   = matchPattern.Matcher(t);
            TsurgeonMatcher tsm = p.GetMatcher();

            while (m.Find())
            {
                t = tsm.Evaluate(t, m);
                if (t == null)
                {
                    break;
                }
                m = matchPattern.Matcher(t);
            }
            return(t);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Tries to match a pattern against a tree.  If it succeeds, apply the surgical operations contained in a {@link TsurgeonPattern}.
 /// </summary>
 /// <param name="matchPattern">A {@link TregexPattern} to be matched against a {@link Tree}.</param>
 /// <param name="p">A {@link TsurgeonPattern} to apply.</param>
 /// <param name="t">the {@link Tree} to match against and perform surgery on.</param>
 /// <returns>t, which has been surgically modified.</returns>
 public static Tree ProcessPattern(TregexPattern matchPattern, TsurgeonPattern p, Tree t)
 {
     TregexMatcher m = matchPattern.Matcher(t);
     TsurgeonMatcher tsm = p.GetMatcher();
     while (m.Find())
     {
         t = tsm.Evaluate(t, m);
         if (t == null)
         {
             break;
         }
         m = matchPattern.Matcher(t);
     }
     return t;
 }