Ejemplo n.º 1
0
        public object PrecedenceTesting(string expression)
        {
            IParser parser = Factory.Instance.Create();
            IToken  token  = parser.Compile(expression);

            return(token.EvalValue(null));
        }
Ejemplo n.º 2
0
        public void ParsingFailure(string expression, Type errType)
        {
            TestDelegate handler = new TestDelegate(() => {
                IParser parser = Factory.Instance.Create();
                IToken token   = parser.Compile(expression);
                token.EvalValue(null);
            });

            Assert.Throws(errType, handler);
        }
Ejemplo n.º 3
0
 public override void Compile(ICompileContext context)
 {
     if (context.Cut == null)
     {
         previous.Compile(context);
     }
     else
     {
         var success = Label();
         context.Child(previous, null, context.Result, success, context.Failure);
         context.Append(Label(success));
         context.Append(Assign(context.Cut, Constant(true)));
         context.Succeed();
     }
 }
Ejemplo n.º 4
0
        public object Run(string expression)
        {
            Func <string, object> func = name => {
                switch (name.ToLower())
                {
                case "a":
                    return(1);

                case "b":
                    return(2);

                case "c":
                    return(3);

                default:
                    return(null);
                }
            };

            IParser parser = Factory.Instance.Create();

            return(parser.Compile(expression).EvalValue(func));
        }
Ejemplo n.º 5
0
 public override void Compile(ICompileContext context) => _inner.Compile(context);