LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
for-exp.hh
Go to the documentation of this file.
1 
6 #ifndef AST_FOR_EXP_HH
7 # define AST_FOR_EXP_HH
8 
9 # include <ast/exp.hh>
10 # include <ast/var-dec.hh>
11 
12 namespace ast
13 {
14 
16  class ForExp : public Exp
17  {
20  public:
22  ForExp(const Location& location, VarDec* vardec, Exp* hi, Exp* body);
24  virtual ~ForExp();
27 
28 
29  public:
31  virtual void accept(ConstVisitor& v) const override;
33  virtual void accept(Visitor& v) override;
35 
38  public:
40  const VarDec& vardec_get() const;
42  VarDec& vardec_get();
44  const Exp& hi_get() const;
46  Exp& hi_get();
48  const Exp& body_get() const;
50  Exp& body_get();
53  protected:
57  Exp* hi_;
60  };
61 
62 } // namespace ast
63 
64 # include <ast/for-exp.hxx>
65 
66 #endif // !AST_FOR_EXP_HH