File: pengine.html

package info (click to toggle)
swi-prolog 9.2.9%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 84,456 kB
  • sloc: ansic: 401,705; perl: 374,799; lisp: 9,080; cpp: 8,920; java: 5,525; sh: 3,282; javascript: 2,690; python: 2,655; ruby: 1,594; yacc: 845; makefile: 440; 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>