Loading...
Searching...
No Matches
CBot::CBotLeftExpr Class Reference

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

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

Inheritance diagram for CBot::CBotLeftExpr:
[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, 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/3]

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

override virtual

ExecuteVar Fetch a variable during compilation.

Parameters

  pVar |
  pile |

Returns

Reimplemented from CBot::CBotInstr.

## ExecuteVar() [2/3]

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 )

override virtual

RestoreStateVar.

Parameters

  pile |
  bMain |

Reimplemented from CBot::CBotInstr.

## GetDebugName()

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

inline override protected virtual

Returns the name of this class.

See also
  CBotDebug

Implements CBot::CBotInstr.

## GetDebugData()

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

override protected virtual

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/3]

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:

- src/CBot/CBotInstr/CBotLeftExpr.h
- src/CBot/CBotInstr/CBotLeftExpr.cpp