gl_Cg_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 __gl_Cg_code_instructor__header__
00035 #define __gl_Cg_code_instructor__header__
00036
00037
00038 #include "gpucalc/debugger/code_instructor.h"
00039
00040 namespace gpucalc
00041 {
00042 namespace debugger
00043 {
00044
00045 const char _GLCgCodeInstructorName [] = "GLCgCodeInstructor";
00046
00047
00048 class _GpuCalcPrivate GLCgCodeInstructor: public CodeInstructor
00049 {
00050
00051 OBJ_DISABLE_COPY(GLCgCodeInstructor)
00052
00053
00054 public:
00055 GLCgCodeInstructor();
00056
00057
00058 ~GLCgCodeInstructor();
00059
00060
00061 std::string getLanguageID() const
00062 {
00063 return "Cg";
00064 }
00065
00066
00067 void setOriginalSource(const std::string & OriginalSource)
00068 {
00069 mOriginalSource = OriginalSource;
00070 }
00071
00072
00073 std::string instruct(size_t line, const std::string & variable);
00074
00075
00076 bool isCycle(size_t line) const;
00077
00078
00079 bool isExternalFunctionCalling(size_t line) const;
00080
00081
00082 size_t getEndOfCycle(size_t line) const;
00083
00084
00085 std::string getExternalFunctionName(size_t line) const;
00086
00087
00088 size_t getExternalFunctionBody(const std::string & FunctionName) const;
00089
00090
00091 private:
00092
00093 static const std::string mSourceFooter;
00094
00095
00096 std::string mOriginalSource;
00097 };
00098 }
00099 }
00100
00101 #endif