LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
libdesugar.hh
Go to the documentation of this file.
1 
6 #ifndef DESUGAR_LIBDESUGAR_HH
7 # define DESUGAR_LIBDESUGAR_HH
8 
9 # include <misc/error.hh>
10 
12 namespace desugar
13 {
14 
15  /*----------.
16  | Helpers. |
17  `----------*/
18 
22  template <typename A>
23  void bind_and_types_check(A& tree);
24 
25 
26  /*----------.
27  | Desugar. |
28  `----------*/
29 
39  template <typename A>
40  A*
41  desugar(const A& tree,
42  bool desugar_for_p, bool desugar_string_cmp_p);
43 
58  template <typename A>
59  A*
60  raw_desugar(const A& tree,
61  bool desugar_for_p, bool desugar_string_cmp_p);
62 
63 
64  /*-----------------------.
65  | Array bound checking. |
66  `-----------------------*/
67 
75  template <typename A>
76  A*
77  bound_checks_add(const A& tree);
78 
92  template <typename A>
93  A*
94  raw_bound_checks_add(const A& tree);
95 
96 } // namespace desugar
97 
98 #endif // !DESUGAR_LIBDESUGAR_HH