Object ICaptor.PreProcess(ICaptorState captorState) { IStringSink sink = (IStringSink)captorState.Environment; sink.BeginAppend(captorState.Capture, m_id); sink.Append(m_replacement); sink.EndAppend(captorState.Capture); //防止嵌套 return null; }
Boolean IMatchTimeJudger.IsMatch(ICaptorState captorState) { return m_judger(captorState); }
void ICaptor.PostProcess(ICaptorState captorState, Object childEnvironment) { if (m_post != null) m_post(captorState, childEnvironment); }
Object ICaptor.PreProcess(ICaptorState captorState) { if (m_pre != null) return m_pre(captorState); else return captorState.Environment; }
void ICaptor.PostProcess(ICaptorState captorState, Object childEnvironment) { }
void ICaptor.PostProcess(ICaptorState captorState, Object childEnvironment) { IStringSink sink = (IStringSink)captorState.Environment; OnPostProcess(sink, captorState, childEnvironment); sink.EndAppend(captorState.Capture); }
Object ICaptor.PreProcess(ICaptorState captorState) { Substring[] arr = (Substring[])captorState.Environment; arr[m_index] = captorState.Capture; return null; }
protected abstract Object OnPreProcess(IStringSink sink, ICaptorState captorState);
protected abstract void OnPostProcess(IStringSink sink, ICaptorState captorState, Object childEnvironment);
void ICaptor.PostProcess(ICaptorState captorState, Object childEnvironment) { ((Sink)childEnvironment).PostProcess(captorState, childEnvironment); }
Object ICaptor.PreProcess(ICaptorState captorState) { IStringSink sink = (IStringSink)captorState.Environment; sink.BeginAppend(captorState.Capture, m_id); return OnPreProcess(sink, captorState); }
Object ICaptor.PreProcess(ICaptorState captorState) { return new Sink(m_id).PreProcess(captorState); }
public void PostProcess(ICaptorState captorState, Object childEnvironment) { m_baseSink.EndAppend(captorState.Capture); }
public Object PreProcess(ICaptorState captorState) { IStringSink sink = (IStringSink)captorState.Environment; m_baseSink = sink; m_baseSink.BeginAppend(captorState.Capture, m_id); return this; }
public void PostProcess(ICaptorState captorState, Object childEnvironment) { //当前位置到整体结尾 m_baseSink.Append(captorState.Capture.WholeString, m_currentPosition, captorState.Capture.End - m_currentPosition); m_currentPosition = captorState.Capture.End; m_baseSink.EndAppend(captorState.Capture); }
public Object PreProcess(ICaptorState captorState) { m_baseSink = (IStringSink)captorState.Environment; m_currentPosition = captorState.Capture.Begin; m_baseSink.BeginAppend(captorState.Capture, m_id); return this; }