summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/escapes/libescapes.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tiger-compiler/src/escapes/libescapes.cc')
-rw-r--r--tiger-compiler/src/escapes/libescapes.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/tiger-compiler/src/escapes/libescapes.cc b/tiger-compiler/src/escapes/libescapes.cc
new file mode 100644
index 0000000..6124d54
--- /dev/null
+++ b/tiger-compiler/src/escapes/libescapes.cc
@@ -0,0 +1,23 @@
+/**
+ ** \file escapes/libescapes.cc
+ ** \brief Define exported escapes functions.
+ */
+
+#include <escapes/escapes-visitor.hh>
+#include <escapes/libescapes.hh>
+
+namespace escapes
+{
+ /** Walk the tree, and set the escape flag of variables and arguments
+ if they do escape. */
+ void escapes_compute(ast::Ast& tree)
+ {
+ /// boolean to check if an escapes pass was done in desugar
+ escapes::escaped = true;
+ EscapesVisitor escapes_compute;
+ escapes_compute(tree);
+ }
+
+ bool escaped = false;
+
+} // namespace escapes