summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/ast/escapable.hh
blob: b0621144162e52bf4bbe6f33f016604e08c6a04d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
 ** \file ast/escapable.hh
 ** \brief Declaration of ast::Escapable.
 */

#pragma once

#include <ast/fwd.hh>

namespace ast
{
  /// Escapable.
  class Escapable
  {
    // FIXME DONE: Some code was deleted here.
  public:
    // Returns whether the object is escaped
    bool escape_get() const;
    // Sets the escaped status of the object
    void escape_set(bool escaped);
    // Return definition site.
    FunctionDec* def_get() const;
    // Set definition site.
    void def_set(FunctionDec*);
  private:
    bool escaping_ = true;
    FunctionDec* def_ = nullptr;
  };
} // namespace ast
#include <ast/escapable.hxx>