ab8bf48485
Make constant declarations local.
...
The build was successful.
There are several changes in this commit:
* first of all constants declared by 'const' statement should be local (declared in current scope / frame),
* constants are declared by using OP_DECLARE instruction,
* OP_LOADC browses both global and local constants container,
* PH7_VmRegisterConstant() allows both global and local declarations.
Since this commit, there are 3 kinds of constants:
1) global
2) local (in loop, closure, method)
3) class members.
Actually there is no way to declare a global constant except the built-in constants.
2019-05-04 13:45:32 +02:00
90b2da7c56
Unify constant length.
The build was successful.
2019-05-03 12:40:47 +02:00
03fc167be1
Proper implementation of so hated 'goto' statement.
The build was successful.
2019-05-03 10:35:54 +02:00
798fd7d3b2
Remove unused and useless VM instruction.
The build was successful.
2019-05-01 12:33:51 +02:00
70676cb0d5
Correct comment.
The build was successful.
2019-05-01 12:27:40 +02:00
5c1e0f0cce
Simplify the foreach() loop implementation.
The build was successful.
2019-04-30 23:59:02 +02:00
4d8d92092e
Refactor foreach() loop.
...
The build was successful.
In AerScript, the foreach() loop is syntatically more similiar to C#, than PHP. However the optional '$key => $value' construct is still available, because arrays in AerScript are still a hashmaps.
2019-04-30 23:38:59 +02:00
3be46532dd
Remove unused PH7_ErrorRecover() function.
The build was successful.
2019-04-24 23:38:45 +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
291b6f0607
Get rid of backstick quoted strings (shell commands).
The build was successful.
2019-04-18 06:48:51 +02:00
395f6c446c
Get rid of known from PHP 'elseif' construction.
The build was successful.
2019-04-17 07:55:32 +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
517dffcbc1
Separate VM instruction for variable declaration (OP_DECLARE).
The build was successful.
2019-04-15 19:18:29 +02:00
0f0fc01a96
We need to distinguish the loop frames.
The build was successful.
2019-04-13 20:21:47 +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
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
aaef03396c
Implement PH7_MemObjSafeStore().
The build was successful.
2019-04-02 19:44:09 +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
140bd35f93
Set proper type for all class attributes.
The build was successful.
2019-03-29 09:00:55 +01:00
14f958a4b2
Implement PH7_HashmapCast().
The build was successful.
2019-03-27 09:42:23 +01:00
243faf4373
Header cleanup.
The build was successful.
2019-03-24 09:38:52 +01:00
accde59f9e
Cleanup header.
The build was successful.
2019-03-24 09:32:27 +01:00
fa295b9437
It's callback, not callable.
The build was successful.
2019-03-24 09:31:19 +01:00
a87471e1e3
The empty() function is useless in Aer.
The build was successful.
2019-03-24 09:22:10 +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
135e7c9698
VAR & FUNCTION are no longer valid keywords.
The build was successful.
2019-03-22 18:47:46 +01:00
59e2743a60
Simply release the object, no need to use a wrapper function.
The build was successful.
2019-03-22 18:42:46 +01:00
98a5fc1af0
No such operator.
The build was successful.
2019-03-22 18:34:12 +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
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
615e75fb8a
Store methods return type.
The build was successful.
2019-03-16 14:57:04 +01:00
e498bc7646
It is enought to declare 'object'.
The build was successful.
2019-03-13 19:59:48 +01:00
a2749000d6
Do not store these information twice; save the memory.
The build was successful.
2019-03-13 09:58:00 +01:00
f71e60f641
Add fields to store information about method's return data type.
The build was successful.
2019-03-13 09:43:27 +01:00
df3d00d02c
Revert f1d4d80f65
.
The build was successful.
2019-03-11 08:16:51 +01:00
051bca470e
Save the closure return data type for further use.
The build was successful.
2019-03-10 21:02:06 +01:00
f1d4d80f65
Cleanup keywords.
The build was successful.
2019-03-09 22:39:26 +01:00
fa0b487cc0
Implement typecasting to resource data type.
The build was successful.
2019-02-08 14:06:39 +01:00
f97e2a8294
Implement typecasting to callback data type.
The build was successful.
2018-12-20 18:30:21 +01:00
1c3211e00d
Add missing PH7_OP_CVT_CALL definition.
The build was successful.
2018-12-13 09:35:48 +01:00
9ab896c2e2
Implement PH7_CheckVarCompat().
The build was successful.
2018-11-28 20:37:07 +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
f927667d85
Strictly check for data type of static variable declaration.
2018-09-21 22:06:36 +02:00
241c7d8168
First step to declare a variable with specified data type.
The build was successful.
2018-09-20 17:06:23 +02:00