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

Accessing a class field using dot operator - toto.x. More...

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

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

Public Member Functions

void SetUniqNum (int num)
 SetUniqNum. More...
 
bool ExecuteVar (CBotVar *&pVar, CBotCStack *&pile) override
 ExecuteVar Find a field from the instance at compile. More...
 
bool ExecuteVar (CBotVar *&pVar, CBotStack *&pile, CBotToken *prevToken, bool bStep, bool bExtend) override
 ExecuteVar. More...
 
void RestoreStateVar (CBotStack *&pj, bool bMain) override
 RestoreStateVar. More...
 
- Public Member Functions inherited from CBot::CBotInstr
 CBotInstr ()
 Constructor. More...
 
virtual ~CBotInstr ()
 Destructor. More...
 
virtual bool Execute (CBotStack *&pj)
 Execute. More...
 
virtual bool Execute (CBotStack *&pj, CBotVar *pVar)
 Execute. More...
 
virtual void RestoreState (CBotStack *&pj, bool bMain)
 RestoreState. 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...
 
CBotTokenGetToken ()
 GetToken Return associated token. More...
 
void AddNext (CBotInstr *n)
 AddNext Adds the statement following the other. More...
 
CBotInstrGetNext ()
 GetNext Returns next statement. More...
 
void AddNext3 (CBotInstr *n)
 AddNext3. More...
 
CBotInstrGetNext3 ()
 GetNext3. More...
 
void AddNext3b (CBotInstr *n)
 AddNext3b. More...
 
CBotInstrGetNext3b ()
 GetNext3b. More...
 
virtual bool HasReturn ()
 Check a list of instructions for a return statement. More...
 

Static Public Member Functions

static bool CheckProtectionError (CBotCStack *pStack, CBotVar *pPrev, CBotVar *pVar, bool bCheckReadOnly=false)
 Check if access to a variable is allowed or not depending on public/private/protected setting. More...
 
- Static Public Member Functions inherited from CBot::CBotInstr
static CBotInstrCompile (CBotToken *&p, CBotCStack *pStack)
 Compile an instruction. More...
 
static CBotInstrCompileArray (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...
 
- Protected Member Functions inherited from CBot::CBotInstr
virtual std::map< std::string, CBotInstr * > GetDebugLinks ()
 

Friends

class CBotExpression
 

Additional Inherited Members

- Protected Attributes inherited from CBot::CBotInstr
CBotToken m_token
 Keeps the token. More...
 
CBotInstrm_next
 Linked command. More...
 
CBotInstrm_next2b
 Second list definition chain. More...
 
CBotInstrm_next3
 Third list for indices and fields. More...
 
CBotInstrm_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

Accessing a class field using dot operator - toto.x.

Member Function Documentation

◆ SetUniqNum()

void CBot::CBotFieldExpr::SetUniqNum ( int  num)

SetUniqNum.

Parameters
num

◆ ExecuteVar() [1/2]

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

ExecuteVar Find a field from the instance at compile.

Parameters
pVar
pile
Returns

Reimplemented from CBot::CBotInstr.

◆ ExecuteVar() [2/2]

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

ExecuteVar.

Parameters
pVar
pile
prevToken
bStep
bExtend
Returns

Reimplemented from CBot::CBotInstr.

◆ RestoreStateVar()

void CBot::CBotFieldExpr::RestoreStateVar ( CBotStack *&  pj,
bool  bMain 
)
overridevirtual

RestoreStateVar.

Parameters
pj
bMain

Reimplemented from CBot::CBotInstr.

◆ CheckProtectionError()

bool CBot::CBotFieldExpr::CheckProtectionError ( CBotCStack pStack,
CBotVar pPrev,
CBotVar pVar,
bool  bCheckReadOnly = false 
)
static

Check if access to a variable is allowed or not depending on public/private/protected setting.

If this function returns true, the caller is responsible for failing the compilation with CBotErrPrivate error. This function doesn't set the error flag itself.

Parameters
pStackCurrent compilation stack frame
pPrevClass instance which variable to check is part of, or nullptr when compiler inserts 'this.' before
pVarVariable to check
bCheckReadOnlyTrue for operations that would modify the value of the variable
Returns
true if pVar is inaccessible in the current context, false if access should be allowed

◆ GetDebugName()

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

Returns the name of this class.

See also
CBotDebug

Implements CBot::CBotInstr.

◆ GetDebugData()

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

Returns additional data associated with this instruction for debugging purposes.

See also
CBotDebug

Reimplemented from CBot::CBotInstr.


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