1 /* 2 * The contents of this file are subject to the Mozilla Public License 3 * Version 1.0 (the "License"); you may not use this file except in 4 * compliance with the License. You may obtain a copy of the License at 5 * http://www.mozilla.org/MPL/ 6 * 7 * Software distributed under the License is distributed on an "AS IS" 8 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 9 * License for the specific language governing rights and limitations 10 * under the License. 11 * 12 * The Initial Developer of this code is David Baum. 13 * Portions created by David Baum are Copyright (C) 1998 David Baum. 14 * All Rights Reserved. 15 * 16 * Portions created by John Hansen are Copyright (C) 2005 John Hansen. 17 * All Rights Reserved. 18 * 19 */ 20 21 #ifndef __WhileStmt_h 22 #define __WhileStmt_h 23 24 #ifndef __Stmt_h 25 #include "Stmt.h" 26 #endif 27 28 #ifndef __Expr_h 29 #include "Expr.h" 30 #endif 31 32 class WhileStmt : public ChainStmt 33 { 34 public: 35 WhileStmt(Expr *c, Stmt *s); 36 ~WhileStmt(); 37 38 void EmitActual(Bytecode &b); 39 Stmt* CloneActual(Mapping *b) const; GetExprs(vector<Expr * > & v)40 virtual void GetExprs(vector<Expr*> & v) const { v.push_back(fCondition); } 41 42 private: 43 Expr* fCondition; 44 }; 45 46 47 #endif 48