Commit Graph

  • 8ab3919688 Class names should be case sensitive. belliash 2019-04-28 18:24:22 +02:00
  • 58015f2a20 Correct typo. belliash 2019-04-28 18:18:03 +02:00
  • d72774f0f4 Namespaces in AerScript do not support aliases. belliash 2019-04-25 23:31:48 +02:00
  • 407fb09e8f Throw an error only if this is not the end of tokens stream. belliash 2019-04-25 19:24:53 +02:00
  • a7606864fa Do not use broken foreach() loop in this test. belliash 2019-04-25 19:09:22 +02:00
  • cb455c3c73 Unify compiler OOM error messages. belliash 2019-04-24 23:52:48 +02:00
  • 1c5982e764 There is no reason to use a loop here. belliash 2019-04-24 23:45:46 +02:00
  • 3be46532dd Remove unused PH7_ErrorRecover() function. belliash 2019-04-24 23:38:45 +02:00
  • c443a38fec Do not count compilation errors. Interpreter will abort script execution on first error found. belliash 2019-04-24 23:22:06 +02:00
  • 48a38dc1af PH7_GenCompileError() always breaks script execution on E_ERROR. Thus code placed below will never get executed and is completely useless. belliash 2019-04-24 23:12:59 +02:00
  • 7c8259057b PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR. Thus code placed below will never get executed and is completely useless. belliash 2019-04-24 18:30:24 +02:00
  • 9b1ad67580 PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR. Thus code placed below will never get executed and is completely useless. belliash 2019-04-24 18:09:41 +02:00
  • deda6b4b15 PH7_GenCompileError() always breaks script execution on E_ERROR. Thus code placed below will never get executed and is completely useless. belliash 2019-04-24 18:03:57 +02:00
  • 5b0b965199 Fix segmentation fault when trying to clone non-instantiated object. belliash 2019-04-24 16:51:43 +02:00
  • 555234e381 Get rid of variable variables. AerScript does not support it. belliash 2019-04-22 12:01:11 +02:00
  • aa64a5eeb2 Add missing legal info. belliash 2019-04-20 20:03:42 +02:00
  • 8f18ebf884 Update legal info. belliash 2019-04-20 19:53:16 +02:00
  • c9203b6c91 New source code legal format. belliash 2019-04-20 19:29:15 +02:00
  • 13ea9825b8 Bubble sort algorithm in AerScript. belliash 2019-04-20 16:56:53 +02:00
  • 8331d36869 Program to calculate Euler's Totient Function. belliash 2019-04-20 14:17:06 +02:00
  • 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. belliash 2019-04-20 13:59:10 +02:00
  • 3f1d429d5f The program code for printing Pascal’s Triangle. belliash 2019-04-20 13:49:45 +02:00
  • 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. belliash 2019-04-20 07:30:07 +02:00
  • d819820798 Always make an array copy. Fixes #48. belliash 2019-04-20 07:19:35 +02:00
  • e794ffd97b Fix PH7_HashmapDup(). This function needs to store the next index. Otherwise it will start to count from beginning, duplicating existing keys. belliash 2019-04-19 20:16:42 +02:00
  • 16c6b8d970 Array subscription test. belliash 2019-04-19 07:54:53 +02:00
  • a0405f2267 Always perform type validation when inserting value to an array. belliash 2019-04-19 07:08:29 +02:00
  • 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. belliash 2019-04-19 06:40:16 +02:00
  • 291b6f0607 Get rid of backstick quoted strings (shell commands). belliash 2019-04-18 06:48:51 +02:00
  • 0e8a2372dd Cleanup lexer from no longer used operators. belliash 2019-04-18 06:20:08 +02:00
  • 929d7b83fe Cleanup unused functions. belliash 2019-04-17 18:40:14 +02:00
  • 0b04e0f7c5 Test program entry point. belliash 2019-04-17 17:41:47 +02:00
  • 407bcf5a29 Fix segmentation fault on Program::__construct() call. belliash 2019-04-17 17:29:05 +02:00
  • f8a47d2838 Real life test - base32. belliash 2019-04-17 13:16:27 +02:00
  • 2aa25f66d5 They do not return any value. belliash 2019-04-17 12:25:57 +02:00
  • 58618a4d27 Add another test - constructor overloading. belliash 2019-04-17 12:24:32 +02:00
  • 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. belliash 2019-04-17 12:18:55 +02:00
  • 0268a95169 No longer necessary. belliash 2019-04-17 11:49:04 +02:00
  • 227e1d2be5 Merge 'typehinting' branch into 'master'. belliash 2019-04-17 11:27:52 +02:00
  • 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. belliash 2019-04-17 11:13:29 +02:00
  • 9d97eb228a Test a for() loop as well. belliash 2019-04-17 11:07:53 +02:00
  • b668d0a897 Test do { ... } while(); loop. belliash 2019-04-17 11:01:34 +02:00
  • 102e8447a1 Formatting code. belliash 2019-04-17 10:08:03 +02:00
  • 5f57ba54a4 Left operand must be modifiable when storing some value. belliash 2019-04-17 08:59:42 +02:00
  • ec580ddf8c Path splitting test. belliash 2019-04-17 08:32:19 +02:00
  • 395f6c446c Get rid of known from PHP 'elseif' construction. belliash 2019-04-17 07:55:32 +02:00
  • 549b2ff3b4 Do not use 'elseif' construction. belliash 2019-04-17 07:49:22 +02:00
  • e5d7977995 Fixed by implementation of OP_JMPLFB & OP_JMPLFE VM instructions. belliash 2019-04-16 20:25:38 +02:00
  • 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. Piotr Likoski 2019-04-16 20:15:38 +02:00
  • a5da714d61 Test while loop. belliash 2019-04-16 19:31:24 +02:00
  • 88d382b76b Add missing VM OP descriptions. belliash 2019-04-16 19:12:39 +02:00
  • 2894c55dfa Add some comments, to see if they are working. belliash 2019-04-16 15:08:08 +02:00
  • 0b11d59f9f Remove this dirty hack. This test should now work without it. belliash 2019-04-16 13:59:10 +02:00
  • 07e3a09999 Enter and leave a loop frame on every iteration. This fixes strict variable declaration inside loops. belliash 2019-04-16 13:51:58 +02:00
  • ba8e9080ef Implement OP_JMPLFB & OP_JMPLFE VM instructions. belliash 2019-04-16 12:46:58 +02:00
  • ef4f994e8b Do not allow 'break' statement to take a parameter. This is strange construction introduced in PHP. belliash 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. belliash 2019-04-16 12:32:01 +02:00
  • 89f19133d5 Rename VM's jump instructions for better readability. belliash 2019-04-16 08:14:16 +02:00
  • eb80dced3e Correct comment. belliash 2019-04-15 20:00:54 +02:00
  • f9b518138e Cleanup OP_LOAD instruction. belliash 2019-04-15 19:44:49 +02:00
  • 517dffcbc1 Separate VM instruction for variable declaration (OP_DECLARE). belliash 2019-04-15 19:18:29 +02:00
  • 1b248a17e7 Query the top active as well as all loop frames. belliash 2019-04-15 18:32:30 +02:00
  • 661158d249 Simply throw memory error. belliash 2019-04-15 17:41:29 +02:00
  • 94e06f3d3a Do not duplicate the code; make a use of VmCreateMemObj(). belliash 2019-04-15 17:14:14 +02:00
  • 9e06322b57 Implement VmCreateMemObj(). belliash 2019-04-15 17:04:44 +02:00
  • 0f0fc01a96 We need to distinguish the loop frames. belliash 2019-04-13 20:21:47 +02:00
  • c51b3dfa8a Revert 89d5158d7e and a8a1a2cd51. Fix should be based on VM frames. belliash 2019-04-13 14:39:57 +02:00
  • 583f43e1f7 Convert carriage return and line feed to line feed (UNIX line ending). belliash 2019-04-13 14:37:04 +02:00
  • aea0d1a5ec Workaround applied to make test working. belliash 2019-04-13 14:35:27 +02:00
  • e3ad3eb84b Another bug found that needs to be fixed before merge to master branch. belliash 2019-04-13 14:32:43 +02:00
  • 98898c16c5 Builtin library will be reworked later. Out of scope. belliash 2019-04-13 09:09:25 +02:00
  • 89d5158d7e Fix build. belliash 2019-04-11 13:31:17 +02:00
  • b302e8c2b2 Test static variables. belliash 2019-04-11 13:29:44 +02:00
  • a8a1a2cd51 Fix variable declaration in loops. belliash 2019-04-11 13:28:47 +02:00
  • ee0d189f0a Add comments. belliash 2019-04-11 11:37:07 +02:00
  • cdc0dade2a Allow to store a character in string variable. belliash 2019-04-11 11:33:00 +02:00
  • aae526b1d4 Closure as filter. belliash 2019-04-11 09:10:03 +02:00
  • 5cc803d07c Another closure test comes in. belliash 2019-04-11 08:58:54 +02:00
  • 31f48b234b This is already fixed. belliash 2019-04-11 06:25:48 +02:00
  • 4eaf6a7117 AerScript is strict type hinting language, thus OP_TEQ & OP_TNE are not needed here. belliash 2019-04-11 06:25:20 +02:00
  • 9c426b20cc Factory design pattern test. belliash 2019-04-10 20:22:13 +02:00
  • 725b60cb88 Check switch block. belliash 2019-04-10 20:01:17 +02:00
  • 0c2b2c9df5 Class instance as argument. belliash 2019-04-10 19:54:05 +02:00
  • 493fcd0e92 Test complex expressions one more time. belliash 2019-04-10 19:41:48 +02:00
  • 57c6b3483a Test strtr() builtin function. belliash 2019-04-10 19:18:39 +02:00
  • ab4705518c Another script for interpreter testing. belliash 2019-04-10 19:12:44 +02:00
  • 08307c5ad6 Let's test exceptions. belliash 2019-04-10 18:59:26 +02:00
  • 2a4e47e782 I hope this finally fixes the default argument value. belliash 2019-04-10 18:32:53 +02:00
  • 527a6ad689 Mark argument as well as object, when class name is supplied. belliash 2019-04-10 13:58:24 +02:00
  • 95c9fd0f1f Corrections in builtin library. belliash 2019-04-10 12:44:44 +02:00
  • 46250f0cd8 IP address encode/decode test. belliash 2019-04-10 11:28:57 +02:00
  • ee7b1e56ae Another test of closure. belliash 2019-04-10 11:19:29 +02:00
  • a4b5db4005 Formatting. belliash 2019-04-10 09:52: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. belliash 2019-04-10 09:45:00 +02:00
  • 65e38a364d Do not try to call an array. belliash 2019-04-10 09:26:06 +02:00
  • 6b86f4c855 Add assertion test. belliash 2019-04-10 09:23:23 +02:00
  • d6434ba19e Try to report some line. belliash 2019-04-10 09:18:26 +02:00
  • 447910ce2e Fix callbacks. belliash 2019-04-10 09:08:10 +02:00
  • f0e50678e3 Optimize the code a bit. belliash 2019-04-10 08:52:06 +02:00
  • 8810a86a2c Fix for typoecasting callback to string. belliash 2019-04-10 08:50:04 +02:00