summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/object/libobject.cc
blob: b7c7f72af3701470659f94db92cb96d9ffe22939 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/**
 ** \file object/libobject.cc
 ** \brief Define exported object functions.
 */

// FIXME DONE: Some code was deleted here.
#include <object/libobject.hh>
#include <object/binder.hh>
#include <object/renamer.hh>
#include <object/type-checker.hh>

namespace object
{
  /*-------.
  | Bind.  |
  `-------*/

  // FIXME DONE: Some code was deleted here.
  misc::error bind_obj(ast::ChunkList* d)
  {
    Binder bdc = Binder();
    bdc(d);
    return bdc.error_get();
  }

  /*----------------.
  | Compute types.  |
  `----------------*/

  misc::error types_check(ast::Ast& tree)
  {
    TypeChecker type;
    type(tree);
    return type.error_get();
  }

  /*---------.
  | Rename.  |
  `---------*/

  class_names_type* rename(ast::Ast& tree)
  {
    // Rename.
    Renamer rename;
    rename(tree);
    return rename.class_names_get();
  }

} // namespace object