29 #if !defined(_SCRAT_SQFUNC_H_)
30 #define _SCRAT_SQFUNC_H_
33 #include "sqratObject.h"
44 friend struct Var<Function>;
65 Function(
const Function& sf) : vm(sf.vm), env(sf.env), obj(sf.obj) {
85 #if !defined (SCRAT_NO_ERROR_CHECKING)
86 SQObjectType value_type = so.
GetType();
87 if (value_type != OT_CLOSURE && value_type != OT_NATIVECLOSURE) {
101 Function(HSQUIRRELVM v, HSQOBJECT e, HSQOBJECT o) : vm(v), env(e), obj(o) {
139 return sq_isnull(obj);
178 sq_release(vm, &env);
179 sq_release(vm, &obj);
180 sq_resetobject(&env);
181 sq_resetobject(&obj);
198 sq_pushobject(vm, obj);
199 sq_pushobject(vm, env);
201 #if !defined (SCRAT_NO_ERROR_CHECKING)
202 SQUnsignedInteger nparams;
203 SQUnsignedInteger nfreevars;
205 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 1)) {
214 if(SQ_FAILED(result)) {
242 template <
class R,
class A1>
244 sq_pushobject(vm, obj);
245 sq_pushobject(vm, env);
247 #if !defined (SCRAT_NO_ERROR_CHECKING)
248 SQUnsignedInteger nparams;
249 SQUnsignedInteger nfreevars;
251 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 2)) {
260 #if !defined (SCRAT_NO_ERROR_CHECKING)
264 if(SQ_FAILED(result)) {
294 template <
class R,
class A1,
class A2>
296 sq_pushobject(vm, obj);
297 sq_pushobject(vm, env);
299 #if !defined (SCRAT_NO_ERROR_CHECKING)
300 SQUnsignedInteger nparams;
301 SQUnsignedInteger nfreevars;
303 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 3)) {
313 #if !defined (SCRAT_NO_ERROR_CHECKING)
317 if(SQ_FAILED(result)) {
349 template <
class R,
class A1,
class A2,
class A3>
351 sq_pushobject(vm, obj);
352 sq_pushobject(vm, env);
354 #if !defined (SCRAT_NO_ERROR_CHECKING)
355 SQUnsignedInteger nparams;
356 SQUnsignedInteger nfreevars;
357 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 4)) {
368 #if !defined (SCRAT_NO_ERROR_CHECKING)
372 if(SQ_FAILED(result)) {
406 template <
class R,
class A1,
class A2,
class A3,
class A4>
408 sq_pushobject(vm, obj);
409 sq_pushobject(vm, env);
411 #if !defined (SCRAT_NO_ERROR_CHECKING)
412 SQUnsignedInteger nparams;
413 SQUnsignedInteger nfreevars;
414 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 5)) {
426 #if !defined (SCRAT_NO_ERROR_CHECKING)
430 if(SQ_FAILED(result)) {
466 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
468 sq_pushobject(vm, obj);
469 sq_pushobject(vm, env);
471 #if !defined (SCRAT_NO_ERROR_CHECKING)
472 SQUnsignedInteger nparams;
473 SQUnsignedInteger nfreevars;
474 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 6)) {
487 #if !defined (SCRAT_NO_ERROR_CHECKING)
491 if(SQ_FAILED(result)) {
529 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
531 sq_pushobject(vm, obj);
532 sq_pushobject(vm, env);
534 #if !defined (SCRAT_NO_ERROR_CHECKING)
536 SQUnsignedInteger nparams;
537 SQUnsignedInteger nfreevars;
538 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 7)) {
552 #if !defined (SCRAT_NO_ERROR_CHECKING)
556 if(SQ_FAILED(result)) {
596 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
598 sq_pushobject(vm, obj);
599 sq_pushobject(vm, env);
601 #if !defined (SCRAT_NO_ERROR_CHECKING)
602 SQUnsignedInteger nparams;
603 SQUnsignedInteger nfreevars;
604 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 8)) {
619 #if !defined (SCRAT_NO_ERROR_CHECKING)
623 if(SQ_FAILED(result)) {
665 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
667 sq_pushobject(vm, obj);
668 sq_pushobject(vm, env);
670 #if !defined (SCRAT_NO_ERROR_CHECKING)
671 SQUnsignedInteger nparams;
672 SQUnsignedInteger nfreevars;
673 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 9)) {
689 #if !defined (SCRAT_NO_ERROR_CHECKING)
693 if(SQ_FAILED(result)) {
737 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
739 sq_pushobject(vm, obj);
740 sq_pushobject(vm, env);
742 #if !defined (SCRAT_NO_ERROR_CHECKING)
743 SQUnsignedInteger nparams;
744 SQUnsignedInteger nfreevars;
745 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 10)) {
762 #if !defined (SCRAT_NO_ERROR_CHECKING)
766 if(SQ_FAILED(result)) {
812 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
814 sq_pushobject(vm, obj);
815 sq_pushobject(vm, env);
817 #if !defined (SCRAT_NO_ERROR_CHECKING)
818 SQUnsignedInteger nparams;
819 SQUnsignedInteger nfreevars;
820 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 11)) {
838 #if !defined (SCRAT_NO_ERROR_CHECKING)
842 if(SQ_FAILED(result)) {
890 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
891 SharedPtr<R> Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
892 sq_pushobject(vm, obj);
893 sq_pushobject(vm, env);
895 #if !defined (SCRAT_NO_ERROR_CHECKING)
896 SQUnsignedInteger nparams;
897 SQUnsignedInteger nfreevars;
898 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 12)) {
917 #if !defined (SCRAT_NO_ERROR_CHECKING)
921 if(SQ_FAILED(result)) {
971 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
972 SharedPtr<R> Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
973 sq_pushobject(vm, obj);
974 sq_pushobject(vm, env);
976 #if !defined (SCRAT_NO_ERROR_CHECKING)
977 SQUnsignedInteger nparams;
978 SQUnsignedInteger nfreevars;
979 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 13)) {
999 #if !defined (SCRAT_NO_ERROR_CHECKING)
1003 if(SQ_FAILED(result)) {
1055 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
1056 SharedPtr<R> Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
1057 sq_pushobject(vm, obj);
1058 sq_pushobject(vm, env);
1060 #if !defined (SCRAT_NO_ERROR_CHECKING)
1061 SQUnsignedInteger nparams;
1062 SQUnsignedInteger nfreevars;
1063 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 14)) {
1084 #if !defined (SCRAT_NO_ERROR_CHECKING)
1088 if(SQ_FAILED(result)) {
1142 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
1143 SharedPtr<R> Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) {
1144 sq_pushobject(vm, obj);
1145 sq_pushobject(vm, env);
1147 #if !defined (SCRAT_NO_ERROR_CHECKING)
1148 SQUnsignedInteger nparams;
1149 SQUnsignedInteger nfreevars;
1150 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 15)) {
1172 #if !defined (SCRAT_NO_ERROR_CHECKING)
1176 if(SQ_FAILED(result)) {
1198 sq_pushobject(vm, obj);
1199 sq_pushobject(vm, env);
1201 #if !defined (SCRAT_NO_ERROR_CHECKING)
1202 SQUnsignedInteger nparams;
1203 SQUnsignedInteger nfreevars;
1204 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 1)) {
1214 if(SQ_FAILED(result)) {
1237 sq_pushobject(vm, obj);
1238 sq_pushobject(vm, env);
1240 #if !defined (SCRAT_NO_ERROR_CHECKING)
1241 SQUnsignedInteger nparams;
1242 SQUnsignedInteger nfreevars;
1243 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 2)) {
1252 #if !defined (SCRAT_NO_ERROR_CHECKING)
1257 if(SQ_FAILED(result)) {
1280 template <
class A1,
class A2>
1282 sq_pushobject(vm, obj);
1283 sq_pushobject(vm, env);
1285 #if !defined (SCRAT_NO_ERROR_CHECKING)
1286 SQUnsignedInteger nparams;
1287 SQUnsignedInteger nfreevars;
1288 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 3)) {
1298 #if !defined (SCRAT_NO_ERROR_CHECKING)
1303 if(SQ_FAILED(result)) {
1328 template <
class A1,
class A2,
class A3>
1330 sq_pushobject(vm, obj);
1331 sq_pushobject(vm, env);
1333 #if !defined (SCRAT_NO_ERROR_CHECKING)
1334 SQUnsignedInteger nparams;
1335 SQUnsignedInteger nfreevars;
1336 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 4)) {
1347 #if !defined (SCRAT_NO_ERROR_CHECKING)
1352 if(SQ_FAILED(result)) {
1379 template <
class A1,
class A2,
class A3,
class A4>
1381 sq_pushobject(vm, obj);
1382 sq_pushobject(vm, env);
1384 #if !defined (SCRAT_NO_ERROR_CHECKING)
1385 SQUnsignedInteger nparams;
1386 SQUnsignedInteger nfreevars;
1387 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 5)) {
1399 #if !defined (SCRAT_NO_ERROR_CHECKING)
1404 if(SQ_FAILED(result)) {
1433 template <
class A1,
class A2,
class A3,
class A4,
class A5>
1435 sq_pushobject(vm, obj);
1436 sq_pushobject(vm, env);
1438 #if !defined (SCRAT_NO_ERROR_CHECKING)
1439 SQUnsignedInteger nparams;
1440 SQUnsignedInteger nfreevars;
1441 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 6)) {
1454 #if !defined (SCRAT_NO_ERROR_CHECKING)
1459 if(SQ_FAILED(result)) {
1490 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
1491 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
1492 sq_pushobject(vm, obj);
1493 sq_pushobject(vm, env);
1495 #if !defined (SCRAT_NO_ERROR_CHECKING)
1496 SQUnsignedInteger nparams;
1497 SQUnsignedInteger nfreevars;
1498 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 7)) {
1512 #if !defined (SCRAT_NO_ERROR_CHECKING)
1517 if(SQ_FAILED(result)) {
1550 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
1551 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
1552 sq_pushobject(vm, obj);
1553 sq_pushobject(vm, env);
1555 #if !defined (SCRAT_NO_ERROR_CHECKING)
1556 SQUnsignedInteger nparams;
1557 SQUnsignedInteger nfreevars;
1558 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 8)) {
1573 #if !defined (SCRAT_NO_ERROR_CHECKING)
1578 if(SQ_FAILED(result)) {
1613 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
1614 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
1615 sq_pushobject(vm, obj);
1616 sq_pushobject(vm, env);
1618 #if !defined (SCRAT_NO_ERROR_CHECKING)
1619 SQUnsignedInteger nparams;
1620 SQUnsignedInteger nfreevars;
1621 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 9)) {
1637 #if !defined (SCRAT_NO_ERROR_CHECKING)
1642 if(SQ_FAILED(result)) {
1679 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
1680 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
1681 sq_pushobject(vm, obj);
1682 sq_pushobject(vm, env);
1684 #if !defined (SCRAT_NO_ERROR_CHECKING)
1685 SQUnsignedInteger nparams;
1686 SQUnsignedInteger nfreevars;
1687 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 10)) {
1704 #if !defined (SCRAT_NO_ERROR_CHECKING)
1709 if(SQ_FAILED(result)) {
1748 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
1749 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
1750 sq_pushobject(vm, obj);
1751 sq_pushobject(vm, env);
1753 #if !defined (SCRAT_NO_ERROR_CHECKING)
1754 SQUnsignedInteger nparams;
1755 SQUnsignedInteger nfreevars;
1756 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 11)) {
1774 #if !defined (SCRAT_NO_ERROR_CHECKING)
1779 if(SQ_FAILED(result)) {
1820 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
1821 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
1822 sq_pushobject(vm, obj);
1823 sq_pushobject(vm, env);
1825 #if !defined (SCRAT_NO_ERROR_CHECKING)
1826 SQUnsignedInteger nparams;
1827 SQUnsignedInteger nfreevars;
1828 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 12)) {
1847 #if !defined (SCRAT_NO_ERROR_CHECKING)
1852 if(SQ_FAILED(result)) {
1895 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
1896 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
1897 sq_pushobject(vm, obj);
1898 sq_pushobject(vm, env);
1901 #if !defined (SCRAT_NO_ERROR_CHECKING)
1902 SQUnsignedInteger nparams;
1903 SQUnsignedInteger nfreevars;
1904 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 13)) {
1924 #if !defined (SCRAT_NO_ERROR_CHECKING)
1929 if(SQ_FAILED(result)) {
1974 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
1975 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
1976 sq_pushobject(vm, obj);
1977 sq_pushobject(vm, env);
1979 #if !defined (SCRAT_NO_ERROR_CHECKING)
1980 SQUnsignedInteger nparams;
1981 SQUnsignedInteger nfreevars;
1982 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 14)) {
2003 #if !defined (SCRAT_NO_ERROR_CHECKING)
2008 if(SQ_FAILED(result)) {
2055 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
2056 void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) {
2057 sq_pushobject(vm, obj);
2058 sq_pushobject(vm, env);
2060 #if !defined (SCRAT_NO_ERROR_CHECKING)
2061 SQUnsignedInteger nparams;
2062 SQUnsignedInteger nfreevars;
2063 if (SQ_SUCCEEDED(sq_getclosureinfo(vm, -2, &nparams, &nfreevars)) && (nparams != 15)) {
2085 #if !defined (SCRAT_NO_ERROR_CHECKING)
2090 if(SQ_FAILED(result)) {
2140 template <
class A1,
class A2>
2160 template <
class A1,
class A2,
class A3>
2182 template <
class A1,
class A2,
class A3,
class A4>
2206 template <
class A1,
class A2,
class A3,
class A4,
class A5>
2232 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
2234 Execute(a1, a2, a3, a4, a5, a6);
2260 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
2261 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
2262 Execute(a1, a2, a3, a4, a5, a6, a7);
2290 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
2291 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
2292 Execute(a1, a2, a3, a4, a5, a6, a7, a8);
2322 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
2323 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
2324 Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9);
2356 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
2357 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
2358 Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
2392 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
2393 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
2394 Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
2430 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
2431 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
2432 Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
2470 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
2471 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
2472 Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
2512 template <
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
2513 void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) {
2514 Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
2539 Var(HSQUIRRELVM vm, SQInteger idx) {
2542 sq_getstackobj(vm, 1, &sqEnv);
2543 sq_getstackobj(vm, idx, &sqValue);
2545 #if !defined (SCRAT_NO_ERROR_CHECKING)
2546 SQObjectType value_type = sq_gettype(vm, idx);
2547 if (value_type != OT_CLOSURE && value_type != OT_NATIVECLOSURE) {
2561 sq_pushobject(vm, value.
GetFunc());
2586 Var(HSQUIRRELVM vm, SQInteger idx) {
2589 sq_getstackobj(vm, 1, &sqEnv);
2590 sq_getstackobj(vm, idx, &sqValue);
2591 value =
Function(vm, sqEnv, sqValue);
2592 #if !defined (SCRAT_NO_ERROR_CHECKING)
2593 SQObjectType value_type = sq_gettype(vm, idx);
2594 if (value_type != OT_CLOSURE && value_type != OT_NATIVECLOSURE) {
2608 sq_pushobject(vm, value.
GetFunc());
Function(HSQUIRRELVM v, HSQOBJECT e, HSQOBJECT o)
Definition: sqratFunction.h:101
static void push(HSQUIRRELVM vm, Function &value)
Definition: sqratFunction.h:2607
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
Definition: sqratFunction.h:1434
SharedPtr< R > Evaluate(A1 a1, A2 a2)
Definition: sqratFunction.h:295
SQObjectType GetType() const
Definition: sqratObject.h:162
T value
The actual value of get operations.
Definition: sqratTypes.h:152
~Function()
Definition: sqratFunction.h:110
Function value
The actual value of get operations.
Definition: sqratFunction.h:2524
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4)
Definition: sqratFunction.h:407
Definition: sqratTypes.h:150
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14)
Definition: sqratFunction.h:1143
void Execute(A1 a1, A2 a2, A3 a3)
Definition: sqratFunction.h:1329
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14)
Definition: sqratFunction.h:2056
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
Definition: sqratFunction.h:597
void Execute(A1 a1, A2 a2)
Definition: sqratFunction.h:1281
static bool IsEnabled()
Definition: sqratUtil.h:244
void operator()(A1 a1, A2 a2, A3 a3, A4 a4)
Definition: sqratFunction.h:2183
void operator()(A1 a1, A2 a2, A3 a3)
Definition: sqratFunction.h:2161
Var(HSQUIRRELVM vm, SQInteger idx)
Definition: sqratFunction.h:2539
void operator()(A1 a1)
Definition: sqratFunction.h:2123
void Release()
Definition: sqratFunction.h:176
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
Definition: sqratFunction.h:1614
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
Definition: sqratFunction.h:1551
static string FormatTypeError(HSQUIRRELVM vm, SQInteger idx, const string &expectedType)
Definition: sqratUtil.h:149
bool IsNull()
Definition: sqratFunction.h:138
void operator()(A1 a1, A2 a2)
Definition: sqratFunction.h:2141
void operator()()
Definition: sqratFunction.h:2107
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3)
Definition: sqratFunction.h:350
HSQOBJECT & GetEnv()
Definition: sqratFunction.h:148
Function value
The actual value of get operations.
Definition: sqratFunction.h:2571
Object GetSlot(const SQChar *slot) const
Definition: sqratObject.h:221
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
Definition: sqratFunction.h:2323
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
Definition: sqratFunction.h:1680
Represents a function in Squirrel.
Definition: sqratFunction.h:40
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
Definition: sqratFunction.h:2207
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12)
Definition: sqratFunction.h:972
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
Definition: sqratFunction.h:2357
void Execute(A1 a1, A2 a2, A3 a3, A4 a4)
Definition: sqratFunction.h:1380
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12)
Definition: sqratFunction.h:1896
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
Definition: sqratFunction.h:2233
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12)
Definition: sqratFunction.h:2431
Definition: sqratUtil.h:291
virtual HSQOBJECT GetObject() const
Definition: sqratObject.h:182
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
Definition: sqratFunction.h:467
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
Definition: sqratFunction.h:738
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11)
Definition: sqratFunction.h:1821
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13)
Definition: sqratFunction.h:1056
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13)
Definition: sqratFunction.h:1975
SharedPtr< R > Evaluate()
Definition: sqratFunction.h:197
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
Definition: sqratFunction.h:666
Definition: sqratObject.h:48
static Error & Instance()
Definition: sqratUtil.h:134
The base class for Array that implements almost all of its functionality.
Definition: sqratArray.h:43
void Throw(HSQUIRRELVM vm, const string &err)
Definition: sqratUtil.h:210
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
Definition: sqratFunction.h:530
HSQOBJECT & GetFunc()
Definition: sqratFunction.h:158
The base class for Table that implements almost all of its functionality.
Definition: sqratTable.h:43
Var(HSQUIRRELVM vm, SQInteger idx)
Definition: sqratFunction.h:2586
Function(const Function &sf)
Definition: sqratFunction.h:65
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11)
Definition: sqratFunction.h:891
Represents a table in Squirrel.
Definition: sqratTable.h:357
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
Definition: sqratFunction.h:1749
static void push(HSQUIRRELVM vm, Function &value)
Definition: sqratFunction.h:2560
HSQUIRRELVM & GetVM()
Definition: sqratFunction.h:168
Function()
Definition: sqratFunction.h:54
void Execute()
Definition: sqratFunction.h:1197
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
Definition: sqratFunction.h:2261
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14)
Definition: sqratFunction.h:2513
void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
Definition: sqratFunction.h:1491
SharedPtr< R > Evaluate(A1 a1)
Definition: sqratFunction.h:243
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13)
Definition: sqratFunction.h:2471
Function & operator=(const Function &sf)
Definition: sqratFunction.h:122
void Execute(A1 a1)
Definition: sqratFunction.h:1236
SharedPtr< R > Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
Definition: sqratFunction.h:813
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
Definition: sqratFunction.h:2291
Function(const Object &e, const SQChar *slot)
Definition: sqratFunction.h:80
void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11)
Definition: sqratFunction.h:2393