-/* see copyright notice in squirrel.h */
-#ifndef _SQFUNCTION_H_
-#define _SQFUNCTION_H_
-
-#include "sqopcodes.h"
-
-enum SQOuterType {
- otLOCAL = 0,
- otSYMBOL = 1,
- otOUTER = 2
-};
-
-struct SQOuterVar
-{
-
- SQOuterVar(){}
- SQOuterVar(const SQObjectPtr &name,const SQObjectPtr &src,SQOuterType t)
- {
- _name = name;
- _src=src;
- _type=t;
- }
- SQOuterVar(const SQOuterVar &ov)
- {
- _type=ov._type;
- _src=ov._src;
- _name=ov._name;
- }
- SQOuterType _type;
- SQObjectPtr _name;
- SQObjectPtr _src;
-};
-
-struct SQLocalVarInfo
-{
- SQLocalVarInfo():_start_op(0),_end_op(0){}
- SQLocalVarInfo(const SQLocalVarInfo &lvi)
- {
- _name=lvi._name;
- _start_op=lvi._start_op;
- _end_op=lvi._end_op;
- _pos=lvi._pos;
- }
- SQObjectPtr _name;
- unsigned int _start_op;
- unsigned int _end_op;
- unsigned int _pos;
-};
-
-struct SQLineInfo { int _line;int _op; };
-
-typedef sqvector<SQOuterVar> SQOuterVarVec;
-typedef sqvector<SQLocalVarInfo> SQLocalVarInfoVec;
-typedef sqvector<SQLineInfo> SQLineInfoVec;
-
-struct SQFunctionProto : public SQRefCounted
-{
-private:
- SQFunctionProto(){
- _uiRef=0;
- _stacksize=0;
- _bgenerator=false;}
-public:
- static SQFunctionProto *Create()
- {
- SQFunctionProto *f;
- sq_new(f,SQFunctionProto);
- return f;
- }
- void Release(){ sq_delete(this,SQFunctionProto);}
- const SQChar* GetLocal(SQVM *v,unsigned int stackbase,unsigned int nseq,unsigned int nop);
- int GetLine(SQInstruction *curr);
- bool Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write);
- bool Load(SQVM *v,SQUserPointer up,SQREADFUNC read);
- SQObjectPtrVec _literals;
- SQObjectPtrVec _functions;
- SQObjectPtrVec _parameters;
- SQOuterVarVec _outervalues;
- SQInstructionVec _instructions;
- SQObjectPtr _sourcename;
- SQObjectPtr _name;
- SQLocalVarInfoVec _localvarinfos;
- SQLineInfoVec _lineinfos;
- int _stacksize;
- bool _bgenerator;
- bool _varparams;
-};
-
-#endif //_SQFUNCTION_H_
+/* see copyright notice in squirrel.h */\r
+#ifndef _SQFUNCTION_H_\r
+#define _SQFUNCTION_H_\r
+\r
+#include "sqopcodes.h"\r
+\r
+enum SQOuterType {\r
+ otLOCAL = 0,\r
+ otSYMBOL = 1,\r
+ otOUTER = 2\r
+};\r
+\r
+struct SQOuterVar\r
+{\r
+ \r
+ SQOuterVar(){}\r
+ SQOuterVar(const SQObjectPtr &name,const SQObjectPtr &src,SQOuterType t)\r
+ {\r
+ _name = name;\r
+ _src=src;\r
+ _type=t;\r
+ }\r
+ SQOuterVar(const SQOuterVar &ov)\r
+ {\r
+ _type=ov._type;\r
+ _src=ov._src;\r
+ _name=ov._name;\r
+ }\r
+ SQOuterType _type;\r
+ SQObjectPtr _name;\r
+ SQObjectPtr _src;\r
+};\r
+\r
+struct SQLocalVarInfo\r
+{\r
+ SQLocalVarInfo():_start_op(0),_end_op(0){}\r
+ SQLocalVarInfo(const SQLocalVarInfo &lvi)\r
+ {\r
+ _name=lvi._name;\r
+ _start_op=lvi._start_op;\r
+ _end_op=lvi._end_op;\r
+ _pos=lvi._pos;\r
+ }\r
+ SQObjectPtr _name;\r
+ SQUnsignedInteger _start_op;\r
+ SQUnsignedInteger _end_op;\r
+ SQUnsignedInteger _pos;\r
+};\r
+\r
+struct SQLineInfo { SQInteger _line;SQInteger _op; };\r
+\r
+typedef sqvector<SQOuterVar> SQOuterVarVec;\r
+typedef sqvector<SQLocalVarInfo> SQLocalVarInfoVec;\r
+typedef sqvector<SQLineInfo> SQLineInfoVec;\r
+\r
+struct SQFunctionProto : public SQRefCounted\r
+{\r
+private:\r
+ SQFunctionProto(){\r
+ _stacksize=0;\r
+ _bgenerator=false;}\r
+public:\r
+ static SQFunctionProto *Create()\r
+ {\r
+ SQFunctionProto *f;\r
+ sq_new(f,SQFunctionProto);\r
+ return f;\r
+ }\r
+ void Release(){ sq_delete(this,SQFunctionProto);}\r
+ const SQChar* GetLocal(SQVM *v,SQUnsignedInteger stackbase,SQUnsignedInteger nseq,SQUnsignedInteger nop);\r
+ SQInteger GetLine(SQInstruction *curr);\r
+ bool Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write);\r
+ bool Load(SQVM *v,SQUserPointer up,SQREADFUNC read);\r
+ SQObjectPtrVec _literals;\r
+ SQObjectPtrVec _functions;\r
+ SQObjectPtrVec _parameters;\r
+ SQOuterVarVec _outervalues;\r
+ SQInstructionVec _instructions;\r
+ SQObjectPtr _sourcename;\r
+ SQObjectPtr _name;\r
+ SQLocalVarInfoVec _localvarinfos;\r
+ SQLineInfoVec _lineinfos;\r
+ SQInteger _stacksize;\r
+ bool _bgenerator;\r
+ bool _varparams;\r
+};\r
+\r
+#endif //_SQFUNCTION_H_\r