Home | nevrax.com |
|
virtual_op_code.hGo to the documentation of this file.00001 00006 /* Copyright, 2000 Nevrax Ltd. 00007 * 00008 * This file is part of NEVRAX NEL. 00009 * NEVRAX NEL is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2, or (at your option) 00012 * any later version. 00013 00014 * NEVRAX NEL is distributed in the hope that it will be useful, but 00015 * WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * General Public License for more details. 00018 00019 * You should have received a copy of the GNU General Public License 00020 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00021 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00022 * MA 02111-1307, USA. 00023 */ 00024 #ifndef NL_VIRTUAL_OP_CODE_H 00025 #define NL_VIRTUAL_OP_CODE_H 00026 00027 namespace NLAISCRIPT 00028 { 00029 class CCodeContext; 00030 00031 00042 class IOpCode: public NLAIAGENT::IObjectIA 00043 { 00044 public: 00045 IOpCode() 00046 { 00047 } 00048 00050 virtual NLAIAGENT::TProcessStatement runOpCode(CCodeContext &context) = 0; 00052 virtual void getDebugResult(std::string &str,CCodeContext &context) const = 0; 00053 virtual ~IOpCode() 00054 { 00055 } 00056 }; 00057 00067 class ICodeBranche: public IOpCode 00068 { 00069 public: 00070 ICodeBranche() 00071 { 00072 } 00073 00075 virtual IOpCode &nextCode() = 0; 00077 virtual const NLAIAGENT::IObjectIA::CProcessResult &run(NLAIAGENT::IObjectIA &self) = 0; 00079 virtual const NLAIAGENT::IObjectIA::CProcessResult &run(CCodeContext &) = 0; 00080 00081 virtual ~ICodeBranche() 00082 { 00083 } 00084 }; 00085 00086 00087 00098 class IOpRunCode:public IOpCode 00099 { 00100 public: 00101 00102 IOpRunCode() 00103 { 00104 } 00105 00106 const NLAIAGENT::IObjectIA::CProcessResult &run(){return NLAIAGENT::IObjectIA::ProcessRun;} 00107 void getDebugString(std::string &) const{ } 00108 bool isEqual(const NLAIAGENT::IBasicObjectIA &a) const{ return true;} 00109 00110 virtual ~IOpRunCode() 00111 { 00112 } 00113 00114 }; 00115 00116 } 00117 #endif |