#pragma once #include "../Include/KSGScript.h" #include "../Befehl/KSGSFunktion.h" namespace KSGScript { class KSGSKlasse; class KSGSVariable; class KSGSFunktion; class KSGSExpressionEvaluatorImpl : public KSGSExpressionEvaluator { private: Framework::RCArray* params; Framework::RCArray* paramNames; Framework::Text expression; RCArray< KSGSFunktion >* functions; RCArray< KSGSKlasse >* classes; RCArray< KSGSVariable >* variables; private: void compile(); public: KSGSExpressionEvaluatorImpl(); ~KSGSExpressionEvaluatorImpl(); KSGSVariable* createParameter(Framework::Text name, int type) override; KSGSVariable* getParameter(Framework::Text name) override; void setExpression(Framework::Text expression) override; KSGSVariable* evaluate() override; void logNachricht(const char* n) override; Framework::Text* convertPfad(const char* pf) override; void setVariable(int id, KSGSVariable* var) override; KSGSVariable* startFunktion(int id, Framework::RCArray< KSGSVariable >* parameter) override; KSGSVariable* erstellKlassenInstanz(int id) override; KSGSVariable* getVariable(int id) const override; int getScriptId() const override; Framework::Bildschirm* zBildschirm() const override; Framework::Schrift* zSchrift() const override; int getFunktionId(const char* name) const override; bool istBeendet(int scrId) const override; KSGSVariable* callback(Framework::RCArray< KSGSVariable >* parameter) const override; }; }