Exemple #1
0
        internal static Step.Interpreter.Step Sequence(params object[] steps)
        {
            Step.Interpreter.Step next = null;
            for (var i = steps.Length - 1; i >= 0; i--)
            {
                var step = steps[i];
                switch (step)
                {
                case string[] tokens:
                    next = new EmitStep(tokens, next);
                    break;

                case object[] call:
                    next = new Call(call[0], call.Skip(1).ToArray(), next);
                    break;

                default:
                    throw new ArgumentException($"Unknown step argument in Step.Sequence: {step}");
                }
            }

            return(next);
        }
Exemple #2
0
        public void Emit1()
        {
            var s = new EmitStep(new [] { "this", "is", "a", "test" }, null);

            Assert.AreEqual("This is a test", s.Expand());
        }