Esempio n. 1
0
        public Argument?Execute(SyntaxNode node)
        {
            try
            {
                var result = EngineInstruction.Evaluate(this, node);

                if (result != null)
                {
                    return(new Argument(node, result));
                }
            }
            catch (CompilerException compilerException)
            {
                Issues.Add(compilerException.Origin ?? node, CompilerIssueType.Error, compilerException.Message, compilerException.InnerException);

                if (Context.FailOnError)
                {
                    // Instead of propagating the exception, we just stop.
                    Stop();
                }
            }


            return(null);
        }
        public void NonValidTypeException()
        {
            var ex = Assert.Throws <ArgumentNullException>(() =>
            {
                EngineInstruction.Evaluate(CompilerStateFixtures.Empty(), null);
            });

            Assert.Equal("node", ex.ParamName);
        }
        public void NullElementException()
        {
            var ex = Assert.Throws <ArgumentNullException>(() =>
            {
                EngineInstruction.Evaluate(null, new ListSyntax());
            });

            Assert.Equal("state", ex.ParamName);
        }
Esempio n. 4
0
        public Argument?Execute(Element element, Argument[] arguments)
        {
            var instruction = EngineInstruction.Create(element);

            try
            {
                var result = instruction?.Execute(this, arguments);

                if (result != null)
                {
                    return(new Argument(element, result));
                }
            }
            catch (CompilerException compilerException)
            {
                Issues.Add(compilerException.Origin ?? element, CompilerIssueType.Error, compilerException.Message, compilerException.InnerException);
            }


            return(null);
        }