Commit Graph
993 Commits
Author SHA1 Message Date
belliash e6b7f1be2c Always emit OP_JMPLFE as goto can be used inside a loop and frame has to be left.
The build was successful.
2019-05-03 10:55:57 +02:00
belliash 03fc167be1 Proper implementation of so hated 'goto' statement.
The build was successful.
2019-05-03 10:35:54 +02:00
belliash 2f3ce65289 Correct comment to if/else statements.
The build was successful.
2019-05-02 19:03:47 +02:00
belliash 73c1a814f5 Test foreach() loop.
The build was successful.
2019-05-02 18:51:12 +02:00
belliash 8f681d1605 Correct PH7_OP_JMPLFE debug name.
The build was successful.
2019-05-01 20:24:37 +02:00
belliash 5a0e4667fa More readable error message.
The build was successful.
2019-05-01 20:09:55 +02:00
belliash 508e8965a9 VmExtractMemObj() should not be able to create a variable.
The build was successful.
2019-05-01 18:29:57 +02:00
belliash 7d606cbf1d Do not create variables automatically on each OP_CALL using VmExtractMemObj().
The build was successful.
2019-05-01 18:19:04 +02:00
belliash 3dfa4232ba Use VmCreateMemObj() to create $this.
The build was successful.
2019-05-01 14:00:35 +02:00
belliash 7c37451520 Namespaces are not supported and broken, but compile them properly.
The build was successful.
2019-05-01 13:49:07 +02:00
belliash 1829eff323 Fix interface and class compilation.
The build was successful.
2019-05-01 13:37:14 +02:00
belliash 798fd7d3b2 Remove unused and useless VM instruction.
The build was successful.
2019-05-01 12:33:51 +02:00
belliash 70676cb0d5 Correct comment.
The build was successful.
2019-05-01 12:27:40 +02:00
belliash d76441ad4c Safely store only compatible values.
The build was successful.
2019-05-01 12:24:20 +02:00
belliash 186e5887f6 We can now declare key and value variables inside a loop.
The build was successful.
2019-05-01 11:51:08 +02:00
belliash bbcd99789d Fix test.
The build was successful.
2019-05-01 11:48:57 +02:00
belliash 1d6822c1e2 Allow key and value declaration inside foreach() loop.
The build was successful.
2019-05-01 11:38:28 +02:00
belliash a726ab795a Throw an error if $key or $value does not exist.
The build was successful.
2019-05-01 09:51:33 +02:00
belliash 5c1e0f0cce Simplify the foreach() loop implementation.
The build was successful.
2019-04-30 23:59:02 +02:00
belliash 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
belliash 1156519af6 This is a compiler task to fill key and value variables names.
The build was successful.
2019-04-29 11:44:17 +02:00
belliash 62c315da9e Call to undefined constant should lead to an error.
The build was successful.
2019-04-28 21:44:48 +02:00
belliash 10516fb655 Remove useless comments from BrainFuck tests.
The build was successful.
2019-04-28 19:51:38 +02:00
belliash f09d4def2d It's AerScript.
The build was successful.
2019-04-28 19:47:09 +02:00
belliash d6fca929ea Callbacks can be just called.
The build was successful.
2019-04-28 19:36:27 +02:00
belliash 6593252bce Remove get_defined_functions() built-in function.
The build was successful.
This function is useless in Aer, as it is fully OOP language and thus disallows functions declaration.
2019-04-28 19:31:58 +02:00
belliash d26bc99b68 There is no reason to trigger a low-level error in AerScript.
The build was successful.
AerScript is fully OOP language and supports exceptions that can be thrown at any time.
2019-04-28 19:27:24 +02:00
belliash 00c502c11b Get rid of import_request_variables() builtin function. Its pure evil.
The build was successful.
2019-04-28 19:23:42 +02:00
belliash 9f4f6298c2 Do not create variable in foreach() loop automatically.
The build was successful.
2019-04-28 19:14:56 +02:00
belliash 2bda002259 Add missing variables declaration.
The build was successful.
2019-04-28 19:14:25 +02:00
belliash eef5ee370d Remove this useless wrapper function.
The build was successful.
2019-04-28 18:25:43 +02:00
belliash 8ab3919688 Class names should be case sensitive.
The build was successful.
2019-04-28 18:24:22 +02:00
belliash 58015f2a20 Correct typo.
The build was successful.
2019-04-28 18:18:03 +02:00
belliash d72774f0f4 Namespaces in AerScript do not support aliases.
The build was successful.
2019-04-25 23:31:48 +02:00
belliash 407fb09e8f Throw an error only if this is not the end of tokens stream.
The build was successful.
2019-04-25 19:24:53 +02:00
belliash a7606864fa Do not use broken foreach() loop in this test.
The build was successful.
2019-04-25 19:09:22 +02:00
belliash cb455c3c73 Unify compiler OOM error messages.
The build was successful.
2019-04-24 23:52:48 +02:00
belliash 1c5982e764 There is no reason to use a loop here.
The build was successful.
2019-04-24 23:45:46 +02:00
belliash 3be46532dd Remove unused PH7_ErrorRecover() function.
The build was successful.
2019-04-24 23:38:45 +02:00
belliash 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
belliash 48a38dc1af PH7_GenCompileError() always breaks script execution on E_ERROR.
The build was successful.
Thus code placed below will never get executed and is completely useless.
2019-04-24 23:12:59 +02:00
belliash 7c8259057b PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR.
The build was successful.
Thus code placed below will never get executed and is completely useless.
2019-04-24 18:30:24 +02:00
belliash 9b1ad67580 PH7_VmThrowError() always breaks script execution on PH7_CTX_ERR.
The build was successful.
Thus code placed below will never get executed and is completely useless.
2019-04-24 18:09:41 +02:00
belliash deda6b4b15 PH7_GenCompileError() always breaks script execution on E_ERROR.
The build was successful.
Thus code placed below will never get executed and is completely useless.
2019-04-24 18:03:57 +02:00
belliash 5b0b965199 Fix segmentation fault when trying to clone non-instantiated object.
The build was successful.
2019-04-24 16:51:43 +02:00
belliash 555234e381 Get rid of variable variables. AerScript does not support it.
The build was successful.
2019-04-22 12:01:11 +02:00
belliash aa64a5eeb2 Add missing legal info.
The build was successful.
2019-04-20 20:03:42 +02:00
belliash 8f18ebf884 Update legal info.
The build was successful.
2019-04-20 19:53:16 +02:00
belliash c9203b6c91 New source code legal format.
The build was successful.
2019-04-20 19:29:15 +02:00
belliash 13ea9825b8 Bubble sort algorithm in AerScript.
The build was successful.
2019-04-20 16:56:53 +02:00