LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
method.hh
Go to the documentation of this file.
1 
5 #ifndef TYPE_METHOD_HH
6 # define TYPE_METHOD_HH
7 
8 # include <ast/method-dec.hh>
9 # include <type/function.hh>
10 
11 namespace type
12 {
13  // Forward declaration.
14  class Class;
15 
20  class Method : public Function
21  {
24 
25  public:
33  Method(const misc::symbol& name, const Class* owner,
34  const Record* formals, const Type& result, ast::MethodDec* def);
35 
38  virtual ~Method();
39 
42  public:
44  misc::symbol name_get() const;
46  const Class* owner_get() const;
48  const ast::MethodDec* def_get() const;
51 
53  void name_set(const misc::symbol& name);
55  void def_set(ast::MethodDec* def);
58  // FIXME: Some code was deleted here (Special implementation of "compatible_with" for type::Method).
59 
60  private:
64  const Class* owner_;
67  };
68 
69 } // namespace type
70 
71 # include <type/method.hxx>
72 
73 #endif // !TYPE_METHOD_HH