Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/smlnj-lib/Reactive/OLD/react-sig.sml
ViewVC logotype

Annotation of /sml/trunk/src/smlnj-lib/Reactive/OLD/react-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7 - (view) (download)

1 : monnier 7 (* react-sig.sml
2 :     *
3 :     * COPYRIGHT (c) 1997 AT&T Research Labs.
4 :     * COPYRIGHT (c) 1997 Bell Labs, Lucent Technologies
5 :     *
6 :     * A simple ractive engine modelled after RC and SugarCubes.
7 :     *
8 :     * TODO:
9 :     * - figure out expressions and variables
10 :     * - support for external signals
11 :     * - support for exec
12 :     *)
13 :    
14 :     signature REACT =
15 :     sig
16 :     type instruction
17 :     type machine
18 :    
19 :     (* variables *)
20 :     type 'a var
21 :     val newVar : string -> 'a -> 'a var
22 :     val get : 'a var -> machine -> 'a
23 :     val put : ('a var * 'a) -> machine -> unit
24 :    
25 :     (* external signals *)
26 :     type in_signal
27 :     type out_signal
28 :     val inputSignal : machine -> in_signal
29 :     val outputSignal : machine -> out_signal
30 :     val setSignal : (in_signal * bool) -> unit
31 :     val getSignal : out_signal -> bool
32 :    
33 :     val inDecl : (in_signal * string * instruction) -> instruction
34 :     val outDecl : (in_signal * string * instruction) -> instruction
35 :    
36 :     (* signal configurations *)
37 :     type config
38 :     val posConfig : string -> config
39 :     val negConfig : string -> config
40 :     val orConfig : (config * config) -> config
41 :     val andConfig : (config * config) -> config
42 :    
43 :     val || : (instruction * instruction) -> instruction
44 :     val & : (instruction * instruction) -> instruction
45 :    
46 :     val nothing : instruction
47 :     val stop : unit -> instruction
48 :     val suspend : unit -> instruction
49 :    
50 :     val action : (machine -> unit) -> instruction
51 :     val exec : {
52 :     start : machine -> unit,
53 :     stop : machine -> unit,
54 :     done : machine -> bool
55 :     } -> instruction
56 :    
57 :     val ifThenElse : ((machine -> bool) * instruction * instruction) -> instruction
58 :     val repeat : (int * instruction) -> instruction
59 :     val loop : instruction -> instruction
60 :     val close : instruction -> instruction
61 :    
62 :     val signal : (string * instruction) -> instruction
63 :     val when : (config * instruction * instruction) -> instruction
64 :     val trap : (config * instruction) -> instruction
65 :     val trapWith : (config * instruction * instruction) -> instruction
66 :     val emit : string -> instruction
67 :     val await : config -> instruction
68 :    
69 :     end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0