Update to SQUIRREL 3.0.4
[supertux.git] / external / squirrel / squirrel / sqfuncstate.h
old mode 100755 (executable)
new mode 100644 (file)
index 775a33e..1da1321
@@ -21,6 +21,7 @@ struct SQFuncState
        SQInstruction &GetInstruction(SQInteger pos){return _instructions[pos];}\r
        void PopInstructions(SQInteger size){for(SQInteger i=0;i<size;i++)_instructions.pop_back();}\r
        void SetStackSize(SQInteger n);\r
+       SQInteger CountOuters(SQInteger stacksize);\r
        void SnoozeOpt(){_optimization=false;}\r
        void AddDefaultParam(SQInteger trg) { _defaultparams.push_back(trg); }\r
        SQInteger GetDefaultParamCount() { return _defaultparams.size(); }\r
@@ -29,8 +30,9 @@ struct SQFuncState
        SQInteger GetNumericConstant(const SQFloat cons);\r
        SQInteger PushLocalVariable(const SQObject &name);\r
        void AddParameter(const SQObject &name);\r
-       void AddOuterValue(const SQObject &name);\r
+       //void AddOuterValue(const SQObject &name);\r
        SQInteger GetLocalVariable(const SQObject &name);\r
+       void MarkLocalAsOuter(SQInteger pos);\r
        SQInteger GetOuterVariable(const SQObject &name);\r
        SQInteger GenerateCode();\r
        SQInteger GetStackSize();\r
@@ -42,6 +44,7 @@ struct SQFuncState
        SQInteger PopTarget();\r
        SQInteger TopTarget();\r
        SQInteger GetUpTarget(SQInteger n);\r
+       void DiscardTarget();\r
        bool IsLocal(SQUnsignedInteger stkpos);\r
        SQObject CreateString(const SQChar *s,SQInteger len = -1);\r
        SQObject CreateTable();\r
@@ -66,11 +69,13 @@ struct SQFuncState
        SQInteger _nliterals;\r
        SQLineInfoVec _lineinfos;\r
        SQFuncState *_parent;\r
+       SQIntVec _scope_blocks;\r
        SQIntVec _breaktargets;\r
        SQIntVec _continuetargets;\r
        SQIntVec _defaultparams;\r
        SQInteger _lastline;\r
        SQInteger _traps; //contains number of nested exception traps\r
+       SQInteger _outers;\r
        bool _optimization;\r
        SQSharedState *_sharedstate;\r
        sqvector<SQFuncState*> _childstates;\r
@@ -78,6 +83,7 @@ struct SQFuncState
 private:\r
        CompilerErrorFunc _errfunc;\r
        void *_errtarget;\r
+       SQSharedState *_ss;\r
 };\r
 \r
 \r