Content


NTL
Core
CExpressionRunner

CExpressionRunner


Class implements base expression runner functionality. Can be used as base class only.

You can find more information in comments below. Overrided methods can be found in corresponding base class or interface.

class CExpressionRunner :public virtual IExpressionRunner, public virtual CReleasable
{
protected:
    IErrorListener *m_pErrorListener; // Error listener 
    std::vector<std::pair<String, Variable>> m_aVariables; // Variable list 
    IFunction *m_pFunction; // Prepared function 

    void BeforeRelease() override;

    CExpressionRunner(); // Constructor 
public:
    IErrorListener* &ErrorListener; // Error listener. Can be nullptr if no additional error information is required 

    // IExpressionRunner getters 
    size_t getVariableCount() const override;
    Variable *getVariable(const size_t index) override;
    Variable *getVariable(const String &name) override;

    // IExpressionRunner variables 
    bool AddVariable(const String &name, const Variable &variable) override;
    bool DeleteVariable(const size_t index) override;
    bool DeleteVariable(const String &name) override;
    bool DeleteVariables() override;
};
Namespace: nitisa::script
Include: Nitisa/Modules/Script/Core/ExpressionRunner.h