00001 // execution.h 00002 // 00003 // Copyright (C) 2002, Chris Laurel <claurel@shatters.net> 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 00010 #ifndef CELSCRIPT_EXECUTION_H_ 00011 #define CELSCRIPT_EXECUTION_H_ 00012 00013 #include <celscript/celx.h> 00014 #include <vector> 00015 #include <celscript/environment.h> 00016 00017 00018 namespace celx 00019 { 00020 00021 typedef std::vector<Value> Stack; 00022 00023 class ExecutionContext 00024 { 00025 public: 00026 ExecutionContext(Environment*); 00027 ~ExecutionContext(); 00028 00029 Environment* getEnvironment(); 00030 void runtimeError() {}; 00031 00032 void pushReturnValue(const Value&); 00033 Value popReturnValue(); 00034 00035 private: 00036 Environment* globalEnv; 00037 Stack returnStack; 00038 }; 00039 00040 } // namespace celx 00041 00042 #endif // CELSCRIPT_EXECUTION_H_
1.4.1