예제 #1
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            String inputString = inputTextBox.Text;

            try
            {
                Term      goal   = new Struct("dExpr", Term.createTerm(inputString), new Var("Der"));
                SolveInfo answer = engine.solve(goal);
                if (answer.isSuccess())
                {
                    Term derivata = answer.getTerm("Der");
                    lblRes.Text = derivata.toString();
                }
                else
                {
                    lblRes.Text = "Error: no solution";
                }
            }
            catch (InvalidTermException e3)
            {
                Console.WriteLine("The esxpression is not a valid Prolog Term.");
            }
            catch (UnknownVarException e4)
            {
                Console.WriteLine("Variable not valid.");
            }
            catch (NoSolutionException e5)
            {
                Console.WriteLine("No solutions.");
            }
        }
예제 #2
0
        private void InputButton_Click(object sender, EventArgs e)
        {
            OutputTextBox.Clear();
            try
            {
                if (prolog == null)
                {
                    labelError.Text = "Please Select Theory";
                    return;
                }
                if (prolog is Perm)
                {
                    Term      goal = new Struct("perm", Term.createTerm(InputTextBox.Text), new Var("R"));
                    SolveInfo SI   = prolog.solve(goal);

                    if (!SI.isSuccess())
                    {
                        OutputTextBox.AppendText("no");
                    }

                    while (SI.isSuccess())
                    {
                        OutputTextBox.AppendText(SI.getTerm("R").toString() + "\n");
                        if (prolog.hasOpenAlternatives())
                        {
                            SI = prolog.solveNext();
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                else if (prolog is PrologDerivate)
                {
                    Term      goal = new Struct("dExpr", Term.createTerm(InputTextBox.Text), new Var("DT"));
                    SolveInfo SI   = prolog.solve(goal);

                    if (!SI.isSuccess())
                    {
                        OutputTextBox.AppendText("no");
                    }
                    else
                    {
                        OutputTextBox.AppendText(SI.getTerm("DT").toString() + "\n");
                    }
                }
            }
            catch (MalformedGoalException ex) {
                OutputTextBox.AppendText("Malformed Goal\n");
            }
        }