Commit Graph

179 Commits

Author SHA1 Message Date
Sameer Rahmani 0e58304462 Create the boilerplate of the call expression 2021-04-25 22:56:31 +01:00
Sameer Rahmani c04c67ccbe Add an environment implementation 2021-04-25 21:19:26 +01:00
Sameer Rahmani f9bd6cd567 Add the missing context header/impl files 2021-04-25 10:21:48 +01:00
Sameer Rahmani 4084135851 Extract SereneContext to the top level namespace 2021-04-25 09:56:28 +01:00
Sameer Rahmani 499852c48f Rename Semantic Context to Serene Context to be used in other phases too 2021-04-25 09:17:58 +01:00
Sameer Rahmani 5427b2ab00 Add a more complicated test to semantic analysis 2021-04-24 20:40:01 +01:00
Sameer Rahmani c12c6b1281 Change the semantic analysis entrypoint to the 'analyze' fn 2021-04-24 20:18:33 +01:00
Sameer Rahmani 4aee3413ea Analyze the value in the 'def' form 2021-04-24 19:10:22 +01:00
Sameer Rahmani 7c35f6a95e Add asserts to check for the first element of the list in def and fn forms 2021-04-24 18:04:04 +01:00
Sameer Rahmani 573550ca07 Add Fn expression and List rewrite to Fn 2021-04-24 14:39:43 +01:00
Sameer Rahmani 16d02a0fb1 Finish up the basic 'def' rewrite rules 2021-04-23 16:48:14 +01:00
Sameer Rahmani 806987b0ad Setup the minimal semantic analysis foundation 2021-04-22 10:20:15 +01:00
Sameer Rahmani f614d35b7f Change toString format and finalize Def::isValid signature 2021-04-22 00:49:11 +01:00
Sameer Rahmani 751eb49538 Rename the Result success/error methods to be consistent with the coding style 2021-04-20 19:33:25 +01:00
Sameer Rahmani 4fde47311e Remove the old implementations to keep the source tree as clean as possible 2021-04-20 00:17:28 +01:00
Sameer Rahmani 17b778bc49 Move the Error expression to it's own namespace 2021-04-19 23:34:39 +01:00
Sameer Rahmani a486b03d10 Add a very basic Error Expression to be used in semantic analysis 2021-04-19 19:49:05 +01:00
Sameer Rahmani 9f90e42bbb Setup the minimal rewrite wiring to rewrite 'def' to Def 2021-04-18 18:39:48 +01:00
Sameer Rahmani 30c54f9e73 Add more tests for List to test and iterators 2021-04-18 17:32:33 +01:00
Sameer Rahmani 7c9ee97895 Finish up the analyze setup before moving back to vector/shared_ptr setup 2021-04-17 19:36:25 +01:00
Sameer Rahmani 3b6d165baa Replace the shared_ptr in the node with a unique ptr 2021-04-17 00:18:13 +01:00
Sameer Rahmani 1330bad6fb Add a new type alias for Result<shared_ptr<Expressoin>> 2021-04-14 21:59:22 +01:00
Sameer Rahmani 3223fc6944 Restructure the source tree to have tests and impl files in src 2021-04-13 13:53:12 +01:00
Sameer Rahmani 470f23acef Short circute the 'analyze' method of expressions for now 2021-04-13 00:45:08 +01:00
Sameer Rahmani 8b4f2941cf Add the Result type as an error wrapper type 2021-04-12 23:18:32 +01:00
Sameer Rahmani f4c28ae722 Upgrade to C++17 for now 2021-04-11 18:36:00 +01:00
Sameer Rahmani 11df9a6d1d Add some test cases for the reader 2021-04-11 15:13:10 +01:00
Sameer Rahmani 555e770c01 Finalize migration to new expression interface 2021-04-11 00:02:56 +01:00
Sameer Rahmani e4b0823e49 Fall back to the OOP design and setup the test env 2021-04-10 15:36:16 +01:00
Sameer Rahmani 944efcd1a9 Finish up the single dispatcher 2021-04-08 23:41:52 +01:00
Sameer Rahmani fd211653f2 Fix the expression instantiation 2021-04-08 19:59:47 +01:00
Sameer Rahmani a42259d684 Add c++20 support flag to cmake 2021-04-07 19:56:54 +01:00
Sameer Rahmani c1bec1ec99 Document the Expression type 2021-04-07 01:01:12 +01:00
Sameer Rahmani cd6552960d Fix the cmake file to use the new reader files 2021-04-06 19:13:24 +01:00
Sameer Rahmani 08e661c508 Rename the reader header files 2021-04-06 18:28:50 +01:00
Sameer Rahmani e620d8dcb2 rename location.hpp to location.h 2021-04-06 18:24:05 +01:00
Sameer Rahmani f1f77386ae Finish up the new Expression implementation 2021-04-06 16:20:20 +01:00
Sameer Rahmani 0020f95a80 Setup tests via Catch2 2021-04-06 00:21:43 +01:00
Sameer Rahmani f73cfe7aaf Introduce the new polymorphic approach to expressions 2021-04-05 19:02:30 +01:00
Sameer Rahmani 062b24e701 Add doxygen support for the documentation 2021-04-05 17:51:09 +01:00
Sameer Rahmani 9ff707c726 Save the progress before introducing the semantic analysis 2021-04-04 23:08:57 +01:00
Sameer Rahmani 53ec0c240a Change the different generator methods to be a polymorphic function 2021-04-01 23:37:12 +01:00
Sameer Rahmani f6ca246f0d Implement classof in derived expressions 2021-03-31 19:37:32 +01:00
Sameer Rahmani 3a899d82b3 Add Location and LocationRange support to expressions 2021-03-29 01:02:29 +01:00
Sameer Rahmani f50e20567a Move reader related files to the reader namespace 2021-03-28 23:14:32 +01:00
Sameer Rahmani e9daeb9d13 Add support for a dummy value operation to demonstrate a value 2021-03-28 10:53:32 +01:00
Sameer Rahmani 21b1958ecf Add symbol type to the dialect 2021-03-26 21:39:25 +00:00
Sameer Rahmani 50c2054f0a Add a barebone MLIR dialect with the necessary cmake changes" 2021-03-25 00:53:44 +00:00
Sameer Rahmani 737b6e1a41 Remove unused code to simplify the project to the bare min 2021-03-23 22:31:20 +00:00
Sameer Rahmani 04a50eb65b Update the serene executable to use llvm::cl and spit out the AST 2021-03-22 19:53:10 +00:00
Sameer Rahmani a8557125c4 Add the mapping for builtins special forms to namespace 2020-08-03 20:21:46 +01:00
Sameer Rahmani dfa64e8f26 Fix some of the hints from the 1on1 session on the refactoring the code 2020-08-03 12:39:20 +01:00
Hamid 18910a4a2c Refactoring 2020-08-02 22:08:35 +02:00
Sameer Rahmani f008470de3 Finish the basic implementation of the special form 2020-08-01 21:32:21 +01:00
Sameer Rahmani ff3bceac62 Change id attribute of AExpr to virtual method 2020-08-01 20:14:51 +01:00
Sameer Rahmani 1238898ddc Add a very basic 'def' special form 2020-08-01 19:58:34 +01:00
Sameer Rahmani b27611d5ba Create a very basic compiler setup to wire everything in the most basic way 2020-07-25 18:59:00 +01:00
Sameer Rahmani 6e36ce1711 Add the basic class structure of the compiler, namespace and state 2020-07-25 15:49:19 +01:00
Sameer Rahmani 2eda5f8d5f Setup clang-format as a githook and apply it to the source 2020-07-23 21:47:13 +01:00
Sameer Rahmani 8e90ea9813 Finish the first implementation of the compiler level list 2020-07-23 17:13:16 +01:00
Sameer Rahmani d55b4a27f5 Create the PoC of API of the List 2020-07-22 18:58:15 +01:00
Sameer Rahmani 576eba6451 Add a very basic List implementation 2020-07-21 22:23:11 +01:00
Sameer Rahmani cbea0c8e28 Add the first draft of a very basic reader, list and symbol impl 2020-07-16 15:48:06 +01:00
Sameer Rahmani 51b9f4a307 Add the build setup for the C++ implementation 2020-07-10 18:06:26 +01:00
Sameer Rahmani 72fb1f1a2c Commit the final changes before moving to C++ :( 2020-07-09 13:52:46 +01:00
Sameer Rahmani 402e267e7c Add basic namespace and scope support 2020-07-06 14:18:29 +01:00
Sameer Rahmani 2756349204 Add a very basic Namespace datastructure 2020-06-27 22:12:09 +01:00
Sameer Rahmani 08a651019f Add Symbol struct to represent symbols 2020-06-20 22:14:48 +01:00
Sameer Rahmani 3454a44f65 Add inkwell to replace llvm-sys and add the types module 2020-06-20 22:02:17 +01:00
Sameer Rahmani 0b348cff82 Add clap to manage the cli arguments 2020-06-20 18:20:10 +01:00
Sameer Rahmani 2a98d4b771 Create Expr function helpers to create different Expr variants 2020-06-20 16:25:05 +01:00
Sameer Rahmani 0065c2edf1 Add Expression trait and new cons implementation 2020-06-20 15:20:05 +01:00
Sameer Rahmani 30a7dbfce5 Fix the reader to ignore comment lines 2020-06-19 19:37:00 +01:00
Sameer Rahmani 04fe7e6085 Add llvm-sys as a dependency 2020-06-16 09:27:32 +01:00
Sameer Rahmani 25c58c27c2 Format the reader module 2020-06-14 21:25:18 +01:00
Sameer Rahmani 5181c84696 Add support for negative numbers 2020-06-14 21:23:39 +01:00
Sameer Rahmani 47bf80e834 Add a very basic lisp1 parser 2020-06-14 21:02:31 +01:00
Sameer Rahmani e527beea5a Add a very simple lisp grammer based on LALRPOP (whitespace problem) 2020-06-13 17:55:27 +01:00
Sameer Rahmani c7c4876838 Initial Commit 2020-06-05 22:23:14 +01:00