62c315da9e
Call to undefined constant should lead to an error.
The build was successful.
2019-04-28 21:44:48 +02:00
f09d4def2d
It's AerScript.
The build was successful.
2019-04-28 19:47:09 +02:00
d6fca929ea
Callbacks can be just called.
The build was successful.
2019-04-28 19:36:27 +02:00
6593252bce
Remove get_defined_functions() built-in function.
...
The build was successful.
This function is useless in Aer, as it is fully OOP language and thus disallows functions declaration.
2019-04-28 19:31:58 +02:00
d26bc99b68
There is no reason to trigger a low-level error in AerScript.
...
The build was successful.
AerScript is fully OOP language and supports exceptions that can be thrown at any time.
2019-04-28 19:27:24 +02:00
00c502c11b
Get rid of import_request_variables() builtin function. Its pure evil.
The build was successful.
2019-04-28 19:23:42 +02:00
9f4f6298c2
Do not create variable in foreach() loop automatically.
The build was successful.
2019-04-28 19:14:56 +02:00
8ab3919688
Class names should be case sensitive.
The build was successful.
2019-04-28 18:24:22 +02:00
c443a38fec
Do not count compilation errors.
...
The build was successful.
Interpreter will abort script execution on first error found.
2019-04-24 23:22:06 +02:00
7c8259057b
PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR.
...
The build was successful.
Thus code placed below will never get executed and is completely useless.
2019-04-24 18:30:24 +02:00
5b0b965199
Fix segmentation fault when trying to clone non-instantiated object.
The build was successful.
2019-04-24 16:51:43 +02:00
8f18ebf884
Update legal info.
The build was successful.
2019-04-20 19:53:16 +02:00
c9203b6c91
New source code legal format.
The build was successful.
2019-04-20 19:29:15 +02:00
a0405f2267
Always perform type validation when inserting value to an array.
The build was successful.
2019-04-19 07:08:29 +02:00
407bcf5a29
Fix segmentation fault on Program::__construct() call.
The build was successful.
2019-04-17 17:29:05 +02:00
9a82298451
Do not check parameters passed to constructor.
...
The build was successful.
There is no need to check parameters passed to constructor and emit a notice, because PH7_VmCallClassMethod() does the job. It tries to find a matching method if overloaded and checks all arguments passed. In case of any
problems, it emits E_ERROR.
2019-04-17 12:18:55 +02:00
88d382b76b
Add missing VM OP descriptions.
The build was successful.
2019-04-16 19:12:39 +02:00
ba8e9080ef
Implement OP_JMPLFB & OP_JMPLFE VM instructions.
The build was successful.
2019-04-16 12:46:58 +02:00
89f19133d5
Rename VM's jump instructions for better readability.
The build was successful.
2019-04-16 08:14:16 +02:00
f9b518138e
Cleanup OP_LOAD instruction.
The build was successful.
2019-04-15 19:44:49 +02:00
517dffcbc1
Separate VM instruction for variable declaration (OP_DECLARE).
The build was successful.
2019-04-15 19:18:29 +02:00
1b248a17e7
Query the top active as well as all loop frames.
The build was successful.
2019-04-15 18:32:30 +02:00
661158d249
Simply throw memory error.
The build was successful.
2019-04-15 17:41:29 +02:00
94e06f3d3a
Do not duplicate the code; make a use of VmCreateMemObj().
The build was successful.
2019-04-15 17:14:14 +02:00
9e06322b57
Implement VmCreateMemObj().
The build was successful.
2019-04-15 17:04:44 +02:00
c51b3dfa8a
Revert 89d5158d7e
and a8a1a2cd51
. Fix should be based on VM frames.
The build was successful.
2019-04-13 14:39:57 +02:00
a8a1a2cd51
Fix variable declaration in loops.
2019-04-11 13:28:47 +02:00
4eaf6a7117
AerScript is strict type hinting language, thus OP_TEQ & OP_TNE are not needed here.
The build was successful.
2019-04-11 06:25:20 +02:00
2a4e47e782
I hope this finally fixes the default argument value.
The build was successful.
2019-04-10 18:32:53 +02:00
95c9fd0f1f
Corrections in builtin library.
The build was successful.
2019-04-10 12:44:44 +02:00
d8f9db8f9a
Proper implementation of is_callback() & is_callable(). First one only performs a check if variable type is callback, while the second checks if function exists and if can be called.
The build was successful.
2019-04-10 09:45:00 +02:00
65e38a364d
Do not try to call an array.
The build was successful.
2019-04-10 09:26:06 +02:00
d6434ba19e
Try to report some line.
The build was successful.
2019-04-10 09:18:26 +02:00
447910ce2e
Fix callbacks.
The build was successful.
2019-04-10 09:08:10 +02:00
77795bea4c
Do not check for return value on OP_DONE.
The build was successful.
2019-04-08 13:51:54 +02:00
598dc9ce51
At least try to call callback and do not check for return value on OP_DONE.
The build was successful.
2019-04-08 13:49:12 +02:00
7443663dd8
Fixes in PH7_OP_LOAD_IDX instruction.
The build was successful.
2019-04-06 09:36:08 +02:00
f6e2b549b6
Access to undefined array index should be reported as error.
The build was successful.
2019-04-06 09:21:09 +02:00
a501dea661
Fix a typo.
The build was successful.
2019-04-05 20:17:44 +02:00
25001ae746
This should be an error, really.
The build was successful.
2019-04-05 20:14:08 +02:00
2de455aa01
Fix formatting.
The build was successful.
2019-04-05 20:12:55 +02:00
95fba30f9b
Better way to check arguments compatibility.
The build was successful.
2019-04-05 20:07:56 +02:00
a06573408e
Better way to check arguments compatibility.
The build was successful.
2019-04-05 19:59:15 +02:00
5d369ba851
Fix static variables. Now access to non-initialized arrays member does not result in segmentation fault.
The build was successful.
2019-04-04 18:18:11 +02:00
9880f9963e
Fix static and non-static class attributes. Now access to non-initialized arrays member does not result in segmentation fault.
The build was successful.
2019-04-04 18:15:41 +02:00
7ec7ade171
Return a character from string if it is not ar array.
The build was successful.
2019-04-04 11:51:25 +02:00
01c210984e
Further optimisations.
The build was successful.
2019-04-03 13:57:29 +02:00
5eeceb6927
Try to optimize the code a bit.
The build was successful.
2019-04-03 13:43:31 +02:00
4467ca6dce
Attempt to fix static variables.
2019-04-03 09:02:49 +02:00
5463da88b0
Attempt to fix non-static class attributes.
The build was successful.
2019-04-03 08:32:59 +02:00
d4d00db458
Attempt to fix static class attributes.
The build was successful.
2019-04-03 07:00:17 +02:00
8133c3dd6f
Make a use of PH7_MemObjSafeStore().
The build was successful.
2019-04-03 06:37:35 +02:00
fb50d8de25
Correct the comment.
The build was successful.
2019-04-02 20:10:58 +02:00
803516cf84
This will never happen.
The build was successful.
2019-04-02 15:12:22 +02:00
c6397d2e15
Use P2 to avoid strict typehinting.
The build was successful.
2019-04-02 09:55:01 +02:00
253fe327ef
Automatically fallback mixed variable to void (NULL).
The build was successful.
2019-03-31 14:04:19 +02:00
3f205c19ce
Get rid of dirty references. Return a reference & pass-by reference are still working.
The build was successful.
2019-03-29 22:55:49 +01:00
f5960d57b1
Allow static class attributes to store compatible data types only.
The build was successful.
2019-03-29 19:56:10 +01:00
01f1932230
Respect the class attribute data type.
2019-03-29 09:21:58 +01:00
47cca096bc
Fix segmentation fault when trying to access array element.
The build was successful.
2019-03-29 09:09:51 +01:00
140bd35f93
Set proper type for all class attributes.
The build was successful.
2019-03-29 09:00:55 +01:00
a013cee2d1
Properly serve the arrays.
The build was successful.
2019-03-28 19:44:03 +01:00
e4dc9f641e
Invert the logic. Variable needs to be declared.
The build was successful.
2019-03-28 19:43:00 +01:00
9303517b9e
Fix return by reference.
The build was successful.
2019-03-26 17:40:28 +01:00
04c56c9041
Multidimensional array of the same type should not be marked as mixed.
The build was successful.
2019-03-25 09:37:40 +01:00
fa295b9437
It's callback, not callable.
The build was successful.
2019-03-24 09:31:19 +01:00
4f29507c0d
The isset() function always results in true, thus it is useless. If passed as argument variable is not set, the interpreter will throw an error.
2019-03-23 19:51:19 +01:00
9d7a542aea
The is_null() is useless now, as it always returns FALSE.
The build was successful.
2019-03-22 19:29:50 +01:00
154469f475
Variable cannot be typecasted to NULL.
The build was successful.
2019-03-22 18:33:39 +01:00
9a41f7195d
AerScript does not implement any error control operator.
The build was successful.
2019-03-22 17:32:40 +01:00
65b178932a
Get rid of array() & list() for the new syntax.
The build was successful.
2019-03-22 15:54:46 +01:00
90b5a8797a
Fix a bug allowing to pass an array as argument to the method/closure that takes a scalar.
2019-03-22 08:59:12 +01:00
7b1ed59f41
Basic check if all methods declared in interface are also defined in class.
The build was successful.
2019-03-20 09:24:30 +01:00
3d23d43040
Enable garbage collector for Program class. This also partially fixes #47 , as from now Program::__destruct() will be called automatically.
The build was successful.
2019-03-19 12:52:36 +01:00
6ca08c9c4a
Fix typo and builtin library.
The build was successful.
2019-03-17 19:57:31 +01:00
55b652c740
Verify that Program::main() returns a value of int or void.
2019-03-17 19:56:07 +01:00
fe898ec7e7
Update builtin library to follow new syntax.
2019-03-17 19:52:28 +01:00
9934489ed9
Fix build.
The build was successful.
2019-03-17 18:56:17 +01:00
f3d10dd4bc
Try to exit with code returned by Program::main() only when it is integer value.
2019-03-17 18:49:22 +01:00
de2b355862
Return 0, when display error message.
The build was successful.
2019-03-17 18:47:17 +01:00
c8985032ef
Verify that return value match the data type of declared method/closure.
2019-03-13 09:36:10 +01:00
a5ee2d75eb
PH7_VmMemoryError() always breaks script execution.
The build was successful.
2019-03-09 13:37:15 +01:00
b7e3ad9f46
PH7_VmMemoryError() always breaks script execution.
The build was successful.
2019-03-09 13:28:04 +01:00
7eba38a633
Fix segmentation fault when trying to store a value under next index into an array.
The build was successful.
2019-03-09 13:25:13 +01:00
fa0b487cc0
Implement typecasting to resource data type.
The build was successful.
2019-02-08 14:06:39 +01:00
bbdc740388
Finally, do not allow a string variables to act as callback.
The build was successful.
2018-12-20 19:37:03 +01:00
f97e2a8294
Implement typecasting to callback data type.
The build was successful.
2018-12-20 18:30:21 +01:00
d87ce3ad1d
1. Set a proper data type when compiling closure.
...
The build was successful.
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
3f9e3b0664
Check for compatible data types on OP_CALL & OP_STORE.
The build was successful.
2018-11-28 21:58:41 +01:00
d65a529d21
Initial support for char data type.
The build was successful.
2018-11-26 20:37:51 +01:00
174ecb2a38
Initial support for void type.
The build was successful.
2018-11-23 09:19:37 +01:00
87db6d6dfd
Allow a method/closure to take compatible mixed variable as argument.
The build was successful.
2018-11-18 22:06:40 +01:00
6f13c347d8
Set the proper type of array.
The build was successful.
2018-10-26 19:45:10 +02:00
c00080e190
Correct comment.
The build was successful.
2018-09-24 19:20:23 +02:00
b5eb268ce1
Do not allow to set a value of different type to the variable.
The build was successful.
2018-09-24 19:17:46 +02:00
5f2f9d9c08
Set proper data type for static variables;
The build was successful.
2018-09-24 19:16:44 +02:00
369cadfcda
Tryeing to call a non-instantiated object should result in an error.
The build was successful.
2018-09-24 12:10:19 +02:00
ae0fde152c
Create a variable only on OP_LOAD.
2018-09-23 17:40:26 +02:00
514e07c7f3
Fix static variables not containing any value.
The build was successful.
2018-09-21 22:18:11 +02:00
f927667d85
Strictly check for data type of static variable declaration.
2018-09-21 22:06:36 +02:00