]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - src/cminor/cminorFold.mli
Imported Upstream version 0.2
[pkg-cerco/acc.git] / src / cminor / cminorFold.mli
1
2 (** This module provides folding functions over the constructors of the
3     [Cminor]'s AST. *)
4
5 val expression_subs : Cminor.expression -> Cminor.expression list
6
7 val expression_fill_subs : Cminor.expression -> Cminor.expression list ->
8                            Cminor.expression
9
10 (* In [expression f e], [f]'s second argument is the list of
11    [expression]'s results on [e]'s sub-expressions. *)
12
13 val expression : (Cminor.expression -> 'a list -> 'a) ->
14                  Cminor.expression ->
15                  'a
16
17 val statement_subs : Cminor.statement ->
18                      (Cminor.expression list * Cminor.statement list)
19
20 val statement_fill_subs : Cminor.statement ->
21                           Cminor.expression list ->
22                           Cminor.statement list ->
23                           Cminor.statement
24
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. *)
29
30 val statement : (Cminor.expression -> 'a list -> 'a) ->
31                 (Cminor.statement -> 'a list -> 'b list -> 'b) ->
32                 Cminor.statement ->
33                 'b