Sameer Rahmani
fd66e47cd7
Fix all the tidy issues
2021-10-17 20:12:17 +01:00
Sameer Rahmani
f473d1122b
Change the license to GPL2
2021-10-12 20:51:03 +01:00
Sameer Rahmani
7a456e2d54
Add support for a shared libserene and make it the default behaviour
2021-10-10 21:34:14 +01:00
Sameer Rahmani
3ace6ec260
Chaneg the namespace to generate modules instead of owning them
2021-08-17 09:57:26 +01:00
Sameer Rahmani
54b4458a8d
Cleanup the exprs namespace for the episode 5
2021-07-30 12:17:41 +01:00
Sameer Rahmani
782c786baf
Reformat files with the new clang-format config
2021-06-13 22:58:46 +01:00
Sameer Rahmani
65b6aa4020
Add the IR generation facilities to Namespace and Expression
2021-06-13 22:40:58 +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
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
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
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
a486b03d10
Add a very basic Error Expression to be used in semantic analysis
2021-04-19 19:49:05 +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
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
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
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