public override void VisitLeave(Optional expression) { IsMatchPredicate local = _matchStack.Pop(); _matchStack.Push( delegate(IInputIterator iterator) { Int32 savePosition = iterator.Index; if (local(iterator)) { savePosition = iterator.Index; } else { iterator.Index = savePosition; } return true; } ); }
public override void VisitEnter(Optional expression) { }
public override void VisitExecute(Optional expression) { }
public override void VisitLeave(Optional expression) { terminal.Peek().Append(")?"); }
public override void VisitEnter(Optional expression) { terminal.Peek().Append("("); }
public abstract void VisitEnter(Optional expression);
public abstract void VisitLeave(Optional expression);
public abstract void VisitExecute(Optional expression);