internal bool EndEvent(XPathNodeType nodeType) { Debug.Assert(_xsm != null); if (_ignoreLevel > 0) { _ignoreLevel--; return(true); } int stateOutlook = _xsm.EndOutlook(nodeType); switch (_builder.EndEvent(stateOutlook, nodeType)) { case OutputResult.Continue: _xsm.End(nodeType); Debug.Assert(StateMachine.StateOnly(stateOutlook) == _xsm.State); return(true); case OutputResult.Interrupt: _xsm.End(nodeType); Debug.Assert(StateMachine.StateOnly(stateOutlook) == _xsm.State, "StateMachine.StateOnly(stateOutlook) == this.xsm.State"); ExecutionResult = ExecResult.Interrupt; return(true); case OutputResult.Overflow: ExecutionResult = ExecResult.Interrupt; return(false); case OutputResult.Error: case OutputResult.Ignore: default: Debug.Fail("Unexpected result of RecordBuilder.TextEvent()"); return(true); } }