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
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
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
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
private:\r
CompilerErrorFunc _errfunc;\r
void *_errtarget;\r
+ SQSharedState *_ss;\r
};\r
\r
\r