예제 #1
0
 public void ApplyPrematchData(Pred pred, DList <Prematched> path)
 {
     _path             = path;
     _index            = 0;
     _reachedInnerAlts = false;
     pred.Call(this);
 }
예제 #2
0
            new public void Visit(Pred pred)
            {
                var old = _currentPred;

                _currentPred = pred;
                pred.Call(this);
                _currentPred = old;
            }
예제 #3
0
 private bool VisitAndReplace(ref Pred p)
 {
     Debug.Assert(Replacement == null);
     p.Call(this);
     if (Replacement != null)
     {
         p           = Replacement;
         Replacement = null;
         return(true);
     }
     return(false);
 }
예제 #4
0
            new public void Visit(Pred pred)
            {
                if (pred.PreAction != null && !_recognizerMode)
                {
                    AddUserAction(pred.PreAction);
                }
                var old = _currentPred;

                _currentPred = pred;
                pred.Call(this);
                _currentPred = old;
                if (pred.PostAction != null && !_recognizerMode)
                {
                    AddUserAction(pred.PostAction);
                }
            }
예제 #5
0
 public void Visit(Pred pred)
 {
     pred.Call(this);
 }