Commit Graph

  • 02242bb93d Resolve __FILE__ at compile time. Ticket: #45: __FILE__ constant must be resolved at compile time, not run time. Otherwise it returns incorrect data. belliash 2018-08-21 20:18:39 +02:00
  • 19a504fe11 Enter the class block during compilation, #45. belliash 2018-08-21 19:45:50 +02:00
  • 33523e4e8a Block definitions for class and namespace. belliash 2018-08-21 19:35:00 +02:00
  • 2d99881240 Get rid of manual optimisation technique. This optimisation technique results in non insignificant speed boost on some old x86 architectures. Novadays, we should rely on compiler optimisation. belliash 2018-08-21 06:27:07 +02:00
  • 81325b5059 Correct typo. belliash 2018-08-18 21:05:46 +02:00
  • 2160747479 Make get_included_files() returning full path. belliash 2018-08-18 21:02:23 +02:00
  • cbb4a0aa5c get_included_files() should return a list of included, files. belliash 2018-08-18 20:42:54 +02:00
  • 00dc23ee4a Get rid of manual optimisation technique resulting in non insignificant speed boost on some old x86 architectures, #38; belliash 2018-08-18 19:43:00 +02:00
  • 4b3279ef01 Correct function description. belliash 2018-08-18 19:32:33 +02:00
  • 4dbd3ea412 New memory subsystem. This is a new memory subsystem implementing heap calculations as well as new builtin functions: * get_memory_usage() * get_memory_peak_usage() * get_memory_limit() It also allows to set an upper memory limit, ensuring that processed script will not be able to allocate more memory from OS. New subsystem is based on work done in 'memory_limit' branch. Big thanks to devnexen! This finally fixes #25. belliash 2018-08-18 19:24:38 +02:00
  • 08c47b7528 Correct dictionary issues. belliash 2018-08-17 09:25:29 +02:00
  • ab1266ef5d Rename VFS belliash 2018-08-16 22:05:30 +02:00
  • c83d6e13fc Removing xExec. First of all, VFS is not a right place for this, finally it was not implemented anyway. belliash 2018-08-16 21:37:34 +02:00
  • 03a5b7e397 Merge branch 'compiler_rework' into master Rafal Kupiec 2018-08-16 21:28:49 +02:00
  • a8a88b4746 Compile closures. belliash 2018-08-16 18:40:23 +02:00
  • f28c671e69 Compile closures. belliash 2018-08-16 18:31:12 +02:00
  • 074edd11d3 Add Windows 10 information belliash 2018-08-16 18:19:33 +02:00
  • a8961eb36f Fix build belliash 2018-08-16 17:48:17 +02:00
  • 2c28b63d90 Properly interpret language constructs, fixes #28. belliash 2018-08-16 17:42:30 +02:00
  • 9100bf0696 Treat 'import' as a special keyword. belliash 2018-08-16 16:32:28 +02:00
  • b5fe36c14b There is no need for include_once() and require_once() Aer is object-oriented language and the code it includes is executed in the global scope. Global scope can contain only classes and namespaces and they cannot be re-declared. Thus every file can be included just once. We can leave this to programmer, or take care about it on interpreter side. With this commit, include() and require() builtin functions allows to load file just once. Thanks to that, there is no need for include_once() and require_once(). Done in scope of #30. belliash 2018-08-16 16:12:29 +02:00
  • 510410096b Aer is OOP language. There is nothing like function. belliash 2018-08-16 13:57:35 +02:00
  • 4961922b1d Unify error with other related to namespace. belliash 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. belliash 2018-08-16 12:39:05 +02:00
  • 787f3b5d5f Synchronize the namespace also with first semicolon. belliash 2018-08-16 12:01:36 +02:00
  • be27532fdf Unify error level for namespace support. belliash 2018-08-16 11:26:47 +02:00
  • e208e778e0 Compile global scope independently, fixes #40. belliash 2018-08-16 11:15:03 +02:00
  • 039fde099f Compile Aer code or chunk of code. belliash 2018-08-16 09:34:18 +02:00
  • f9946e9842 Reimplement filegroup() and fileowner() as builtin function, #42. belliash 2018-08-15 21:58:21 +02:00
  • f33f8d66b4 Correct warning messages. belliash 2018-08-15 21:43:17 +02:00
  • 16ea44372f Dictionary correction. belliash 2018-08-15 21:35:44 +02:00
  • ac1dee48c9 Reimplement fileinode() as builtin function, #42. belliash 2018-08-15 21:28:59 +02:00
  • b642858044 Add missing definition belliash 2018-08-15 20:20:56 +02:00
  • b94a23d580 Get rid of PH7 ident belliash 2018-08-15 20:03:39 +02:00
  • 7c7a837efb Correct another bunch of typos. belliash 2018-08-15 19:06:00 +02:00
  • 71d46e3052 Compiler rework does not allow functions in global scope. These functions will be rewritten in C as a builtin functions in scope of #42. belliash 2018-08-15 18:56:10 +02:00
  • da0b7eb629 Some useless function belliash 2018-08-15 17:34:40 +02:00
  • af139b3f0a Reimplement C-like min() and max() functions. These functions should have C-like implementation and take exactly 2 arguments: integer or float. Finally, C-implementation will be faster than using PH7 builtin library that needs to be compiled and interpreted. belliash 2018-08-15 17:26:26 +02:00
  • 89d7aca73a Correct typo belliash 2018-08-15 16:38:33 +02:00
  • 8ab67084a0 It is as easy to instantiate the class as to remove this useless functions. belliash 2018-08-15 16:31:28 +02:00
  • 6f491b398a Always show compilation errors belliash 2018-08-15 16:01:09 +02:00
  • 8e87989719 A;ways show compilation errors from evaluated code belliash 2018-08-15 15:41:53 +02:00
  • 052649e677 Trust builtin library. The builtin library should compile successfully. Otherwise, we want to know about it. belliash 2018-08-15 14:12:44 +02:00
  • 0e64c7cc6e Fix builtin library belliash 2018-08-15 14:08:59 +02:00
  • 64b9ac4406 Forward declaration already in compiler.h belliash 2018-08-15 11:18:40 +02:00
  • be454ff7be Rename PH7_COMPILE_SINGLE_STMT to PH7_COMPILE_STATEMENT belliash 2018-08-14 23:48:15 +02:00
  • 26b1675021 API function rename belliash 2018-08-14 17:43:43 +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 belliash 2018-08-14 13:45:27 +02:00
  • 1cb3e394cf Implement pseudo boolean type. belliash 2018-08-14 10:42:52 +02:00
  • 7e3c79d3c5 Functions naming cleanup belliash 2018-08-13 20:16:37 +02:00
  • 02fde9c30f It is not PHP compiler belliash 2018-08-13 19:53:08 +02:00
  • d7f9d8e157 Add missing 'finally' keyword. belliash 2018-08-12 22:04:47 +02:00
  • aa6e00db27 Forward declaration for all functions. belliash 2018-08-12 21:58:27 +02:00
  • 59c15caf4e Use something more human readable belliash 2018-08-12 21:16:05 +02:00
  • 6b7591a137 Move common part to compiler.h belliash 2018-08-12 21:11:13 +02:00
  • 289af8f9ae Unify compiler's function naming convenction belliash 2018-08-12 20:58:01 +02:00
  • 5ef5cf3e46 Make errors more readable. belliash 2018-08-12 19:36:17 +02:00
  • 429c28d0cc Rework error lovels for AerScript. belliash 2018-08-12 19:35:43 +02:00
  • 029dd9bfb4 Several changes made: * Do not overload entry point * Automatically call Program::__construct() * Automatically call Program::main(); * Fix all tests belliash 2018-08-12 12:52:35 +02:00
  • 8cbfca2bc9 Do not overload entry point belliash 2018-08-12 12:27:15 +02:00
  • c39e627aef Remove the backtick quoted string. belliash 2018-08-12 11:08:09 +02:00
  • cef0f40820 Compile namespace belliash 2018-08-12 11:06:01 +02:00
  • c298a41eb7 More verbose error messages belliash 2018-08-12 10:30:44 +02:00
  • e866575cb5 More verbose errors belliash 2018-08-12 10:18:42 +02:00
  • c759b1f106 Improove error reporting for method declarations belliash 2018-08-12 09:23:21 +02:00
  • b61fc9d3e6 Rename function to save it from typo belliash 2018-08-11 23:21:40 +02:00
  • 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 belliash 2018-08-11 22:50:05 +02:00
  • 3f46f01805 Rename anonymous functions belliash 2018-08-11 21:40:05 +02:00
  • 0d8391eaaa Correct typos belliash 2018-08-11 21:22:04 +02:00
  • 5d9ccf9c65 More tests belliash 2018-08-10 08:51:38 +02:00
  • 3252f54615 Temporarily look for modules in binary/ subdirectory. This will allow us to test modules. Final version should take the full path from configuration. belliash 2018-08-10 08:47:42 +02:00
  • 0561c5f901 Redundant slash belliash 2018-08-10 08:44:58 +02:00
  • bfbe97255c This is not needed to build modules belliash 2018-08-10 08:44:09 +02:00
  • fc4b17434e Remove duplicated builtin functions belliash 2018-08-09 21:34:13 +02:00
  • 8936f6529f Remove duplicate belliash 2018-08-09 21:32:00 +02:00
  • 94b29fa238 Remove duplicates belliash 2018-08-09 21:27:24 +02:00
  • 8f7fc71027 Consider a method with compiled default value associated as a candidate to call. Fixes #37. belliash 2018-08-08 09:00:24 +02:00
  • e15166d940 Temporary fix for master branch belliash 2018-08-08 06:52:15 +02:00
  • bca4d1a2fa Always select an appropriate function to call It does not matter, if we call function, anonymouss function or method. It is important to select appropriate function to call everytime. Otherwise, if function or method is not overloaded it will call it regardless the number and type of parameters it takes. type belliash 2018-08-07 19:48:12 +02:00
  • 34dd052f74 quick typo fix belliash 2018-08-07 19:45:34 +02:00
  • 370465fe79 We should use %z to match (SyString *) length and to not display trash. belliash 2018-08-07 19:02:28 +02:00
  • c419b8605d Add more tests belliash 2018-08-07 17:16:28 +02:00
  • 7711bdb6bc Merge branch 'master' of https://git.codingworkshop.eu.org/AerScript/Aer David Carlier 2018-08-07 13:55:27 +00:00
  • a0fb911d7a Fix #36, unrolling through the frames needed to also reset to the initial frame after David Carlier 2018-08-07 13:55:13 +00:00
  • 80f376af62 Test debug_backtrace() function belliash 2018-08-07 15:47:14 +02:00
  • cdc58f2795 Cleanup after 2c37807370 - get rid of global keyword, #29. belliash 2018-08-07 12:27:21 +02:00
  • a4e6962a67 Free dot operator for further usage belliash 2018-08-07 08:13:44 +02:00
  • 6f0d1ab3ff Tests should use new string concatenation operator belliash 2018-08-07 07:53:26 +02:00
  • e4ab5974fa Let the compiler use OP_ADD instead of OP_CAT belliash 2018-08-07 07:47:25 +02:00
  • 9a56751879 Allow addition operator (+) to concatenate strings. belliash 2018-08-07 06:54:44 +02:00
  • 3a994221ce Add another chapter to the readme belliash 2018-08-06 19:28:03 +02:00
  • 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. belliash 2018-08-06 17:18:27 +02:00
  • 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. Piotr Likoski 2018-08-06 16:13:49 +02:00
  • a8259e7dbc Empty double-quoted string can be served as single-quoted string. Preparing for further changes in scope of #35. Piotr Likoski 2018-08-06 16:03:22 +02:00
  • dd239530d8 Test if unicode characters can be used as method / variable name belliash 2018-08-06 08:23:51 +02:00
  • ff6a7012a4 Another test, converting arab numbers to roman belliash 2018-08-05 22:25:15 +02:00
  • fcd35584de Simple 'Hello world' test belliash 2018-08-05 22:10:26 +02:00
  • bb2322117f Continuous Integration belliash 2018-08-05 20:05:21 +02:00
  • 64ee53a63a Add first Aer test belliash 2018-08-03 08:00:39 +02:00
  • 3f2d36910d Add tests support belliash 2018-08-02 22:34:26 +02:00