/[mojave]/metaprl/theories/mc/mp_mc_fir_ty.ml
ViewVC logotype

Diff of /metaprl/theories/mc/mp_mc_fir_ty.ml

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

revision 3589 by emre, Sat Apr 27 02:45:24 2002 UTC revision 3590 by emre, Sat Apr 27 19:52:38 2002 UTC
# Line 51  Line 51 
51   * Term declarations.   * Term declarations.
52   *************************************************************************)   *************************************************************************)
53    
54  (* Base types. *)  (*!
55     * @begin[doc]
56     * @terms
57     *
58     * @tt{tyInt} and @tt{tyEnum} are basic integer types.  @tt{tyInt}
59     * is a 31-bit, signed integer type analogous to the @tt{int} type
60     * in a language such as @OCaml.  A value of type @tt{tyEnum@{n-1@}}
61     * can take on integral values from 0 to $n$.
62     * @end[doc]
63     *)
64    
65  declare tyInt  declare tyInt
66  declare tyEnum{ 'int }  declare tyEnum{ 'int }
67    
68  (* Native types. *)  (*!
69     * @begin[doc]
70     *
71     * @tt{tyRawInt} and @tt{tyFloat} represent raw data types.  Their
72     * subterms specify the precision and signed nature of the type
73     * (see @hreftheory[Mp_mc_fir_base]).  These correspond to
74     * the integer and floating point types in a language such as C.
75     * @end[doc]
76     *)
77    
78  declare tyRawInt{ 'int_precision; 'int_signed }  declare tyRawInt{ 'int_precision; 'int_signed }
79  declare tyFloat{ 'float_precision }  declare tyFloat{ 'float_precision }
80    
81  (* Functions. *)  (*!
82     * @begin[doc]
83     *
84     * @tt{tyFun} is a function type.  The first subterm is a list
85     * (see @hreftheory[Itt_list]) of types indicating the types of
86     * the arguments to the function. The second subterm is the type
87     * of the return value of the function.  Note that FIR
88     * functions never actually return in the conventional sense
89     * of the word (see @hreftheory[Mp_mc_fir_exp] and @hrefterm[tailCall]
90     * for more on this).
91     * @end[doc]
92     *)
93    
94  declare tyFun{ 'ty_list; 'ty }  declare tyFun{ 'ty_list; 'ty }
95    
96  (* Tuples. *)  (*!
97     * @begin[doc]
98     *
99     * Tuples
100     * @end[doc]
101     *)
102    
103  declare tyUnion{ 'ty_var; 'ty_list; 'int_set }  declare tyUnion{ 'ty_var; 'ty_list; 'int_set }
104  declare tyTuple{ 'tuple_class; 'ty_list }  declare tyTuple{ 'tuple_class; 'ty_list }
# Line 74  Line 107 
107  declare tyPointer{ 'sub_block }  declare tyPointer{ 'sub_block }
108  declare tyFrame{ 'label }  declare tyFrame{ 'label }
109    
110  (* Polymorphism. *)  (*!
111     * @begin[doc]
112     *
113     * Polymorphism.
114     * @end[doc]
115     *)
116    
117  declare tyVar{ 'ty_var }  declare tyVar{ 'ty_var }
118  declare tyApply{ 'ty_var; 'ty_list }  declare tyApply{ 'ty_var; 'ty_list }
# Line 82  Line 120 
120  declare tyAll{ 'ty_var_list; 'ty }  declare tyAll{ 'ty_var_list; 'ty }
121  declare tyProject{ 'var; 'int }  declare tyProject{ 'var; 'int }
122    
123  (* Object-oriented. *)  (*!
124     * @begin[doc]
125     *
126     * Object-oriented.
127     * @end[doc]
128     *)
129    
130  declare tyCase{ 'ty }  declare tyCase{ 'ty }
131  declare tyObject{ 'ty_var; 'ty }  declare tyObject{ 'ty_var; 'ty }
132    
133  (* Delayed type. *)  (*!
134     * @begin[doc]
135     *
136     * @tt{tyDelayed} represents a ``delayed'' type, in other words
137     * a type that has not yet been determined by type inference.
138     * @end[doc]
139     *)
140    
141  declare tyDelayed  declare tyDelayed
142    
143  (* Defining types. *)  (*!
144     * @begin[doc]
145     *
146     * Defining types.
147     * @end[doc]
148     *)
149    
150  declare unionElt{ 'ty; 'bool }  declare unionElt{ 'ty; 'bool }
151  declare tyDefUnion{ 'ty_var_list; 'union_type; 'elts }  declare tyDefUnion{ 'ty_var_list; 'union_type; 'elts }
152  declare tyDefLambda{ 'ty_var_list; 'ty }  declare tyDefLambda{ 'ty_var_list; 'ty }
153    
154    (*! @docoff *)
155    
156  (*************************************************************************  (*************************************************************************
157   * Display forms.   * Display forms.
158   *************************************************************************)   *************************************************************************)

Legend:
Removed from v.3589  
changed lines
  Added in v.3590

  ViewVC Help
Powered by ViewVC 1.1.26