Rafal Kupiec
|
89f19133d5
|
Rename VM's jump instructions for better readability.
|
2019-04-16 08:14:16 +02:00 |
Rafal Kupiec
|
eb80dced3e
|
Correct comment.
|
2019-04-15 20:00:54 +02:00 |
Rafal Kupiec
|
f9b518138e
|
Cleanup OP_LOAD instruction.
|
2019-04-15 19:44:49 +02:00 |
Rafal Kupiec
|
517dffcbc1
|
Separate VM instruction for variable declaration (OP_DECLARE).
|
2019-04-15 19:18:29 +02:00 |
Rafal Kupiec
|
1b248a17e7
|
Query the top active as well as all loop frames.
|
2019-04-15 18:32:30 +02:00 |
Rafal Kupiec
|
661158d249
|
Simply throw memory error.
|
2019-04-15 17:41:29 +02:00 |
Rafal Kupiec
|
94e06f3d3a
|
Do not duplicate the code; make a use of VmCreateMemObj().
|
2019-04-15 17:14:14 +02:00 |
Rafal Kupiec
|
9e06322b57
|
Implement VmCreateMemObj().
|
2019-04-15 17:04:44 +02:00 |
Rafal Kupiec
|
c51b3dfa8a
|
Revert 89d5158d7e and a8a1a2cd51 . Fix should be based on VM frames.
|
2019-04-13 14:39:57 +02:00 |
Rafal Kupiec
|
89d5158d7e
|
Fix build.
|
2019-04-11 13:31:17 +02:00 |
Rafal Kupiec
|
a8a1a2cd51
|
Fix variable declaration in loops.
|
2019-04-11 13:28:47 +02:00 |
Rafal Kupiec
|
ee0d189f0a
|
Add comments.
|
2019-04-11 11:37:07 +02:00 |
Rafal Kupiec
|
cdc0dade2a
|
Allow to store a character in string variable.
|
2019-04-11 11:33:00 +02:00 |
Rafal Kupiec
|
4eaf6a7117
|
AerScript is strict type hinting language, thus OP_TEQ & OP_TNE are not needed here.
|
2019-04-11 06:25:20 +02:00 |
Rafal Kupiec
|
2a4e47e782
|
I hope this finally fixes the default argument value.
|
2019-04-10 18:32:53 +02:00 |
Rafal Kupiec
|
527a6ad689
|
Mark argument as well as object, when class name is supplied.
|
2019-04-10 13:58:24 +02:00 |
Rafal Kupiec
|
95c9fd0f1f
|
Corrections in builtin library.
|
2019-04-10 12:44:44 +02:00 |
Rafal Kupiec
|
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.
|
2019-04-10 09:45:00 +02:00 |
Rafal Kupiec
|
65e38a364d
|
Do not try to call an array.
|
2019-04-10 09:26:06 +02:00 |
Rafal Kupiec
|
d6434ba19e
|
Try to report some line.
|
2019-04-10 09:18:26 +02:00 |
Rafal Kupiec
|
447910ce2e
|
Fix callbacks.
|
2019-04-10 09:08:10 +02:00 |
Rafal Kupiec
|
f0e50678e3
|
Optimize the code a bit.
|
2019-04-10 08:52:06 +02:00 |
Rafal Kupiec
|
8810a86a2c
|
Fix for typoecasting callback to string.
|
2019-04-10 08:50:04 +02:00 |
Rafal Kupiec
|
b0165e5702
|
Do not reset blob when typecasting from string to callback.
|
2019-04-10 06:57:14 +02:00 |
Rafal Kupiec
|
77ebce7acf
|
Parser takes care about nested arrays.
|
2019-04-10 06:18:49 +02:00 |
Rafal Kupiec
|
77795bea4c
|
Do not check for return value on OP_DONE.
|
2019-04-08 13:51:54 +02:00 |
Rafal Kupiec
|
598dc9ce51
|
At least try to call callback and do not check for return value on OP_DONE.
|
2019-04-08 13:49:12 +02:00 |
Rafal Kupiec
|
d74b182235
|
Properly typecast callback to boolean.
|
2019-04-08 13:32:50 +02:00 |
Rafal Kupiec
|
1679420f4c
|
Get rid of some invisible escape characters.
|
2019-04-06 17:00:15 +02:00 |
Rafal Kupiec
|
d34c8ceafb
|
Fix void dump.
|
2019-04-06 16:51:32 +02:00 |
Rafal Kupiec
|
7443663dd8
|
Fixes in PH7_OP_LOAD_IDX instruction.
|
2019-04-06 09:36:08 +02:00 |
Rafal Kupiec
|
f6e2b549b6
|
Access to undefined array index should be reported as error.
|
2019-04-06 09:21:09 +02:00 |
Rafal Kupiec
|
72c420cc85
|
Correct another typo.
|
2019-04-05 20:21:26 +02:00 |
Rafal Kupiec
|
a501dea661
|
Fix a typo.
|
2019-04-05 20:17:44 +02:00 |
Rafal Kupiec
|
25001ae746
|
This should be an error, really.
|
2019-04-05 20:14:08 +02:00 |
Rafal Kupiec
|
2de455aa01
|
Fix formatting.
|
2019-04-05 20:12:55 +02:00 |
Rafal Kupiec
|
95fba30f9b
|
Better way to check arguments compatibility.
|
2019-04-05 20:07:56 +02:00 |
Rafal Kupiec
|
a06573408e
|
Better way to check arguments compatibility.
|
2019-04-05 19:59:15 +02:00 |
Rafal Kupiec
|
39f698476f
|
This is not the right way to go - revert 465336b23b .
|
2019-04-05 12:30:38 +02:00 |
Rafal Kupiec
|
465336b23b
|
Mark void variable as well as NULL, and dump NULL as void.
|
2019-04-05 11:52:15 +02:00 |
Rafal Kupiec
|
a1151d598b
|
Do not emit warning when assigning NULL to resource.
|
2019-04-05 11:42:40 +02:00 |
Rafal Kupiec
|
fcd4e8d6a6
|
The readdir() function should return empty string instead of false.
|
2019-04-05 07:54:47 +02:00 |
Rafal Kupiec
|
72dc44c152
|
Another fix for OP_DONE instruction.
|
2019-04-05 07:45:53 +02:00 |
Rafal Kupiec
|
74f954b852
|
Fix OP_DONE instruction.
|
2019-04-05 07:01:07 +02:00 |
Rafal Kupiec
|
5d369ba851
|
Fix static variables. Now access to non-initialized arrays member does not result in segmentation fault.
|
2019-04-04 18:18:11 +02:00 |
Rafal Kupiec
|
9880f9963e
|
Fix static and non-static class attributes. Now access to non-initialized arrays member does not result in segmentation fault.
|
2019-04-04 18:15:41 +02:00 |
Rafal Kupiec
|
7ec7ade171
|
Return a character from string if it is not ar array.
|
2019-04-04 11:51:25 +02:00 |
Rafal Kupiec
|
01c210984e
|
Further optimisations.
|
2019-04-03 13:57:29 +02:00 |
Rafal Kupiec
|
5eeceb6927
|
Try to optimize the code a bit.
|
2019-04-03 13:43:31 +02:00 |
Rafal Kupiec
|
9acd6fbcb2
|
Do not typecast NULL to StdClass.
|
2019-04-03 09:34:32 +02:00 |
Rafal Kupiec
|
4467ca6dce
|
Attempt to fix static variables.
|
2019-04-03 09:02:49 +02:00 |
Rafal Kupiec
|
5463da88b0
|
Attempt to fix non-static class attributes.
|
2019-04-03 08:32:59 +02:00 |
Rafal Kupiec
|
8d3b7f303f
|
Allow to assign any value if data type is not specified.
|
2019-04-03 08:11:55 +02:00 |
Rafal Kupiec
|
d4d00db458
|
Attempt to fix static class attributes.
|
2019-04-03 07:00:17 +02:00 |
Rafal Kupiec
|
8133c3dd6f
|
Make a use of PH7_MemObjSafeStore().
|
2019-04-03 06:37:35 +02:00 |
Rafal Kupiec
|
fb50d8de25
|
Correct the comment.
|
2019-04-02 20:10:58 +02:00 |
Rafal Kupiec
|
66a7e957c9
|
Allow to assign NULL to array.
|
2019-04-02 19:58:12 +02:00 |
Rafal Kupiec
|
aaef03396c
|
Implement PH7_MemObjSafeStore().
|
2019-04-02 19:44:09 +02:00 |
Rafal Kupiec
|
45b1d4ed73
|
Compare only non-array to non-array values.
|
2019-04-02 15:19:48 +02:00 |
Rafal Kupiec
|
803516cf84
|
This will never happen.
|
2019-04-02 15:12:22 +02:00 |
Rafal Kupiec
|
c6397d2e15
|
Use P2 to avoid strict typehinting.
|
2019-04-02 09:55:01 +02:00 |
Rafal Kupiec
|
2fb123872f
|
Typecas array only if it is of different type.
|
2019-04-02 09:05:27 +02:00 |
Rafal Kupiec
|
253fe327ef
|
Automatically fallback mixed variable to void (NULL).
|
2019-03-31 14:04:19 +02:00 |
Rafal Kupiec
|
4f6be2234e
|
Allow NULL to be assigned to any type of variable. NULL will be automatically typecasted to any data type, thus setting ti the default value.
|
2019-03-29 23:51:20 +01:00 |
Rafal Kupiec
|
9b741175f2
|
Uppercase.
|
2019-03-29 23:17:50 +01:00 |
Rafal Kupiec
|
3f205c19ce
|
Get rid of dirty references. Return a reference & pass-by reference are still working.
|
2019-03-29 22:55:49 +01:00 |
Rafal Kupiec
|
f5960d57b1
|
Allow static class attributes to store compatible data types only.
|
2019-03-29 19:56:10 +01:00 |
Rafal Kupiec
|
41d20eeb28
|
Builtin library is broken; strtok() cannot return a boolean value.
|
2019-03-29 09:45:15 +01:00 |
Rafal Kupiec
|
01f1932230
|
Respect the class attribute data type.
|
2019-03-29 09:21:58 +01:00 |
Rafal Kupiec
|
47cca096bc
|
Fix segmentation fault when trying to access array element.
|
2019-03-29 09:09:51 +01:00 |
Rafal Kupiec
|
140bd35f93
|
Set proper type for all class attributes.
|
2019-03-29 09:00:55 +01:00 |
Rafal Kupiec
|
a013cee2d1
|
Properly serve the arrays.
|
2019-03-28 19:44:03 +01:00 |
Rafal Kupiec
|
e4dc9f641e
|
Invert the logic. Variable needs to be declared.
|
2019-03-28 19:43:00 +01:00 |
Rafal Kupiec
|
66b55e35a9
|
Enable reference operator.
|
2019-03-28 07:58:53 +01:00 |
Rafal Kupiec
|
874e416d65
|
Typo correction.
|
2019-03-27 09:50:24 +01:00 |
Rafal Kupiec
|
46a3bd85b0
|
Add function description.
|
2019-03-27 09:49:48 +01:00 |
Rafal Kupiec
|
14f958a4b2
|
Implement PH7_HashmapCast().
|
2019-03-27 09:42:23 +01:00 |
Rafal Kupiec
|
45f4a00b05
|
Revert 5e54233ef8 .
|
2019-03-26 17:41:32 +01:00 |
Rafal Kupiec
|
9303517b9e
|
Fix return by reference.
|
2019-03-26 17:40:28 +01:00 |
Rafal Kupiec
|
5e54233ef8
|
Check only non-array vriables.
|
2019-03-26 16:39:19 +01:00 |
Rafal Kupiec
|
04c56c9041
|
Multidimensional array of the same type should not be marked as mixed.
|
2019-03-25 09:37:40 +01:00 |
Rafal Kupiec
|
891818d601
|
Fix PH7_CheckVarCompat(). Array can be assigned only to array.
|
2019-03-24 13:33:15 +01:00 |
Rafal Kupiec
|
fa295b9437
|
It's callback, not callable.
|
2019-03-24 09:31:19 +01:00 |
Rafal Kupiec
|
a87471e1e3
|
The empty() function is useless in Aer.
|
2019-03-24 09:22:10 +01:00 |
Rafal Kupiec
|
9438407ebf
|
Never store an element if there is no callback function specified.
|
2019-03-24 09:01:38 +01:00 |
Rafal Kupiec
|
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 |
Rafal Kupiec
|
e75ed7b9a9
|
Only INTEGER and FLOAT should be considered as numerical.
|
2019-03-23 19:34:51 +01:00 |
Rafal Kupiec
|
0af594f1ed
|
Seems not so useful in AerScript.
|
2019-03-23 19:15:16 +01:00 |
Rafal Kupiec
|
fc95deffa0
|
Typecasting should be enough.
|
2019-03-23 17:25:18 +01:00 |
Rafal Kupiec
|
76e76983a3
|
Implement new builtin functions: is_char() and is_void().
|
2019-03-23 12:59:09 +01:00 |
Rafal Kupiec
|
ea93c8dba4
|
Fix typo.
|
2019-03-22 19:55:53 +01:00 |
Rafal Kupiec
|
ff6c71db1c
|
Do not use NULL if possible.
|
2019-03-22 19:53:12 +01:00 |
Rafal Kupiec
|
9d7a542aea
|
The is_null() is useless now, as it always returns FALSE.
|
2019-03-22 19:29:50 +01:00 |
Rafal Kupiec
|
135e7c9698
|
VAR & FUNCTION are no longer valid keywords.
|
2019-03-22 18:47:46 +01:00 |
Rafal Kupiec
|
59e2743a60
|
Simply release the object, no need to use a wrapper function.
|
2019-03-22 18:42:46 +01:00 |
Rafal Kupiec
|
154469f475
|
Variable cannot be typecasted to NULL.
|
2019-03-22 18:33:39 +01:00 |
Rafal Kupiec
|
9a41f7195d
|
AerScript does not implement any error control operator.
|
2019-03-22 17:32:40 +01:00 |
Rafal Kupiec
|
65b178932a
|
Get rid of array() & list() for the new syntax.
|
2019-03-22 15:54:46 +01:00 |
Rafal Kupiec
|
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 |
Rafal Kupiec
|
075d2f0963
|
Temporary workaround to allow the use of curly braces and array() syntax concurrently.
|
2019-03-21 17:30:08 +01:00 |