]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - src/clight/clightFold.mli
first version of the package
[pkg-cerco/acc.git] / src / clight / clightFold.mli
1
2 (** This module provides folding functions over the constructors of the
3     [Clight]'s AST. *)
4
5 val ctype_fill_subs : Clight.ctype -> Clight.ctype list -> Clight.ctype
6
7 val ctype : (Clight.ctype -> 'a list -> 'a) -> Clight.ctype -> 'a
8
9 val expr_fill_subs :
10   Clight.expr -> Clight.ctype list -> Clight.expr_descr list ->
11   Clight.expr
12
13 val expr_fill_exprs :
14   Clight.expr -> Clight.expr list -> Clight.expr
15
16 val expr :
17   (Clight.ctype -> 'a list -> 'a) ->
18   (Clight.expr -> 'a list -> 'b list -> 'c) ->
19   (Clight.expr_descr -> 'a list -> 'c list -> 'b) ->
20   Clight.expr ->
21   'c
22
23 val expr2 :
24   (Clight.expr -> 'a list -> 'a) -> Clight.expr -> 'a
25
26 val expr_descr_subs :
27   Clight.expr_descr -> Clight.ctype list * Clight.expr list
28
29 val expr_descr_fill_subs :
30   Clight.expr_descr -> Clight.ctype list -> Clight.expr list ->
31   Clight.expr_descr
32
33 val expr_descr :
34   (Clight.ctype -> 'a list -> 'a) ->
35   (Clight.expr -> 'a list -> 'b list -> 'c) ->
36   (Clight.expr_descr -> 'a list -> 'c list -> 'b) ->
37   Clight.expr_descr ->
38   'b
39
40 val statement_subs :
41   Clight.statement ->
42   (Clight.expr list * Clight.statement list)
43
44 val statement_sub_exprs : Clight.statement -> Clight.expr list
45
46 val statement_fill_subs :
47   Clight.statement -> Clight.expr list -> Clight.statement list ->
48   Clight.statement
49
50 val statement :
51   (Clight.ctype -> 'a list -> 'a) ->
52   (Clight.expr -> 'a list -> 'b list -> 'c) ->
53   (Clight.expr_descr -> 'a list -> 'c list -> 'b) ->
54   (Clight.statement -> 'c list -> 'd list -> 'd) ->
55   Clight.statement ->
56   'd
57
58 val statement2 :
59   (Clight.expr -> 'a list -> 'a) ->
60   (Clight.statement -> 'a list -> 'b list -> 'b) ->
61   Clight.statement ->
62   'b