Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /trunk/src/compiler/codegen/target-sig.sml
ViewVC logotype

Diff of /trunk/src/compiler/codegen/target-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 450, Thu Oct 21 15:58:26 2010 UTC revision 451, Fri Oct 22 18:18:00 2010 UTC
# Line 11  Line 11 
11    
12      type outstream      type outstream
13    
14        type program
15        type actor
16        type expr
17        type cond
18        type stmt
19    
20        val defineActor : program * ?? -> actor
21        val globalVar : program * ?? -> global_var
22        val stateVar : actor * ?? -> state_var
23    
24      (* expression construction *)
25        structure Expr : sig
26          (* variable references *)
27            val global : global_var -> expr
28            val getState : state_var -> expr
29            val param : param_var -> expr
30            val var : local_var -> expr
31          (* literals *)
32            val ivecLit : IntegerLit.integer list -> expr
33            val vecLit : FloatLit.float list -> expr
34            val stringLit : string -> expr
35            val boolLit : bool -> expr
36          (* vector construction *)
37            val vector : expr list -> expr
38          (* select from a vector *)
39            val select : int * vector -> expr
40          (* vector (and scalar) arithmetic *)
41            val add : expr * expr -> expr
42            val mul : expr * expr -> expr
43            val sub : expr * expr -> expr
44            val divide : expr * expr -> expr
45            val neg : expr -> expr
46            val abs : expr -> expr
47            val dot : exp * exprr -> expr           (* dot product *)
48            val cross : expr * expr -> expr         (* cross product *)
49            val length : expr -> expr               (* vector length *)
50            val normalize : expr -> expr            (* normalize vector *)
51          (* comparisons *)
52            val min : expr * expr -> expr
53            val max : expr * expr -> expr
54          (* math functions *)
55            val pow : expr * expr -> expr
56            val sin : expr -> expr
57            val cos : expr -> expr
58            val sqrt : expr -> expr
59          (* conversions *)
60            val toReal : expr -> expr               (* integer to real *)
61            val roundToInt : expr -> expr           (* round real to int *)
62            val truncToInt : expr -> expr           (* truncate real to inte *)
63            val ceilToInt : expr -> expr            (* ceiling of real to int *)
64            val floorToInt : expr -> expr           (* floor of real to int *)
65          end
66    
67      (* conditionals *)
68        structure Cond : sig
69          (* comparisons *)
70            val lt : expr * expr -> cond
71            val lte : expr * expr -> cond
72            val equ : expr * expr -> cond
73            val neq : expr * expr -> cond
74            val gte : expr * expr -> cond
75            val gt : expr * expr -> cond
76          (* logical connectives *)
77            val not : cond -> cond
78            val && : cond * cond -> cond
79            val || : cond * cond -> cond
80          end
81    
82      (* statement construction *)
83        structure Stmt : sig
84            val assignState : state_var * expr -> stmt
85            val assign : local_var * expr -> stmt
86            val block : stmt list -> stmt
87            val ifthen : cond * stmt -> stmt
88            val ifthenelse : cond * stmt * stmt -> stmt
89          end
90    
91    end    end

Legend:
Removed from v.450  
changed lines
  Added in v.451

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