118 Commits

Auteur SHA1 Bericht Datum
1c5982e764
There is no reason to use a loop here.
Alle checks waren succesvol
The build was successful.
2019-04-24 23:45:46 +02:00
3be46532dd
Remove unused PH7_ErrorRecover() function.
Alle checks waren succesvol
The build was successful.
2019-04-24 23:38:45 +02:00
c443a38fec
Do not count compilation errors.
Alle checks waren succesvol
The build was successful.
Interpreter will abort script execution on first error found.
2019-04-24 23:22:06 +02:00
48a38dc1af
PH7_GenCompileError() always breaks script execution on E_ERROR.
Alle checks waren succesvol
The build was successful.
Thus code placed below will never get executed and is completely useless.
2019-04-24 23:12:59 +02:00
555234e381
Get rid of variable variables. AerScript does not support it.
Alle checks waren succesvol
The build was successful.
2019-04-22 12:01:11 +02:00
8f18ebf884
Update legal info.
Alle checks waren succesvol
The build was successful.
2019-04-20 19:53:16 +02:00
c9203b6c91
New source code legal format.
Alle checks waren succesvol
The build was successful.
2019-04-20 19:29:15 +02:00
929d7b83fe
Cleanup unused functions.
Alle checks waren succesvol
The build was successful.
2019-04-17 18:40:14 +02:00
bd22425b46
Do not allow 'continue' statement in a switch case.
Alle checks waren succesvol
The build was successful.
Important rule while using continue statement is that, We can use continue
statement only within the loops. Switch case is conditional block not a loop
so we cannot execute the continue statement inside switch.
2019-04-17 11:13:29 +02:00
395f6c446c
Get rid of known from PHP 'elseif' construction.
Alle checks waren succesvol
The build was successful.
2019-04-17 07:55:32 +02:00
Piotr Likoski
6b18e204cd
Always pop the l-value on variable declaration.
Alle checks waren succesvol
The build was successful.
Otherwise, it might lead to unexpected behaviour including protected memory access and segmentation fault.
This finally fixes #49.
2019-04-16 20:15:38 +02:00
07e3a09999
Enter and leave a loop frame on every iteration.
Alle checks waren succesvol
The build was successful.
This fixes strict variable declaration inside loops.
2019-04-16 13:51:58 +02:00
ef4f994e8b
Do not allow 'break' statement to take a parameter. This is strange construction introduced in PHP.
Alle checks waren succesvol
The build was successful.
2019-04-16 12:34:53 +02:00
5fddbf8737
Do not allow 'continue' statement to take a parameter. This is strange construction introduced in PHP.
Alle checks waren succesvol
The build was successful.
2019-04-16 12:32:01 +02:00
89f19133d5
Rename VM's jump instructions for better readability.
Alle checks waren succesvol
The build was successful.
2019-04-16 08:14:16 +02:00
eb80dced3e
Correct comment.
Alle checks waren succesvol
The build was successful.
2019-04-15 20:00:54 +02:00
517dffcbc1
Separate VM instruction for variable declaration (OP_DECLARE).
Alle checks waren succesvol
The build was successful.
2019-04-15 19:18:29 +02:00
c51b3dfa8a
Revert 89d5158d7e and a8a1a2cd51. Fix should be based on VM frames.
Alle checks waren succesvol
The build was successful.
2019-04-13 14:39:57 +02:00
89d5158d7e
Fix build.
Alle checks waren succesvol
The build was successful.
2019-04-11 13:31:17 +02:00
a8a1a2cd51
Fix variable declaration in loops.
Sommige controles hebben foutmeldingen gerapporteerd
The build has failed.
2019-04-11 13:28:47 +02:00
2a4e47e782
I hope this finally fixes the default argument value.
Alle checks waren succesvol
The build was successful.
2019-04-10 18:32:53 +02:00
527a6ad689
Mark argument as well as object, when class name is supplied.
Alle checks waren succesvol
The build was successful.
2019-04-10 13:58:24 +02:00
77ebce7acf
Parser takes care about nested arrays.
Alle checks waren succesvol
The build was successful.
2019-04-10 06:18:49 +02:00
72dc44c152
Another fix for OP_DONE instruction.
Alle checks waren succesvol
The build was successful.
2019-04-05 07:45:53 +02:00
74f954b852
Fix OP_DONE instruction.
Alle checks waren succesvol
The build was successful.
2019-04-05 07:01:07 +02:00
c6397d2e15
Use P2 to avoid strict typehinting.
Alle checks waren succesvol
The build was successful.
2019-04-02 09:55:01 +02:00
3f205c19ce
Get rid of dirty references. Return a reference & pass-by reference are still working.
Alle checks waren succesvol
The build was successful.
2019-03-29 22:55:49 +01:00
140bd35f93
Set proper type for all class attributes.
Alle checks waren succesvol
The build was successful.
2019-03-29 09:00:55 +01:00
a87471e1e3
The empty() function is useless in Aer.
Alle checks waren succesvol
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.
Sommige controles hebben foutmeldingen gerapporteerd
The build has failed.
2019-03-23 19:51:19 +01:00
65b178932a
Get rid of array() & list() for the new syntax.
Alle checks waren succesvol
The build was successful.
2019-03-22 15:54:46 +01:00
075d2f0963
Temporary workaround to allow the use of curly braces and array() syntax concurrently.
Alle checks waren succesvol
The build was successful.
2019-03-21 17:30:08 +01:00
b60c1de4cf
Abort on SXERR_ABORT, #47.
Alle checks waren succesvol
The build was successful.
2019-03-19 10:42:53 +01:00
23601fe9c5
Partially fix #47, static variables are still affected.
Alle checks waren succesvol
The build was successful.
2019-03-19 10:38:07 +01:00
c26f8cd777
Strict data types for classes and interfaces:
Sommige controles hebben foutmeldingen gerapporteerd
The build has failed.
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
615e75fb8a
Store methods return type.
Alle checks waren succesvol
The build was successful.
2019-03-16 14:57:04 +01:00
7897f28ebb
Fix parameters order.
Alle checks waren succesvol
The build was successful.
2019-03-13 20:10:32 +01:00
df3d00d02c
Revert f1d4d80f65.
Alle checks waren succesvol
The build was successful.
2019-03-11 08:16:51 +01:00
051bca470e
Save the closure return data type for further use.
Alle checks waren succesvol
The build was successful.
2019-03-10 21:02:06 +01:00
f1d4d80f65
Cleanup keywords.
Alle checks waren succesvol
The build was successful.
2019-03-09 22:39:26 +01:00
d87ce3ad1d
1. Set a proper data type when compiling closure.
Alle checks waren succesvol
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
e5fb7d625e
Allow only a colon as variable separator.
Alle checks waren succesvol
The build was successful.
2018-10-27 19:49:24 +02:00
dd774be005
Fix for() loop, do not use iP1 for OP_LOAD.
Sommige controles hebben foutmeldingen gerapporteerd
The build has failed.
2018-09-23 17:51:09 +02:00
28a5fa59ad
Duplicate variable name. Fix variable declaration.
Alle checks waren succesvol
The build was successful.
2018-09-22 17:54:59 +02:00
f927667d85
Strictly check for data type of static variable declaration.
Sommige controles hebben foutmeldingen gerapporteerd
The build has failed.
2018-09-21 22:06:36 +02:00
79e4bac7eb
Remove no longer used PH7_CompileStatic().
Alle checks waren succesvol
The build was successful.
2018-09-21 00:22:29 +02:00
bd4d146d0a
Initial version of variable definition.
Alle checks waren succesvol
The build was successful.
2018-09-21 00:21:15 +02:00
241c7d8168
First step to declare a variable with specified data type.
Alle checks waren succesvol
The build was successful.
2018-09-20 17:06:23 +02:00
e6e59d299e
Fix method parameters.
Alle checks waren succesvol
The build was successful.
2018-09-19 19:27:50 +02:00
9884f8288b
Do not allow typecasting to unset a variable.
Alle checks waren succesvol
The build was successful.
2018-09-18 22:11:57 +02:00