Colobot
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
CBot::CBotTwoOpExpr Class Reference

Any expression with two operands. More...

#include <src/CBot/CBotInstr/CBotTwoOpExpr.h>

Inheritance diagram for CBot::CBotTwoOpExpr:
Inheritance graph
[legend]

Public Member Functions

bool Execute (CBotStack *&pStack) override
 Execute Performes the operation on two operands. More...
 
void RestoreState (CBotStack *&pj, bool bMain) override
 RestoreState. More...
 
- Public Member Functions inherited from CBot::CBotInstr
 CBotInstr ()
 Constructor. More...
 
virtual ~CBotInstr ()
 Destructor. More...
 
virtual bool Execute (CBotStack *&pj, CBotVar *pVar)
 Execute. More...
 
virtual bool ExecuteVar (CBotVar *&pVar, CBotCStack *&pile)
 ExecuteVar. More...
 
virtual bool ExecuteVar (CBotVar *&pVar, CBotStack *&pile, CBotToken *prevToken, bool bStep, bool bExtend)
 ExecuteVar. More...
 
virtual void RestoreStateVar (CBotStack *&pile, bool bMain)
 RestoreStateVar. More...
 
virtual bool CompCase (CBotStack *&pj, int val)
 CompCase This routine is defined only for the subclass CBotCase this allows to make the call on all instructions CompCase to see if it's a case to the desired value.. More...
 
void SetToken (CBotToken *p)
 SetToken Set the token corresponding to the instruction. More...
 
int GetTokenType ()
 GetTokenType Return the type of the token assicated with the instruction. More...
 
CBotToken * GetToken ()
 GetToken Return associated token. More...
 
void AddNext (CBotInstr *n)
 AddNext Adds the statement following the other. More...
 
CBotInstr * GetNext ()
 GetNext Returns next statement. More...
 
void AddNext3 (CBotInstr *n)
 AddNext3. More...
 
CBotInstr * GetNext3 ()
 GetNext3. More...
 
void AddNext3b (CBotInstr *n)
 AddNext3b. More...
 
CBotInstr * GetNext3b ()
 GetNext3b. More...
 
virtual bool HasReturn ()
 Check a list of instructions for a return statement. More...
 

Static Public Member Functions

static CBotInstr * Compile (CBotToken *&p, CBotCStack *pStack, int *pOperations=nullptr)
 Compiles CBotTwoOpExpr or CBotLogicExpr. More...
 
- Static Public Member Functions inherited from CBot::CBotInstr
static CBotInstr * Compile (CBotToken *&p, CBotCStack *pStack)
 Compile an instruction. More...
 
static CBotInstr * CompileArray (CBotToken *&p, CBotCStack *pStack, CBotTypResult type, bool first=true)
 CompileArray. More...
 
static void IncLvl (std::string &label)
 IncLvl Adds a level with a label. More...
 
static void IncLvl ()
 IncLvl Adds a level (switch statement). More...
 
static void DecLvl ()
 DecLvl Free a level. More...
 
static bool ChkLvl (const std::string &label, int type)
 ChkLvl Control validity of break and continue. More...
 

Protected Member Functions

virtual const std::string GetDebugName () override
 Returns the name of this class. More...
 
virtual std::string GetDebugData () override
 Returns additional data associated with this instruction for debugging purposes. More...
 
virtual std::map< std::string, CBotInstr * > GetDebugLinks () override
 

Additional Inherited Members

- Protected Attributes inherited from CBot::CBotInstr
CBotToken m_token
 Keeps the token. More...
 
CBotInstr * m_next
 Linked command. More...
 
CBotInstr * m_next2b
 Second list definition chain. More...
 
CBotInstr * m_next3
 Third list for indices and fields. More...
 
CBotInstr * m_next3b
 Necessary for reporting tables. More...
 
- Static Protected Attributes inherited from CBot::CBotInstr
static int m_LoopLvl = 0
 Counter of nested loops, to determine the break and continue valid. More...
 

Detailed Description

Any expression with two operands.

Examples:

op1 + op2
op1 > op2

Supported operations

This table is sorted by operator precedence

Operator
**
*, /, %
+, -
<<, >>, >>>
>, <, >=, <=
==, !=
&

|

&&, and

||, or

a ? b : c (special, see CBotLogicExpr)

Member Function Documentation

◆ Compile()

CBotInstr * CBot::CBotTwoOpExpr::Compile ( CBotToken *&  p,
CBotCStack *  pStack,
int *  pOperations = nullptr 
)
static

Compiles CBotTwoOpExpr or CBotLogicExpr.

Parameters
p
pStack
pOperations
Returns

◆ Execute()

bool CBot::CBotTwoOpExpr::Execute ( CBotStack *&  pStack)
overridevirtual

Execute Performes the operation on two operands.

Parameters
pStack
Returns

Reimplemented from CBot::CBotInstr.

◆ RestoreState()

void CBot::CBotTwoOpExpr::RestoreState ( CBotStack *&  pj,
bool  bMain 
)
overridevirtual

RestoreState.

Parameters
pj
bMain

Reimplemented from CBot::CBotInstr.

◆ GetDebugName()

virtual const std::string CBot::CBotTwoOpExpr::GetDebugName ( )
inlineoverrideprotectedvirtual

Returns the name of this class.

See also
CBotDebug

Implements CBot::CBotInstr.

◆ GetDebugData()

std::string CBot::CBotTwoOpExpr::GetDebugData ( )
overrideprotectedvirtual

Returns additional data associated with this instruction for debugging purposes.

See also
CBotDebug

Reimplemented from CBot::CBotInstr.

◆ GetDebugLinks()

std::map< std::string, CBotInstr * > CBot::CBotTwoOpExpr::GetDebugLinks ( )
overrideprotectedvirtual

Returns a map of all instructions connected with this one

See also
CBotDebug

Reimplemented from CBot::CBotInstr.


The documentation for this class was generated from the following files: