public static void SerializeRST(RST rst, EasyWriter output) { var stack = new Stack <IEnumerator <RST> >(10); stack.Push(rst.SerializeObject(output)); top: while (stack.Count > 0) { var serializer = stack.Peek(); while (serializer.MoveNext()) { if (serializer.Current == null) { output.Write(NullRST); } else { stack.Push(serializer.Current.SerializeObject(output)); goto top; } } stack.Pop(); } }
protected override IEnumerator <DeserializeRequest> Deserialize(EasyReader input) { input.ReadString(out Name); var bodyRequest = new DeserializeRequest(); yield return(bodyRequest); Body = bodyRequest.Result; }
protected override IEnumerator <DeserializeRequest> Deserialize(EasyReader input) { var options = RegexOptions.Compiled | RegexOptions.ExplicitCapture; if (input.ReadBoolean()) { options |= RegexOptions.IgnoreCase; } _regex = new Regex(input.ReadString(), options); var request = new DeserializeRequest(); yield return(request); _rstSource = request.Result; request = new DeserializeRequest(); yield return(request); _rstMatchEval = request.Result; }
public RstReplacer(LineCol location, Regex regex, RST rstSource, RST rstMatchEval) : base(location) { _regex = regex; _rstSource = rstSource; _rstMatchEval = rstMatchEval; }