code_instructor.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00034 #ifndef __code_instructor__header__
00035 #define __code_instructor__header__
00036
00037
00038 #include "gpucalc/object.h"
00039 #include "gpucalc/string_util.h"
00040
00041
00042 namespace gpucalc
00043 {
00044 namespace debugger
00045 {
00046
00047
00048 const char _CodeInstructorClassName [] = "debugger::CodeInstructor";
00049
00050
00051 class _GpuCalcExport CodeInstructor: public Object
00052 {
00053
00054
00055 OBJ_DISABLE_COPY(CodeInstructor)
00056
00057
00058 public:
00059 CodeInstructor(const std::string & CodeInstructorName): Object(_CodeInstructorClassName, CodeInstructorName)
00060 {
00061
00062 }
00063
00064
00065 virtual ~CodeInstructor()
00066 {
00067 }
00068
00069
00070 virtual std::string getLanguageID() const = 0;
00071
00072
00073 virtual void setOriginalSource(const std::string & OriginalSource) = 0;
00074
00075
00079 virtual std::string instruct(size_t line, const std::string & variable) = 0;
00080
00081
00085 virtual bool isCycle(size_t line) const = 0;
00086
00087
00093 virtual size_t getEndOfCycle(size_t line) const = 0;
00094
00095
00099 virtual bool isExternalFunctionCalling(size_t line) const = 0;
00100
00101
00102 virtual std::string getExternalFunctionName(size_t line) const = 0;
00103
00104
00110 virtual size_t getExternalFunctionBody(const std::string & FunctionName) const = 0;
00111 };
00112 }
00113 }
00114
00115 #endif