30 #include "CBotToken.h"
36 #define EOX (reinterpret_cast<CBotStack*>(-1))
121 void Reset(
void* pUser);
158 bool bModif =
false);
169 bool bModif =
false);
187 bool bModif =
false);
203 CBotStack* AddStack2(
bool bBlock =
false);
206 bool BreakReturn(
CBotStack* pfils,
const char* name =
nullptr);
208 bool IfContinue(
int state,
const char* name);
213 bool SetState(
int n,
int lim = -10);
215 bool IncState(
int lim = -10);
220 void SetCopyVar(
CBotVar* var );
224 bool GetRetVar(
bool bRet);
227 void SetStartError(
int pos);
228 void SetError(
int n,
CBotToken* token =
nullptr);
230 void ResetError(
int n,
int start,
int end);
231 void SetBreak(
int val,
const char* name);
242 bool SaveState(FILE* pf);
243 bool RestoreState(FILE* pf,
CBotStack* &pStack);
246 void SetTimer(
int n);
248 void GetRunPos(
const char* &FunctionName,
int &start,
int &end);
249 CBotVar* GetStackVars(
const char* &FunctionName,
int level);
295 inline bool CBotStack::IsOk()
297 return (m_error == 0);
300 inline int CBotStack::GetState()
343 int GetError(
int& start,
int& end);
348 int GetType(
int mode = 0);
362 void SetCopyVar(
CBotVar* var );
365 void SetStartError(
int pos);
366 void SetError(
int n,
int pos);
368 void ResetError(
int n,
int start,
int end);
383 extern bool SaveVar(FILE* pf,
CBotVar* pVar);
440 void RestoreState(
CBotStack* &pj,
bool bMain);
447 void RestoreStateVar(
CBotStack* &pile,
bool bMain);
470 bool ChkLvl(
const CBotString& label,
int type);
488 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
504 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
522 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
536 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
550 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
566 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
581 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
582 bool CompCase(
CBotStack* &pj,
int val)
override;
600 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
601 void RestoreCondState(
CBotStack* &pj,
bool bMain);
617 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
631 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
661 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
680 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
700 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
718 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
725 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
742 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
760 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
777 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
790 long m_nMethodeIdent;
798 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
829 void RestoreStateVar(
CBotStack* &pile,
bool bMain)
override;
844 void SetUniqNum(
int num);
849 void RestoreStateVar(
CBotStack* &pj,
bool bMain)
override;
868 void RestoreStateVar(
CBotStack* &pj,
bool bMain)
override;
886 bool Execute(
CBotStack* &pStack)
override;
887 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
900 bool Execute(
CBotStack* &pStack)
override;
901 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
917 bool Execute(
CBotStack* &pStack)
override;
918 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
956 bool Execute(
CBotStack* &pStack)
override;
957 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
972 bool Execute(
CBotStack* &pStack)
override;
973 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1005 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1025 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1040 long m_MethodeIdent;
1051 void RestoreStateVar(
CBotStack* &pj,
bool bMain)
override;
1072 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1075 void RestoreStateVar(
CBotStack* &pj,
bool bMain)
override;
1090 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1105 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1123 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1138 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1151 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1163 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1170 long m_nMethodeIdent;
1181 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1199 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1216 void RestoreState(
CBotStack* &pj,
bool bMain)
override;
1220 #define MAX(a,b) ((a>b) ? a : b)
1235 void SetValInt(
int val,
const char* s =
nullptr)
override;
1236 void SetValFloat(
float val)
override;
1237 int GetValInt()
override;
1238 float GetValFloat()
override;
1241 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1266 void Neg()
override;
1267 void Not()
override;
1268 void Inc()
override;
1269 void Dec()
override;
1271 bool Save0State(FILE* pf)
override;
1272 bool Save1State(FILE* pf)
override;
1286 void SetValInt(
int val,
const char* s =
nullptr)
override;
1287 void SetValFloat(
float val)
override;
1288 int GetValInt()
override;
1289 float GetValFloat()
override;
1292 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1309 void Neg()
override;
1310 void Inc()
override;
1311 void Dec()
override;
1313 bool Save1State(FILE* pf)
override;
1327 void SetValString(
const char* p)
override;
1330 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1341 bool Save1State(FILE* pf)
override;
1354 void SetValInt(
int val,
const char* s =
nullptr)
override;
1355 void SetValFloat(
float val)
override;
1356 int GetValInt()
override;
1357 float GetValFloat()
override;
1360 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1365 void Not()
override;
1369 bool Save1State(FILE* pf)
override;
1390 bool m_bConstructor;
1398 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1399 void SetClass(
CBotClass* pClass)
override;
1401 CBotVar* GetItem(
const char* name)
override;
1402 CBotVar* GetItemRef(
int nIdent)
override;
1404 CBotVar* GetItem(
int n,
bool bExtend)
override;
1405 CBotVar* GetItemList()
override;
1409 bool Save1State(FILE* pf)
override;
1410 void Maj(
void* pUser,
bool bContinue)
override;
1412 void IncrementUse();
1413 void DecrementUse();
1416 GetPointer()
override;
1417 void SetItemList(
CBotVar* pVar);
1419 void SetIdent(
long n)
override;
1429 void ConstructorSet()
override;
1446 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1447 void SetClass(
CBotClass* pClass)
override;
1449 CBotVar* GetItem(
const char* name)
override;
1450 CBotVar* GetItemRef(
int nIdent)
override;
1451 CBotVar* GetItemList()
override;
1454 void SetPointer(
CBotVar* p)
override;
1456 GetPointer()
override;
1458 void SetIdent(
long n)
override;
1460 void ConstructorSet()
override;
1462 bool Save1State(FILE* pf)
override;
1463 void Maj(
void* pUser,
bool bContinue)
override;
1472 #define MAXARRAYSIZE 9999
1486 void SetPointer(
CBotVar* p)
override;
1488 GetPointer()
override;
1490 void Copy(
CBotVar* pSrc,
bool bName=
true)
override;
1491 CBotVar* GetItem(
int n,
bool bGrow=
false)
override;
1494 CBotVar* GetItemList()
override;
1498 bool Save1State(FILE* pf)
override;
1507 extern bool WriteWord(FILE* pf,
unsigned short w);
1508 extern bool ReadWord(FILE* pf,
unsigned short& w);
1509 extern bool ReadLong(FILE* pf,
long& w);
1510 extern bool WriteFloat(FILE* pf,
float w);
1511 extern bool WriteLong(FILE* pf,
long w);
1512 extern bool ReadFloat(FILE* pf,
float& w);
1513 extern bool WriteString(FILE* pf,
CBotString s);
1514 extern bool ReadString(FILE* pf,
CBotString& s);
1518 extern float GetNumFloat(
const char* p );
1521 extern void DEBUG(
const char* text,
int val,
CBotStack* pile );
1538 bool (*m_rExec) (
CBotVar* pVar,
CBotVar* pResult,
int& Exception,
void* pUser) ;
1540 (*m_rComp) (
CBotVar* &pVar,
void* pUser) ;
1545 bool rExec (
CBotVar* pVar,
CBotVar* pResult,
int& Exception,
void* pUser),
1550 bool AddFunction(
const char* name,
1551 bool rExec (
CBotVar* pVar,
CBotVar* pResult,
int& Exception,
void* pUser),
1558 bool CheckCall(
const char* name);
1573 static void SetPUser(
void* pUser);
1597 CompileCall(
const char* name,
CBotVar* pThis,
1626 void RestoreState(
CBotStack* &pj,
bool bMain);
1686 void RestoreCall(
long& nIdent,
const char* name,
CBotVar** ppVars,
CBotStack* pStack);
1700 bool GetPosition(
int& start,
int& stop, CBotGet modestart, CBotGet modestop);
Definition: CBotDll.h:903
CBotStack(CBotStack *ppapa)
CBotStack Constructor of the stack.
Definition: CBotStack.cpp:85
CBotVar * FindVar(CBotToken *&pToken, bool bUpdate=false, bool bModif=false)
Fetch a variable by its token.
Definition: CBotStack.cpp:476
void Delete()
Delete Remove current stack.
Definition: CBotStack.cpp:96
int GetError()
GetError Get error number.
Definition: CBot.h:305
Library for interpretation of CBOT language.
Definition: CBotDll.h:365
int GetType(int mode=0)
GetType Get the type of value on the stack.
Definition: CBotStack.cpp:457
static CBotStack * FirstStack()
FirstStack Allocate first stack.
Definition: CBotStack.cpp:47
void Reset(void *pUser)
Reset Reset error at and set user.
Definition: CBotStack.cpp:355
CBotString Class used to work on strings.
Definition: CBotDll.h:259
Management of the execution stack.
Definition: CBot.h:73
CBotVar * CopyVar(CBotToken &Token, bool bUpdate=false)
Find variable by its token and returns a copy of it.
Definition: CBotStack.cpp:549
CBotTypResult GetTypResult(int mode=0)
Getes the type of complete value on the stack.
Definition: CBotStack.cpp:463
static CBotInstr * Compile(CBotToken *&p, CBotCStack *pStack, CBotClass *pClass=nullptr)
Definition: CBotClass.cpp:476
bool StackOver()
StackOver Check if end of stack is reached.
Definition: CBotStack.cpp:236
CBotTypResult class to define the complete type of a result.
Definition: CBotDll.h:90
Definition: CBotDll.h:334
Definition: CBotDll.h:557
void SetType(CBotTypResult &type)
SetType Determines the type.
Definition: CBotStack.cpp:469
Definition: CBotDll.h:776
void AddVar(CBotVar *p)
Adds a local variable.
Definition: CBotStack.cpp:684
CBotInt()
CBotInstr* m_next; // several definitions chained.
Definition: CBot.cpp:917
~CBotStack()
~CBotStack Destructor
Definition: CBotStack.cpp:91