Changeset 818 for Deliverables/D2.2/8051/src/cminor/cminorFold.mli
- Timestamp:
- May 19, 2011, 4:03:04 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Deliverables/D2.2/8051/src/cminor/cminorFold.mli
r486 r818 3 3 [Cminor]'s AST. *) 4 4 5 (* In [expression_left f e], [f]'s second argument is the list of 6 [expression_left]'s results on [e]'s sub-expressions. The results are 7 computed from left to right following their appearance order in the 8 [Cminor.expression] type. *) 5 val expression_subs : Cminor.expression -> Cminor.expression list 9 6 10 val expression_left : (Cminor.expression -> 'a list -> 'a) -> 11 Cminor.expression -> 12 'a 7 val expression_fill_subs : Cminor.expression -> Cminor.expression list -> 8 Cminor.expression 13 9 14 (* In [statement_left f_expr f_stmt stmt], [f_stmt]'s second argument is the 15 list of [expression_left f_expr]'s results on [stmt]'s sub-expressions, and 16 [f_stmt]'s third argument is the list of [statement_left]'s results 17 on [stmt]'s sub-statements. The results are computed from left to right 18 following their appearance order in the [Cminor.statement] type. *) 10 (* In [expression f e], [f]'s second argument is the list of 11 [expression]'s results on [e]'s sub-expressions. *) 19 12 20 val statement_left : (Cminor.expression -> 'a list -> 'a) -> 21 (Cminor.statement -> 'a list -> 'b list -> 'b) -> 22 Cminor.statement -> 23 'b 13 val expression : (Cminor.expression -> 'a list -> 'a) -> 14 Cminor.expression -> 15 'a 24 16 17 val statement_subs : Cminor.statement -> 18 (Cminor.expression list * Cminor.statement list) 25 19 26 (* In [expression_right f e], [f]'s second argument is the list of 27 [expression_right]'s results on [e]'s sub-expressions. The results are28 computed from right to left following their appearance order in the29 [Cminor.expression] type. *)20 val statement_fill_subs : Cminor.statement -> 21 Cminor.expression list -> 22 Cminor.statement list -> 23 Cminor.statement 30 24 31 val expression_right : ('a list -> Cminor.expression -> 'a) -> 32 Cminor.expression -> 33 'a 25 (* In [statement f_expr f_stmt stmt], [f_stmt]'s second argument is the 26 list of [expression f_expr]'s results on [stmt]'s sub-expressions, and 27 [f_stmt]'s third argument is the list of [statement]'s results 28 on [stmt]'s sub-statements. *) 34 29 35 (* In [statement_right f_expr f_stmt stmt], [f_stmt]'s second argument is the 36 list of [expression_left f_expr]'s results on [stmt]'s sub-expressions, and 37 [f_stmt]'s third argument is the list of [statement_left]'s results 38 on [stmt]'s sub-statements. The results are computed from right to left 39 following their appearance order in the [Cminor.statement] type. *) 40 41 val statement_right : ('a list -> Cminor.expression -> 'a) -> 42 ('a list -> 'b list -> Cminor.statement -> 'b) -> 43 Cminor.statement -> 44 'b 30 val statement : (Cminor.expression -> 'a list -> 'a) -> 31 (Cminor.statement -> 'a list -> 'b list -> 'b) -> 32 Cminor.statement -> 33 'b
Note: See TracChangeset
for help on using the changeset viewer.