#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( char *n ) override; Framework::Text *convertPfad( 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; }; }