00001 00007 /* Copyright, 2000 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 00024 */ 00025 #ifndef NL_CONSTRAINT_TYPE_H 00026 #define NL_CONSTRAINT_TYPE_H 00027 00028 namespace NLAISCRIPT 00029 { 00030 00039 class CConstraintChkMethodeType: public IConstraint 00040 { 00041 private: 00043 NLAIC::CIdentType *_Ident; 00045 IConstraint *_Constraint; 00047 00048 bool _Satisfied; 00049 int _Lin; 00050 int _Col; 00051 char *_TxtInfo; 00053 bool _RunIsDone; 00054 00055 public: 00056 CConstraintChkMethodeType(IConstraint *constraint, int lin, int col); 00057 00059 00060 bool satisfied() 00061 { 00062 return _Satisfied; 00063 } 00064 00065 const char *getInfo() 00066 { 00067 return _TxtInfo; 00068 } 00069 00070 void run(CCompilateur &); 00071 void run(IConstraint *); 00072 void addIndex(int i,CCodeBrancheRun *c); 00073 00074 int getLine() const 00075 { 00076 return _Lin; 00077 } 00078 int getColone() const 00079 { 00080 return _Col; 00081 } 00082 00083 bool dependOn(const IConstraint *c) const 00084 { 00085 return c == _Constraint || _Constraint->dependOn(c); 00086 } 00087 00088 void getError(char *) const; 00089 00090 const IConstraint *clone() const; 00091 00092 const NLAIC::CIdentType *getConstraintTypeOf() 00093 { 00094 return _Ident; 00095 } 00096 00097 bool operator == (const IConstraint &) const; 00098 00099 ConstraintTypeEnum getTypeOfClass() const 00100 { 00101 return constraintChkMethodeType; 00102 } 00104 00105 virtual ~CConstraintChkMethodeType(); 00106 }; 00107 } 00108 00109 #endif