public void SetUp()
 {
     var grammar = new CustomDslGrammar();
     var language = new LanguageData(grammar);
     _parser = new Parser(language);
     _visitor = new CSharpExpressionBuilder();
 }
        public CustomDslCSharpExpressionVisitorTest()
        {
            var grammar = new CustomDslGrammar();

            _parser  = new Parser(grammar);
            _visitor = new CSharpExpressionBuilder();
        }
Beispiel #3
0
        public void SetUp()
        {
            var grammar  = new CustomDslGrammar();
            var language = new LanguageData(grammar);

            _parser  = new Parser(language);
            _visitor = new CSharpExpressionBuilder();
        }
Beispiel #4
0
        private void btnEvaluate_Click(object sender, EventArgs e)
        {
            var tree = _parser.Parse(txtExpression.Text);

            if (tree.HasErrors())
            {
                MessageBox.Show(tree.ParserMessages.First().Message, "Error parsing message", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }


            var rootNode = (AstNode)tree.Root.AstNode;
            var visitor  = new CSharpExpressionBuilder();
            var func     = visitor.Build(rootNode);

            txtResult.Text = func().ToString();
        }
Beispiel #5
0
        private void btnEvaluate_Click(object sender, EventArgs e)
        {
            ParseTree tree = _parser.Parse(txtExpression.Text);

            if (tree.HasErrors())
            {
                MessageBox.Show(tree.ParserMessages.First().Message, "Error parsing message", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }


            var rootNode = (AstNode)tree.Root.AstNode;
            var visitor = new CSharpExpressionBuilder();
            Func<object> func = visitor.Build(rootNode);

            txtResult.Text = func().ToString();
        }
Beispiel #6
0
        private void btnEvalRule_Click(object sender, EventArgs e)
        {
            var person = new Person
            {
                FirstName = txtFirstName.Text,
                LastName = txtLastName.Text,
                Age = (int) nudAge.Value
            };

            var tree = _parser.Parse(txtRule.Text);

            if (tree.HasErrors())
            {
                MessageBox.Show(tree.ParserMessages.First().Message, "Error parsing message", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            var rootNode = (AstNode)tree.Root.AstNode;
            var visitor = new CSharpExpressionBuilder();
            var func = visitor.Build<Person>(rootNode);

            var result = func(person);

            if (result is bool)
            {
                var evalResult = (bool) result;

                if (evalResult)
                {
                    lblResult.Text = "Match!";
                    lblResult.BackColor = Color.LawnGreen;
                }
                else
                {
                    lblResult.Text = "Not a match!";
                    lblResult.BackColor = Color.Red;
                }
            }
        }
Beispiel #7
0
        private void btnEvalRule_Click(object sender, EventArgs e)
        {
            var person = new Person
            {
                FirstName = txtFirstName.Text,
                LastName  = txtLastName.Text,
                Age       = (int)nudAge.Value
            };

            var tree = _parser.Parse(txtRule.Text);

            if (tree.HasErrors())
            {
                MessageBox.Show(tree.ParserMessages.First().Message, "Error parsing message", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            var rootNode = (AstNode)tree.Root.AstNode;
            var visitor  = new CSharpExpressionBuilder();
            var func     = visitor.Build <Person>(rootNode);

            var result = func(person);

            if (result is bool)
            {
                var evalResult = (bool)result;

                if (evalResult)
                {
                    lblResult.Text      = "Match!";
                    lblResult.BackColor = Color.LawnGreen;
                }
                else
                {
                    lblResult.Text      = "Not a match!";
                    lblResult.BackColor = Color.Red;
                }
            }
        }