00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef skSTACKFRAME_H
00022 #define skSTACKFRAME_H
00023
00024 #include "skString.h"
00025
00026 class CLASSEXPORT skiExecutable;
00027 class CLASSEXPORT skRValueTable;
00028 class CLASSEXPORT skExecutableContext;
00035 class CLASSEXPORT skStackFrame
00036 #ifdef __SYMBIAN32__
00037 : public CBase
00038 #endif
00039 {
00040 public:
00047 skStackFrame(const skString& location,
00048 skiExecutable * obj,
00049 skRValueTable& vars,
00050 skExecutableContext& context);
00051 ~skStackFrame();
00055 skString getLocation() const;
00059 int getLineNum() const;
00063 void setLineNum(int line_num);
00067 skExecutableContext& getContext() const;
00071 skiExecutable * getObject() const;
00075 skRValueTable& getVars() const;
00079 skStackFrame * getParentFrame() const;
00083 void setParentFrame(skStackFrame * frame);
00084 private:
00088 skStackFrame(const skStackFrame& s)
00089 : m_Context(s.m_Context),m_Vars(s.m_Vars)
00090 {
00091 }
00095 skStackFrame& operator=(const skStackFrame&){
00096 return *this;
00097 }
00099 skString m_Location;
00101 int m_LineNum;
00103 skExecutableContext& m_Context;
00105 skiExecutable * m_Object;
00107 skRValueTable& m_Vars;
00109 skStackFrame * m_ParentFrame;
00110 };
00111
00112
00113 inline skString skStackFrame::getLocation() const
00114
00115 {
00116 return m_Location;
00117 }
00118
00119 inline int skStackFrame::getLineNum() const
00120
00121 {
00122 return m_LineNum;
00123 }
00124
00125 inline void skStackFrame::setLineNum(int line_num)
00126
00127 {
00128 m_LineNum=line_num;
00129 }
00130
00131 inline skExecutableContext& skStackFrame::getContext() const
00132
00133 {
00134 return m_Context;
00135 }
00136
00137 inline skiExecutable * skStackFrame::getObject() const
00138
00139 {
00140 return m_Object;
00141 }
00142
00143 inline skRValueTable& skStackFrame::getVars() const
00144
00145 {
00146 return m_Vars;
00147 }
00148
00149 inline skStackFrame * skStackFrame::getParentFrame() const
00150
00151 {
00152 return m_ParentFrame;
00153 }
00154
00155 inline void skStackFrame::setParentFrame(skStackFrame * frame)
00156
00157 {
00158 m_ParentFrame=frame;
00159 }
00160 #endif
00161