Rafal Kupiec
3d23d43040
Enable garbage collector for Program class. This also partially fixes #47 , as from now Program::__destruct() will be called automatically.
2019-03-19 12:52:36 +01:00
Rafal Kupiec
b60c1de4cf
Abort on SXERR_ABORT, #47 .
2019-03-19 10:42:53 +01:00
Rafal Kupiec
23601fe9c5
Partially fix #47 , static variables are still affected.
2019-03-19 10:38:07 +01:00
Rafal Kupiec
6ca08c9c4a
Fix typo and builtin library.
2019-03-17 19:57:31 +01:00
Rafal Kupiec
55b652c740
Verify that Program::main() returns a value of int or void.
2019-03-17 19:56:07 +01:00
Rafal Kupiec
fe898ec7e7
Update builtin library to follow new syntax.
2019-03-17 19:52:28 +01:00
Rafal Kupiec
c26f8cd777
Strict data types for classes and interfaces:
...
1) New syntax for method declaration, now requiring a strict data type to be passed (i.e. void main()),
2) New syntax for attributes declaration, als orequiring a strict data type before variable name (i.e. string $str).
2019-03-17 19:43:03 +01:00
Rafal Kupiec
9934489ed9
Fix build.
2019-03-17 18:56:17 +01:00
Rafal Kupiec
f3d10dd4bc
Try to exit with code returned by Program::main() only when it is integer value.
2019-03-17 18:49:22 +01:00
Rafal Kupiec
de2b355862
Return 0, when display error message.
2019-03-17 18:47:17 +01:00
Rafal Kupiec
615e75fb8a
Store methods return type.
2019-03-16 14:57:04 +01:00
Rafal Kupiec
7897f28ebb
Fix parameters order.
2019-03-13 20:10:32 +01:00
Rafal Kupiec
c8985032ef
Verify that return value match the data type of declared method/closure.
2019-03-13 09:36:10 +01:00
Rafal Kupiec
df3d00d02c
Revert f1d4d80f65
.
2019-03-11 08:16:51 +01:00
Rafal Kupiec
051bca470e
Save the closure return data type for further use.
2019-03-10 21:02:06 +01:00
Rafal Kupiec
f1d4d80f65
Cleanup keywords.
2019-03-09 22:39:26 +01:00
Rafal Kupiec
8aacf7c70e
Do not use PH7_KEYWORD_FUNCTION for closure declaration.
2019-03-09 19:43:56 +01:00
Rafal Kupiec
0524092539
Add missing space in error message
2019-03-09 16:49:46 +01:00
Rafal Kupiec
d6c5f01905
PH7_VmMemoryError() always breaks script execution.
2019-03-09 14:00:11 +01:00
Rafal Kupiec
e86894f724
PH7_VmMemoryError() always breaks script execution.
2019-03-09 13:59:04 +01:00
Rafal Kupiec
a5ee2d75eb
PH7_VmMemoryError() always breaks script execution.
2019-03-09 13:37:15 +01:00
Rafal Kupiec
b7e3ad9f46
PH7_VmMemoryError() always breaks script execution.
2019-03-09 13:28:04 +01:00
Rafal Kupiec
7eba38a633
Fix segmentation fault when trying to store a value under next index into an array.
2019-03-09 13:25:13 +01:00
Rafal Kupiec
4af3220018
Throw a warning when trying to typecast to resource.
2019-02-13 13:22:30 +01:00
Rafal Kupiec
a7b4c6e880
Do not typecast to resource type at all. This might lead to attempt of access to the invalid memory area and segmentation fault.
2019-02-08 14:28:04 +01:00
Rafal Kupiec
fa0b487cc0
Implement typecasting to resource data type.
2019-02-08 14:06:39 +01:00
Rafal Kupiec
bbdc740388
Finally, do not allow a string variables to act as callback.
2018-12-20 19:37:03 +01:00
Rafal Kupiec
f97e2a8294
Implement typecasting to callback data type.
2018-12-20 18:30:21 +01:00
Rafal Kupiec
2949c8dcfb
Fix typo.
2018-12-20 18:20:18 +01:00
Rafal Kupiec
784c705af6
Add callback cast operator.
2018-12-13 10:07:44 +01:00
Rafal Kupiec
0278f0a630
Add callback cast operator.
2018-12-13 09:31:32 +01:00
Rafal Kupiec
d87ce3ad1d
1. Set a proper data type when compiling closure.
...
2. Temporarily allow to call a closure/function if its name is stored in a variable of callback or string type. Ultimately, only callback will be allowed.
2018-12-01 12:53:58 +01:00
Rafal Kupiec
3f9e3b0664
Check for compatible data types on OP_CALL & OP_STORE.
2018-11-28 21:58:41 +01:00
Rafal Kupiec
9ab896c2e2
Implement PH7_CheckVarCompat().
2018-11-28 20:37:07 +01:00
Rafal Kupiec
f3f1723104
Return valid function for conversion to char.
2018-11-28 20:11:47 +01:00
Rafal Kupiec
0d3cb90d5f
Always convert integer value to char as it is done in C/C++.
2018-11-28 20:10:14 +01:00
Rafal Kupiec
3cc8cfe6a2
Remove duplicated code.
2018-11-28 13:58:33 +01:00
Rafal Kupiec
1cebd3af37
Allow char to be typecasted to value of any other type.
2018-11-26 20:41:15 +01:00
Rafal Kupiec
5dde778382
Release object to free some memory.
2018-11-26 20:39:08 +01:00
Rafal Kupiec
d65a529d21
Initial support for char data type.
2018-11-26 20:37:51 +01:00
Rafal Kupiec
174ecb2a38
Initial support for void type.
2018-11-23 09:19:37 +01:00
Rafal Kupiec
87db6d6dfd
Allow a method/closure to take compatible mixed variable as argument.
2018-11-18 22:06:40 +01:00
Rafal Kupiec
e727453ccf
Fix var_dump() for mixed arrays.
2018-11-13 20:24:55 +01:00
Rafal Kupiec
8724cebf71
Do not actually support references in the same scope.
2018-10-28 19:45:31 +01:00
Rafal Kupiec
ec47190874
Array dump format.
2018-10-27 19:56:13 +02:00
Rafal Kupiec
e5fb7d625e
Allow only a colon as variable separator.
2018-10-27 19:49:24 +02:00
Rafal Kupiec
6f13c347d8
Set the proper type of array.
2018-10-26 19:45:10 +02:00
Rafal Kupiec
03cf969c31
Check for a type of array.
2018-10-11 15:15:48 +02:00
Rafal Kupiec
b66515516e
First check if array or object.
2018-10-01 22:46:35 +02:00
Rafal Kupiec
6293b8f5bf
Do not try to dump empty array.
2018-10-01 22:43:23 +02:00