LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
function.hh
Go to the documentation of this file.
1 
5 #ifndef TYPE_FUNCTION_HH
6 # define TYPE_FUNCTION_HH
7 
8 # include <type/type.hh>
9 # include <type/record.hh>
10 # include <type/fwd.hh>
11 
12 namespace type
13 {
14 
19  class Function : public Type
20  {
21  public:
26  Function(const Record* formals, const Type& result);
27 
30  virtual ~Function();
31 
34  public:
36  const Record& formals_get() const;
38  const Type& result_get() const;
41  // FIXME: Some code was deleted here (Special implementation of "compatible_with" for Function).
42 
43  public:
45  virtual std::ostream& dump(std::ostream& ostr) const override;
46 
47  protected:
49  const Record* formals_;
50 
52  const Type& result_;
53  };
54 
55 } // namespace type
56 
57 # include <type/function.hxx>
58 
59 #endif // !TYPE_FUNCTION_HH