1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2026-05-31 06:57:09 +02:00

Updated the Squirrel library to include the latest changes straight from the repository.

This commit is contained in:
Sandu Liviu Catalin
2016-08-03 16:39:37 +03:00
parent c5192399e2
commit e0cd48e639
7 changed files with 26 additions and 10 deletions
+8 -3
View File
@@ -859,6 +859,7 @@ public:
case TK_TYPEOF : Lex() ;UnaryOP(_OP_TYPEOF); break;
case TK_RESUME : Lex(); UnaryOP(_OP_RESUME); break;
case TK_CLONE : Lex(); UnaryOP(_OP_CLONE); break;
case TK_RAWCALL: Lex(); Expect('('); FunctionCallArgs(true); break;
case TK_MINUSMINUS :
case TK_PLUSPLUS :PrefixIncDec(_token); break;
case TK_DELETE : DeleteExpr(); break;
@@ -915,7 +916,7 @@ public:
}
return (!_es.donot_get || ( _es.donot_get && (_token == _SC('.') || _token == _SC('['))));
}
void FunctionCallArgs()
void FunctionCallArgs(bool rawcall = false)
{
SQInteger nargs = 1;//this
while(_token != _SC(')')) {
@@ -928,6 +929,10 @@ public:
}
}
Lex();
if (rawcall) {
if (nargs < 3) Error(_SC("rawcall requires at least 2 parameters (callee and this)"));
nargs -= 2; //removes callee and this from count
}
for(SQInteger i = 0; i < (nargs - 1); i++) _fs->PopTarget();
SQInteger stackbase = _fs->PopTarget();
SQInteger closure = _fs->PopTarget();
@@ -1337,11 +1342,11 @@ public:
val._unVal.fFloat = -_lex._fvalue;
break;
default:
Error(_SC("scalar expected : integer,float"));
Error(_SC("scalar expected : integer, float"));
}
break;
default:
Error(_SC("scalar expected : integer,float or string"));
Error(_SC("scalar expected : integer, float, or string"));
}
Lex();
return val;