Colobot
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
CBot::CBotLeftExpr Class Reference

Compilation of left side of an assignment. More...

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

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

Public Member Functions

bool Execute (CBotStack *&pStack, CBotStack *array)
 Execute Runs, is a variable and assigns the result to the stack.
 
bool ExecuteVar (CBotVar *&pVar, CBotCStack *&pile) override
 ExecuteVar Fetch a variable during compilation.
 
bool ExecuteVar (CBotVar *&pVar, CBotStack *&pile, CBotToken *prevToken, bool bStep)
 ExecuteVar Fetch the variable at runtume.
 
void RestoreStateVar (CBotStack *&pile, bool bMain) override
 RestoreStateVar.
 
virtual bool Execute (CBotStack *&pj)
 Execute.
 
virtual bool Execute (CBotStack *&pj, CBotVar *pVar)
 Execute.
 
virtual bool ExecuteVar (CBotVar *&pVar, CBotCStack *&pile)
 ExecuteVar.
 
virtual bool ExecuteVar (CBotVar *&pVar, CBotStack *&pile, CBotToken *prevToken, bool bStep, bool bExtend)
 ExecuteVar.
 
- Public Member Functions inherited from CBot::CBotInstr
 CBotInstr ()
 Constructor.
 
virtual ~CBotInstr ()
 Destructor.
 
virtual void RestoreState (CBotStack *&pj, bool bMain)
 RestoreState.
 
void SetToken (CBotToken *p)
 SetToken Set the token corresponding to the instruction.
 
int GetTokenType ()
 GetTokenType Return the type of the token assicated with the instruction.
 
CBotToken * GetToken ()
 GetToken Return associated token.
 
void AddNext (CBotInstr *n)
 AddNext Adds the statement following the other.
 
CBotInstr * GetNext ()
 GetNext Returns next statement.
 
void AddNext3 (CBotInstr *n)
 AddNext3.
 
CBotInstr * GetNext3 ()
 GetNext3.
 
void AddNext3b (CBotInstr *n)
 AddNext3b.
 
CBotInstr * GetNext3b ()
 GetNext3b.
 
virtual bool HasReturn ()
 Check a list of instructions for a return statement.
 

Static Public Member Functions

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

Protected Member Functions

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

Additional Inherited Members

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

Detailed Description

Compilation of left side of an assignment.

Some examples:

varname
varname[3]
varname.x
varname.pos.x
varname[2].pos.x
varname[1].pos[2].x
varname[1][2][3]

Member Function Documentation

◆ Compile()

CBotLeftExpr * CBot::CBotLeftExpr::Compile ( CBotToken *&  p,
CBotCStack *  pStack 
)
static

Compile Compiles an expression for a left-operand (left of an assignment).

Parameters
p
pStack
Returns

◆ Execute() [1/3]

bool CBot::CBotLeftExpr::Execute ( CBotStack *&  pStack,
CBotStack *  array 
)

Execute Runs, is a variable and assigns the result to the stack.

Parameters
pStack
array
Returns

◆ ExecuteVar() [1/4]

bool CBot::CBotLeftExpr::ExecuteVar ( CBotVar *&  pVar,
CBotCStack *&  pile 
)
overridevirtual

ExecuteVar Fetch a variable during compilation.

Parameters
pVar
pile
Returns

Reimplemented from CBot::CBotInstr.

◆ ExecuteVar() [2/4]

bool CBot::CBotLeftExpr::ExecuteVar ( CBotVar *&  pVar,
CBotStack *&  pile,
CBotToken *  prevToken,
bool  bStep 
)

ExecuteVar Fetch the variable at runtume.

Parameters
pVar
pile
prevToken
bStep
Returns

◆ RestoreStateVar()

void CBot::CBotLeftExpr::RestoreStateVar ( CBotStack *&  pile,
bool  bMain 
)
overridevirtual

RestoreStateVar.

Parameters
pile
bMain

Reimplemented from CBot::CBotInstr.

◆ GetDebugName()

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

Returns the name of this class.

See also
CBotDebug

Implements CBot::CBotInstr.

◆ GetDebugData()

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

Returns additional data associated with this instruction for debugging purposes.

See also
CBotDebug

Reimplemented from CBot::CBotInstr.

◆ Execute() [2/3]

bool CBot::CBotInstr::Execute ( CBotStack *&  pj)
virtual

Execute.

Parameters
pj
Returns

Reimplemented from CBot::CBotInstr.

◆ Execute() [3/3]

bool CBot::CBotInstr::Execute ( CBotStack *&  pj,
CBotVar *  pVar 
)
virtual

Execute.

Parameters
pj
pVar
Returns

Reimplemented from CBot::CBotInstr.

◆ ExecuteVar() [3/4]

bool CBot::CBotInstr::ExecuteVar ( CBotVar *&  pVar,
CBotCStack *&  pile 
)
virtual

ExecuteVar.

Parameters
pVar
pile
Returns

Reimplemented from CBot::CBotInstr.

◆ ExecuteVar() [4/4]

bool CBot::CBotInstr::ExecuteVar ( CBotVar *&  pVar,
CBotStack *&  pile,
CBotToken *  prevToken,
bool  bStep,
bool  bExtend 
)
virtual

ExecuteVar.

Parameters
pVar
pile
prevToken
bStep
bExtend
Returns

Reimplemented from CBot::CBotInstr.


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