Commit Graph

78 Commits

Author SHA1 Message Date
d87ce3ad1d 1. Set a proper data type when compiling closure.
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
e5fb7d625e Allow only a colon as variable separator. 2018-10-27 19:49:24 +02:00
dd774be005 Fix for() loop, do not use iP1 for OP_LOAD. 2018-09-23 17:51:09 +02:00
28a5fa59ad Duplicate variable name. Fix variable declaration. 2018-09-22 17:54:59 +02:00
f927667d85 Strictly check for data type of static variable declaration. 2018-09-21 22:06:36 +02:00
79e4bac7eb Remove no longer used PH7_CompileStatic(). 2018-09-21 00:22:29 +02:00
bd4d146d0a Initial version of variable definition. 2018-09-21 00:21:15 +02:00
241c7d8168 First step to declare a variable with specified data type. 2018-09-20 17:06:23 +02:00
e6e59d299e Fix method parameters. 2018-09-19 19:27:50 +02:00
9884f8288b Do not allow typecasting to unset a variable. 2018-09-18 22:11:57 +02:00
94ae7d187b No data type for argument specified leads to E_ERROR. 2018-09-14 21:33:31 +02:00
8b48786f29 Add missing data types. 2018-09-14 08:47:16 +02:00
74b1c196f9 Treat invalid type name as error. 2018-09-13 18:56:01 +02:00
d4992ff4ba At least try to report correct line number. 2018-09-12 19:24:48 +02:00
ae79cb57de No need to store information about line number in ph7_class struct. 2018-09-05 17:42:10 +02:00
894dbe47d6 Allow compiler to specify line number, on which instruction has been generated.
This also fixes line number on OP_CLASS_INIT and OP_INTERFACE_INIT.
2018-09-05 17:31:06 +02:00
03e452ea7b Shutdown library properly on error. 2018-09-04 09:13:28 +02:00
94b213674a Change the script located in memory indicator.
For easier reading with line numbers.
2018-08-23 18:27:14 +02:00
dbe373d537 Resolve __CLASS__ at compile time.
Ticket: : __CLASS__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
2018-08-22 09:59:10 +02:00
3e18a5b8e8 Optimize the code, . 2018-08-22 08:51:45 +02:00
a0f7949b24 Resolve __DIR__ at compile time.
Ticket: : __DIR__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
2018-08-22 06:23:43 +02:00
02242bb93d Resolve __FILE__ at compile time.
Ticket: : __FILE__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
2018-08-21 20:18:39 +02:00
19a504fe11 Enter the class block during compilation, . 2018-08-21 19:45:50 +02:00
f28c671e69 Compile closures. 2018-08-16 18:31:12 +02:00
a8961eb36f Fix build 2018-08-16 17:48:17 +02:00
2c28b63d90 Properly interpret language constructs, fixes . 2018-08-16 17:42:30 +02:00
510410096b Aer is OOP language. There is nothing like function. 2018-08-16 13:57:35 +02:00
4961922b1d Unify error with other related to namespace. 2018-08-16 13:36:19 +02:00
793b6127d5 Temporarily fix namespace support.
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
787f3b5d5f Synchronize the namespace also with first semicolon. 2018-08-16 12:01:36 +02:00
be27532fdf Unify error level for namespace support. 2018-08-16 11:26:47 +02:00
e208e778e0 Compile global scope independently, fixes . 2018-08-16 11:15:03 +02:00
64b9ac4406 Forward declaration already in compiler.h 2018-08-15 11:18:40 +02:00
be454ff7be Rename PH7_COMPILE_SINGLE_STMT to PH7_COMPILE_STATEMENT 2018-08-14 23:48:15 +02:00
ece036b214 Rework the entry point
* 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
7e3c79d3c5 Functions naming cleanup 2018-08-13 20:16:37 +02:00
02fde9c30f It is not PHP compiler 2018-08-13 19:53:08 +02:00
aa6e00db27 Forward declaration for all functions. 2018-08-12 21:58:27 +02:00
59c15caf4e Use something more human readable 2018-08-12 21:16:05 +02:00
6b7591a137 Move common part to compiler.h 2018-08-12 21:11:13 +02:00
289af8f9ae Unify compiler's function naming convenction 2018-08-12 20:58:01 +02:00
5ef5cf3e46 Make errors more readable. 2018-08-12 19:36:17 +02:00
429c28d0cc Rework error lovels for AerScript. 2018-08-12 19:35:43 +02:00
c39e627aef Remove the backtick quoted string. 2018-08-12 11:08:09 +02:00
cef0f40820 Compile namespace 2018-08-12 11:06:01 +02:00
c298a41eb7 More verbose error messages 2018-08-12 10:30:44 +02:00
e866575cb5 More verbose errors 2018-08-12 10:18:42 +02:00
c759b1f106 Improove error reporting for method declarations 2018-08-12 09:23:21 +02:00
b61fc9d3e6 Rename function to save it from typo 2018-08-11 23:21:40 +02:00
576edc6c20 Several changes to virtual class/method. Fixes
* do not automatically mark class as virtual when at least one virtual method found
 * force non-virtual method to contain body
 * force non-virtual class to implement all methods
2018-08-11 22:50:05 +02:00