Sameer Rahmani
0ce47a0b6a
Finish up the basic implementation of Call expr
2021-05-09 12:21:26 +01:00
Sameer Rahmani
f2049b5ae8
Use the locale DenseMapInfo for std::string
2021-05-08 21:52:37 +01:00
Sameer Rahmani
ff82772cd6
Implement a basic environment setup/lookup via 'def' and 'list'
2021-05-08 19:00:24 +01:00
Sameer Rahmani
bbf3bd3660
Clean up the unsed expr traits
2021-05-06 21:00:58 +01:00
Sameer Rahmani
fde6636ca2
Modify the Node and MaybeX to contain Serene's Error instead of llvm
...
Previously, MaybeNode and MaybeAST use to have the llvm::Error as the
error type. But after this change they will have a `vector` of
`serene::errors::Error` as the error type.
2021-05-06 19:17:57 +01:00
Sameer Rahmani
add3765982
Add necessary Traits to construct an Expression alternative
2021-05-04 21:10:52 +01:00
Sameer Rahmani
d0defdbf54
Add tests for MetaTrait concept
2021-05-03 22:45:35 +01:00
Sameer Rahmani
4040b1ff45
Add documentation to the traits.h
2021-05-02 01:07:04 +01:00
Sameer Rahmani
b121483f2b
Move the traits header to the appropriate place
2021-05-01 21:40:30 +01:00
Sameer Rahmani
179ef75793
Add A basic Trait like system using CRTP
2021-05-01 20:08:49 +01:00
Sameer Rahmani
6ce565163c
Add support for current namespace in the context
2021-04-29 23:39:58 +01:00
Sameer Rahmani
f2a76aa007
Add a minimal test case for namespace to pin down some behavior
2021-04-28 21:03:22 +01:00
Sameer Rahmani
33c6ebd3d3
Setup the ns table in the context class
2021-04-27 23:43:18 +01:00
Sameer Rahmani
66cecc77f3
Add the namespace table to the context
2021-04-26 21:29:44 +01:00
Sameer Rahmani
c1c1421531
Rename 'maybe_ast' type to 'MeybeAst'
2021-04-25 23:08:40 +01:00
Sameer Rahmani
32ddfc313f
Rename 'ast' type to 'Ast'
2021-04-25 23:07:08 +01:00
Sameer Rahmani
7bc9535617
Rename 'maybe_node' type to 'MaybeNode'
2021-04-25 23:05:21 +01:00
Sameer Rahmani
095d1872c1
Rename the 'node' type to 'Node'
2021-04-25 23:02:52 +01:00
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
ac2814154c
Add 'Call' to the ExprType
2021-04-25 09:09:22 +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
c737af51a4
Fix the failing test case for the Result Type
2021-04-14 18:14:39 +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
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
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
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