| 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
|
||||||||||||||||||||||||