File: pengine.html

package info (click to toggle)
swi-prolog 9.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 82,408 kB
  • sloc: ansic: 387,503; perl: 359,326; cpp: 6,613; lisp: 6,247; java: 5,540; sh: 3,147; javascript: 2,668; python: 1,900; ruby: 1,594; yacc: 845; makefile: 428; xml: 317; sed: 12; sql: 6
file content (55 lines) | stat: -rw-r--r-- 1,838 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script language="javascript" type="text/javascript" src="/usr/share/javascript/jquery/jquery.js"></script>
        <script src="/js/pengines.js"></script>
        <script type="text/x-prolog">

            solve :-
                pengine_create([
                    src_text('a(1). a(2). a(3).')
                ]),
                pengine_event_loop(handle, []).

            handle(create(ID, _)) :-
                pengine_ask(ID, a(X), [
                    template(X)
                ]).
            handle(success(_ID, A, false)) :-
                pengine_output(A).
            handle(success(ID, A, true)) :-
                pengine_output(A),
                sleep(1),
                pengine_next(ID, []).
            handle(failure(_ID)) :-
                pengine_output(failure).
            handle(error(_ID, Err)) :-
                message_to_string(Err, ErrS),
                pengine_output(ErrS).

        </script>
        <script type="text/javascript">
            var pengine = new Pengine({
                oncreate: handleCreate,
                onoutput: handleOutput,
                onerror: handleError
            });
            function handleCreate() {
                pengine.ask('solve');
            }
            function handleOutput() {
                $("#out").html("<h4>" + this.data + "</h4>");
            }
            function handleError() {
                $("#err").html("<h4>Error: " + this.data + "</h4>");
            }
        </script>
    </head>
    <body>
        <center style="margin-top:200px;">
            <div id="out"></div>
            <button onclick="pengine.abort()">Abort</button>
            <div id="err"></div>
        </center>
    </body>
</html>