#ifndef GAME_SCRIPT_COMPILERCONTEXT_H #define GAME_SCRIPT_COMPILERCONTEXT_H #include namespace MWWorld { class Environment; } namespace MWScript { class CompilerContext : public Compiler::Context { public: enum Type { Type_Full, // global, local, targetted Type_Dialgoue, Type_Console }; private: Type mType; const MWWorld::Environment& mEnvironment; public: CompilerContext (Type type, const MWWorld::Environment& environment); /// Is the compiler allowed to declare local variables? virtual bool canDeclareLocals() const; /// 'l: long, 's': short, 'f': float, ' ': does not exist. virtual char getGlobalType (const std::string& name) const; virtual bool isId (const std::string& name) const; ///< Does \a name match an ID, that can be referenced? }; } #endif