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) 2000 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 __ModExpr_h 22 #define __ModExpr_h 23 24 #include "NodeExpr.h" 25 26 class ModExpr : public NodeExpr 27 { 28 public: ModExpr(Expr * lhs,Expr * rhs)29 ModExpr(Expr *lhs, Expr *rhs) : NodeExpr(lhs, rhs) {}; 30 31 virtual bool Evaluate(int &value) const; 32 virtual Expr* Clone(Mapping *b) const; 33 34 virtual RCX_Value EmitAny_(Bytecode &b) const; 35 virtual bool EmitTo_(Bytecode &b, int dst) const; 36 37 private: 38 bool EmitCalculation(Bytecode &b, int dst) const; 39 }; 40 41 42 #endif 43