Rafal Kupiec
9b1ad67580
PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR.
Thus code placed below will never get executed and is completely useless.
1 year ago
Rafal Kupiec
deda6b4b15
PH7_GenCompileError() always breaks script execution on E_ERROR.
Thus code placed below will never get executed and is completely useless.
1 year ago
Rafal Kupiec
5b0b965199
Fix segmentation fault when trying to clone non-instantiated object.
1 year ago
Rafal Kupiec
555234e381
Get rid of variable variables. AerScript does not support it.
1 year ago
Rafal Kupiec
aa64a5eeb2
Add missing legal info.
1 year ago
Rafal Kupiec
8f18ebf884
Update legal info.
1 year ago
Rafal Kupiec
c9203b6c91
New source code legal format.
1 year ago
Rafal Kupiec
13ea9825b8
Bubble sort algorithm in AerScript.
1 year ago
Rafal Kupiec
8331d36869
Program to calculate Euler's Totient Function.
1 year ago
Rafal Kupiec
ed8f3f341e
Remove array_same() builtin function.
After last change, AerScript does not pass arrays as reference, so there is no chance to get this function return true, unless you pass array as reference.
1 year ago
Rafal Kupiec
3f1d429d5f
The program code for printing Pascal’s Triangle.
1 year ago
Rafal Kupiec
18e77b9754
array_copy() is no longer needed.
AerScript makes a copy of all arrays, except a situation when array is passed by reference. Thanks to that this ugly hack called an extension, introduced by Symisc can be removed.
1 year ago
Rafal Kupiec
d819820798
Always make an array copy. Fixes #48 .
1 year ago
Rafal Kupiec
e794ffd97b
Fix PH7_HashmapDup().
This function needs to store the next index. Otherwise it will start to count from beginning, duplicating existing keys.
1 year ago
Rafal Kupiec
16c6b8d970
Array subscription test.
1 year ago
Rafal Kupiec
a0405f2267
Always perform type validation when inserting value to an array.
1 year ago
Rafal Kupiec
80abccc3ad
This variable contains an array of booleans, really.
And if we managed to insert a boolean value to an array of chars, this means we have a bug somewhere.
1 year ago
Rafal Kupiec
291b6f0607
Get rid of backstick quoted strings (shell commands).
1 year ago
Rafal Kupiec
0e8a2372dd
Cleanup lexer from no longer used operators.
1 year ago
Rafal Kupiec
929d7b83fe
Cleanup unused functions.
1 year ago
Rafal Kupiec
0b04e0f7c5
Test program entry point.
1 year ago
Rafal Kupiec
407bcf5a29
Fix segmentation fault on Program::__construct() call.
1 year ago
Rafal Kupiec
f8a47d2838
Real life test - base32.
1 year ago
Rafal Kupiec
2aa25f66d5
They do not return any value.
1 year ago
Rafal Kupiec
58618a4d27
Add another test - constructor overloading.
1 year ago
Rafal Kupiec
9a82298451
Do not check parameters passed to constructor.
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.
1 year ago
Rafal Kupiec
0268a95169
No longer necessary.
1 year ago
Rafal Kupiec
227e1d2be5
Merge 'typehinting' branch into 'master'.
1 year ago
Rafal Kupiec
bd22425b46
Do not allow 'continue' statement in a switch case.
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.
1 year ago
Rafal Kupiec
9d97eb228a
Test a for() loop as well.
1 year ago
Rafal Kupiec
b668d0a897
Test do { ... } while(); loop.
1 year ago
Rafal Kupiec
102e8447a1
Formatting code.
1 year ago
Rafal Kupiec
5f57ba54a4
Left operand must be modifiable when storing some value.
1 year ago
Rafal Kupiec
ec580ddf8c
Path splitting test.
1 year ago
Rafal Kupiec
395f6c446c
Get rid of known from PHP 'elseif' construction.
1 year ago
Rafal Kupiec
549b2ff3b4
Do not use 'elseif' construction.
1 year ago
Rafal Kupiec
e5d7977995
Fixed by implementation of OP_JMPLFB & OP_JMPLFE VM instructions.
1 year ago
Piotr Likoski
6b18e204cd
Always pop the l-value on variable declaration.
Otherwise, it might lead to unexpected behaviour including protected memory access and segmentation fault.
This finally fixes #49 .
1 year ago
Rafal Kupiec
a5da714d61
Test while loop.
1 year ago
Rafal Kupiec
88d382b76b
Add missing VM OP descriptions.
1 year ago
Rafal Kupiec
2894c55dfa
Add some comments, to see if they are working.
1 year ago
Rafal Kupiec
0b11d59f9f
Remove this dirty hack.
This test should now work without it.
1 year ago
Rafal Kupiec
07e3a09999
Enter and leave a loop frame on every iteration.
This fixes strict variable declaration inside loops.
1 year ago
Rafal Kupiec
ba8e9080ef
Implement OP_JMPLFB & OP_JMPLFE VM instructions.
1 year ago
Rafal Kupiec
ef4f994e8b
Do not allow 'break' statement to take a parameter. This is strange construction introduced in PHP.
1 year ago
Rafal Kupiec
5fddbf8737
Do not allow 'continue' statement to take a parameter. This is strange construction introduced in PHP.
1 year ago
Rafal Kupiec
89f19133d5
Rename VM's jump instructions for better readability.
1 year ago
Rafal Kupiec
eb80dced3e
Correct comment.
1 year ago
Rafal Kupiec
f9b518138e
Cleanup OP_LOAD instruction.
1 year ago
Rafal Kupiec
517dffcbc1
Separate VM instruction for variable declaration (OP_DECLARE).
1 year ago