Exemple #1
0
        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();
            }
        }
Exemple #2
0
        protected override IEnumerator <DeserializeRequest> Deserialize(EasyReader input)
        {
            input.ReadString(out Name);
            var bodyRequest = new DeserializeRequest();

            yield return(bodyRequest);

            Body = bodyRequest.Result;
        }
Exemple #3
0
        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;
        }
Exemple #4
0
 public RstReplacer(LineCol location, Regex regex, RST rstSource, RST rstMatchEval) : base(location)
 {
     _regex        = regex;
     _rstSource    = rstSource;
     _rstMatchEval = rstMatchEval;
 }