Commit Graph
189 Commits
Author SHA1 Message Date
belliash 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.
The build has failed.
2019-03-23 19:51:19 +01:00
belliash 65b178932a Get rid of array() & list() for the new syntax.
The build was successful.
2019-03-22 15:54:46 +01:00
belliash 075d2f0963 Temporary workaround to allow the use of curly braces and array() syntax concurrently.
The build was successful.
2019-03-21 17:30:08 +01:00
belliash b60c1de4cf Abort on SXERR_ABORT, #47.
The build was successful.
2019-03-19 10:42:53 +01:00
belliash 23601fe9c5 Partially fix #47, static variables are still affected.
The build was successful.
2019-03-19 10:38:07 +01:00
belliash c26f8cd777 Strict data types for classes and interfaces:
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
belliash 615e75fb8a Store methods return type.
The build was successful.
2019-03-16 14:57:04 +01:00
belliash 7897f28ebb Fix parameters order.
The build was successful.
2019-03-13 20:10:32 +01:00
belliash df3d00d02c Revert f1d4d80f65.
The build was successful.
2019-03-11 08:16:51 +01:00
belliash 051bca470e Save the closure return data type for further use.
The build was successful.
2019-03-10 21:02:06 +01:00
belliash f1d4d80f65 Cleanup keywords.
The build was successful.
2019-03-09 22:39:26 +01:00
belliash d87ce3ad1d 1. Set a proper data type when compiling closure.
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
belliash e5fb7d625e Allow only a colon as variable separator.
The build was successful.
2018-10-27 19:49:24 +02:00
belliash dd774be005 Fix for() loop, do not use iP1 for OP_LOAD.
The build has failed.
2018-09-23 17:51:09 +02:00
belliash 28a5fa59ad Duplicate variable name. Fix variable declaration.
The build was successful.
2018-09-22 17:54:59 +02:00
belliash f927667d85 Strictly check for data type of static variable declaration.
The build has failed.
2018-09-21 22:06:36 +02:00
belliash 79e4bac7eb Remove no longer used PH7_CompileStatic().
The build was successful.
2018-09-21 00:22:29 +02:00
belliash bd4d146d0a Initial version of variable definition.
The build was successful.
2018-09-21 00:21:15 +02:00
belliash 241c7d8168 First step to declare a variable with specified data type.
The build was successful.
2018-09-20 17:06:23 +02:00
belliash e6e59d299e Fix method parameters.
The build was successful.
2018-09-19 19:27:50 +02:00
belliash 9884f8288b Do not allow typecasting to unset a variable.
The build was successful.
2018-09-18 22:11:57 +02:00
belliash 94ae7d187b No data type for argument specified leads to E_ERROR.
The build was successful.
2018-09-14 21:33:31 +02:00
belliash 8b48786f29 Add missing data types.
The build was successful.
2018-09-14 08:47:16 +02:00
belliash 74b1c196f9 Treat invalid type name as error.
The build was successful.
2018-09-13 18:56:01 +02:00
belliash d4992ff4ba At least try to report correct line number.
The build was successful.
2018-09-12 19:24:48 +02:00
belliash ae79cb57de No need to store information about line number in ph7_class struct.
The build was successful.
2018-09-05 17:42:10 +02:00
belliash 894dbe47d6 Allow compiler to specify line number, on which instruction has been generated.
The build was successful.
This also fixes line number on OP_CLASS_INIT and OP_INTERFACE_INIT.
2018-09-05 17:31:06 +02:00
belliash 03e452ea7b Shutdown library properly on error.
The build was successful.
2018-09-04 09:13:28 +02:00
belliash 94b213674a Change the script located in memory indicator.
The build was successful.
For easier reading with line numbers.
2018-08-23 18:27:14 +02:00
belliash dbe373d537 Resolve __CLASS__ at compile time.
The build was successful.
Ticket: #45: __CLASS__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
2018-08-22 09:59:10 +02:00
belliash 3e18a5b8e8 Optimize the code, #45.
The build was successful.
2018-08-22 08:51:45 +02:00
belliash a0f7949b24 Resolve __DIR__ at compile time.
The build was successful.
Ticket: #45: __DIR__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
2018-08-22 06:23:43 +02:00
belliash 02242bb93d Resolve __FILE__ at compile time.
The build was successful.
Ticket: #45: __FILE__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
2018-08-21 20:18:39 +02:00
belliash 19a504fe11 Enter the class block during compilation, #45.
The build was successful.
2018-08-21 19:45:50 +02:00
belliash f28c671e69 Compile closures.
The build was successful.
2018-08-16 18:31:12 +02:00
belliash a8961eb36f Fix build
The build was successful.
2018-08-16 17:48:17 +02:00
belliash 2c28b63d90 Properly interpret language constructs, fixes #28.
The build has failed.
2018-08-16 17:42:30 +02:00
belliash 510410096b Aer is OOP language. There is nothing like function.
The build was successful.
2018-08-16 13:57:35 +02:00
belliash 4961922b1d Unify error with other related to namespace.
The build was successful.
2018-08-16 13:36:19 +02:00
belliash 793b6127d5 Temporarily fix namespace support.
The build was successful.
The namespace feature is not supported in this version, they are treated same way as global scope.
2018-08-16 12:39:05 +02:00
belliash 787f3b5d5f Synchronize the namespace also with first semicolon.
The build was successful.
2018-08-16 12:01:36 +02:00
belliash be27532fdf Unify error level for namespace support.
The build was successful.
2018-08-16 11:26:47 +02:00
belliash e208e778e0 Compile global scope independently, fixes #40.
The build was successful.
2018-08-16 11:15:03 +02:00
belliash 64b9ac4406 Forward declaration already in compiler.h
The build was successful.
2018-08-15 11:18:40 +02:00
belliash be454ff7be Rename PH7_COMPILE_SINGLE_STMT to PH7_COMPILE_STATEMENT
The build was successful.
2018-08-14 23:48:15 +02:00
belliash ece036b214 Rework the entry point
The build was successful.
* some functions were not used and have been removed
 * some parameters seemed to be useless and have been removed
 * code cleanup
2018-08-14 13:45:27 +02:00
belliash 7e3c79d3c5 Functions naming cleanup
The build was successful.
2018-08-13 20:16:37 +02:00
belliash 02fde9c30f It is not PHP compiler
The build was successful.
2018-08-13 19:53:08 +02:00
belliash aa6e00db27 Forward declaration for all functions.
The build was successful.
2018-08-12 21:58:27 +02:00
belliash 59c15caf4e Use something more human readable
The build was successful.
2018-08-12 21:16:05 +02:00