Rafal Kupiec
8b48786f29
Add missing data types.
4 years ago
Rafal Kupiec
74b1c196f9
Treat invalid type name as error.
4 years ago
Rafal Kupiec
d4992ff4ba
At least try to report correct line number.
4 years ago
Rafal Kupiec
ae79cb57de
No need to store information about line number in ph7_class struct.
4 years ago
Rafal Kupiec
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.
4 years ago
Rafal Kupiec
03e452ea7b
Shutdown library properly on error.
4 years ago
Rafal Kupiec
94b213674a
Change the script located in memory indicator.
For easier reading with line numbers.
4 years ago
Rafal Kupiec
dbe373d537
Resolve __CLASS__ at compile time.
Ticket: #45 : __CLASS__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
4 years ago
Rafal Kupiec
3e18a5b8e8
Optimize the code, #45 .
4 years ago
Rafal Kupiec
a0f7949b24
Resolve __DIR__ at compile time.
Ticket: #45 : __DIR__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
4 years ago
Rafal Kupiec
02242bb93d
Resolve __FILE__ at compile time.
Ticket: #45 : __FILE__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data.
4 years ago
Rafal Kupiec
19a504fe11
Enter the class block during compilation, #45 .
4 years ago
Rafal Kupiec
f28c671e69
Compile closures.
4 years ago
Rafal Kupiec
a8961eb36f
Fix build
4 years ago
Rafal Kupiec
2c28b63d90
Properly interpret language constructs, fixes #28 .
4 years ago
Rafal Kupiec
510410096b
Aer is OOP language. There is nothing like function.
4 years ago
Rafal Kupiec
4961922b1d
Unify error with other related to namespace.
4 years ago
Rafal Kupiec
793b6127d5
Temporarily fix namespace support.
The namespace feature is not supported in this version, they are treated same way as global scope.
4 years ago
Rafal Kupiec
787f3b5d5f
Synchronize the namespace also with first semicolon.
4 years ago
Rafal Kupiec
be27532fdf
Unify error level for namespace support.
4 years ago
Rafal Kupiec
e208e778e0
Compile global scope independently, fixes #40 .
4 years ago
Rafal Kupiec
64b9ac4406
Forward declaration already in compiler.h
4 years ago
Rafal Kupiec
be454ff7be
Rename PH7_COMPILE_SINGLE_STMT to PH7_COMPILE_STATEMENT
4 years ago
Rafal Kupiec
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
4 years ago
Rafal Kupiec
7e3c79d3c5
Functions naming cleanup
4 years ago
Rafal Kupiec
02fde9c30f
It is not PHP compiler
4 years ago
Rafal Kupiec
aa6e00db27
Forward declaration for all functions.
4 years ago
Rafal Kupiec
59c15caf4e
Use something more human readable
4 years ago
Rafal Kupiec
6b7591a137
Move common part to compiler.h
4 years ago
Rafal Kupiec
289af8f9ae
Unify compiler's function naming convenction
4 years ago
Rafal Kupiec
5ef5cf3e46
Make errors more readable.
4 years ago
Rafal Kupiec
429c28d0cc
Rework error lovels for AerScript.
4 years ago
Rafal Kupiec
c39e627aef
Remove the backtick quoted string.
4 years ago
Rafal Kupiec
cef0f40820
Compile namespace
4 years ago
Rafal Kupiec
c298a41eb7
More verbose error messages
4 years ago
Rafal Kupiec
e866575cb5
More verbose errors
4 years ago
Rafal Kupiec
c759b1f106
Improove error reporting for method declarations
4 years ago
Rafal Kupiec
b61fc9d3e6
Rename function to save it from typo
4 years ago
Rafal Kupiec
576edc6c20
Several changes to virtual class/method. Fixes #41
* 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
4 years ago
Rafal Kupiec
3f46f01805
Rename anonymous functions
4 years ago
Rafal Kupiec
0d8391eaaa
Correct typos
4 years ago
Rafal Kupiec
e4ab5974fa
Let the compiler use OP_ADD instead of OP_CAT
4 years ago
Rafal Kupiec
4bbdc20174
This commit contains several changes:
* print() is now treated as standard function
* get rid of echo() function
* fix test suite
and it fixes #26 .
4 years ago
Piotr Likoski
bcde1f446d
It does not matter if it is empty string or not, we want to process it. Empty string should not ever been even considered as a NULL. Fixing #35 .
4 years ago
Piotr Likoski
a8259e7dbc
Empty double-quoted string can be served as single-quoted string. Preparing for further changes in scope of #35 .
4 years ago
Rafal Kupiec
2c37807370
Get rid of global keyword, fixes #29
4 years ago
Rafal Kupiec
7b3e6c5b76
P# introduces virtual classes and virtual methods
4 years ago
Rafal Kupiec
b7792dfc3d
P# is not going to derive namespace syntax from PHP, but from C++.
4 years ago
Rafal Kupiec
48b2e9d1c6
Update comments
4 years ago
Rafal Kupiec
e300575ab1
P# does not support PHP tags, thus there is also no need to support shortcut for echo.
4 years ago