Commit Graph
640 Commits
Author SHA1 Message Date
belliash 0e8a2372dd Cleanup lexer from no longer used operators.
The build was successful.
2019-04-18 06:20:08 +02:00
belliash 929d7b83fe Cleanup unused functions.
The build was successful.
2019-04-17 18:40:14 +02:00
belliash 407bcf5a29 Fix segmentation fault on Program::__construct() call.
The build was successful.
2019-04-17 17:29:05 +02:00
belliash 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
belliash bd22425b46 Do not allow 'continue' statement in a switch case.
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
belliash 5f57ba54a4 Left operand must be modifiable when storing some value.
The build was successful.
2019-04-17 08:59:42 +02:00
belliash 395f6c446c Get rid of known from PHP 'elseif' construction.
The build was successful.
2019-04-17 07:55:32 +02:00
Piotr Likoski 6b18e204cd Always pop the l-value on variable declaration.
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
belliash 88d382b76b Add missing VM OP descriptions.
The build was successful.
2019-04-16 19:12:39 +02:00
belliash 07e3a09999 Enter and leave a loop frame on every iteration.
The build was successful.
This fixes strict variable declaration inside loops.
2019-04-16 13:51:58 +02:00
belliash ba8e9080ef Implement OP_JMPLFB & OP_JMPLFE VM instructions.
The build was successful.
2019-04-16 12:46:58 +02:00
belliash ef4f994e8b Do not allow 'break' statement to take a parameter. This is strange construction introduced in PHP.
The build was successful.
2019-04-16 12:34:53 +02:00
belliash 5fddbf8737 Do not allow 'continue' statement to take a parameter. This is strange construction introduced in PHP.
The build was successful.
2019-04-16 12:32:01 +02:00
belliash 89f19133d5 Rename VM's jump instructions for better readability.
The build was successful.
2019-04-16 08:14:16 +02:00
belliash eb80dced3e Correct comment.
The build was successful.
2019-04-15 20:00:54 +02:00
belliash f9b518138e Cleanup OP_LOAD instruction.
The build was successful.
2019-04-15 19:44:49 +02:00
belliash 517dffcbc1 Separate VM instruction for variable declaration (OP_DECLARE).
The build was successful.
2019-04-15 19:18:29 +02:00
belliash 1b248a17e7 Query the top active as well as all loop frames.
The build was successful.
2019-04-15 18:32:30 +02:00
belliash 661158d249 Simply throw memory error.
The build was successful.
2019-04-15 17:41:29 +02:00
belliash 94e06f3d3a Do not duplicate the code; make a use of VmCreateMemObj().
The build was successful.
2019-04-15 17:14:14 +02:00
belliash 9e06322b57 Implement VmCreateMemObj().
The build was successful.
2019-04-15 17:04:44 +02:00
belliash c51b3dfa8a Revert 89d5158d7e and a8a1a2cd51. Fix should be based on VM frames.
The build was successful.
2019-04-13 14:39:57 +02:00
belliash 89d5158d7e Fix build.
The build was successful.
2019-04-11 13:31:17 +02:00
belliash a8a1a2cd51 Fix variable declaration in loops.
The build has failed.
2019-04-11 13:28:47 +02:00
belliash ee0d189f0a Add comments.
The build was successful.
2019-04-11 11:37:07 +02:00
belliash cdc0dade2a Allow to store a character in string variable.
The build was successful.
2019-04-11 11:33:00 +02:00
belliash 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
belliash 2a4e47e782 I hope this finally fixes the default argument value.
The build was successful.
2019-04-10 18:32:53 +02:00
belliash 527a6ad689 Mark argument as well as object, when class name is supplied.
The build was successful.
2019-04-10 13:58:24 +02:00
belliash 95c9fd0f1f Corrections in builtin library.
The build was successful.
2019-04-10 12:44:44 +02:00
belliash 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
belliash 65e38a364d Do not try to call an array.
The build was successful.
2019-04-10 09:26:06 +02:00
belliash d6434ba19e Try to report some line.
The build was successful.
2019-04-10 09:18:26 +02:00
belliash 447910ce2e Fix callbacks.
The build was successful.
2019-04-10 09:08:10 +02:00
belliash f0e50678e3 Optimize the code a bit.
The build was successful.
2019-04-10 08:52:06 +02:00
belliash 8810a86a2c Fix for typoecasting callback to string.
The build was successful.
2019-04-10 08:50:04 +02:00
belliash b0165e5702 Do not reset blob when typecasting from string to callback.
The build was successful.
2019-04-10 06:57:14 +02:00
belliash 77ebce7acf Parser takes care about nested arrays.
The build was successful.
2019-04-10 06:18:49 +02:00
belliash 77795bea4c Do not check for return value on OP_DONE.
The build was successful.
2019-04-08 13:51:54 +02:00
belliash 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
belliash d74b182235 Properly typecast callback to boolean.
The build was successful.
2019-04-08 13:32:50 +02:00
belliash 1679420f4c Get rid of some invisible escape characters.
The build was successful.
2019-04-06 17:00:15 +02:00
belliash d34c8ceafb Fix void dump.
The build was successful.
2019-04-06 16:51:32 +02:00
belliash 7443663dd8 Fixes in PH7_OP_LOAD_IDX instruction.
The build was successful.
2019-04-06 09:36:08 +02:00
belliash f6e2b549b6 Access to undefined array index should be reported as error.
The build was successful.
2019-04-06 09:21:09 +02:00
belliash 72c420cc85 Correct another typo.
The build was successful.
2019-04-05 20:21:26 +02:00
belliash a501dea661 Fix a typo.
The build was successful.
2019-04-05 20:17:44 +02:00
belliash 25001ae746 This should be an error, really.
The build was successful.
2019-04-05 20:14:08 +02:00
belliash 2de455aa01 Fix formatting.
The build was successful.
2019-04-05 20:12:55 +02:00
belliash 95fba30f9b Better way to check arguments compatibility.
The build was successful.
2019-04-05 20:07:56 +02:00