LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
record.hh
Go to the documentation of this file.
1 
5 #ifndef TYPE_RECORD_HH
6 # define TYPE_RECORD_HH
7 
8 # include <list>
9 
10 # include <misc/indent.hh>
11 # include <misc/symbol.hh>
12 # include <type/type.hh>
13 # include <type/field.hh>
14 # include <type/fwd.hh>
15 
16 namespace type
17 {
21  class Record : public Type
22  {
25  public:
27  const Type* field_type(const misc::symbol key) const;
31  int field_index(const misc::symbol key) const;
36  public:
38  typedef std::list<Field> fields_type;
40  const fields_type& fields_get() const;
41 
43  void field_add(const Field& field);
45  void field_add(const misc::symbol name, const Type& type);
46 
48  typedef fields_type::const_iterator const_iterator;
49  const_iterator begin() const;
50  const_iterator end() const;
53  // FIXME: Some code was deleted here (Inherited virtual methods).
54 
55  protected:
58  };
59 
60 
61 } // namespace type
62 
63 # include <type/record.hxx>
64 
65 #endif // !TYPE_RECORD_HH