Commit Graph

68 Commits

Author SHA1 Message Date
Sameer Rahmani 90888a7bcd Fix the REP loop to terminate early in case of any ParseError 2020-11-24 19:10:01 +00:00
Sameer Rahmani 52fa298a07 Add PrintError function to print out the IError values 2020-11-24 18:39:18 +00:00
Sameer Rahmani eea65489c8 Add True/False values 2020-11-24 18:27:59 +00:00
Sameer Rahmani d92150f0c3 Add IError interface to represent system errors 2020-11-24 18:27:48 +00:00
Sameer Rahmani 57714accfc Add Location type and support to ILocatable 2020-11-23 12:30:02 +00:00
Sameer Rahmani a2725ba412 Add some documentation for the core package 2020-11-20 16:43:07 +00:00
Sameer Rahmani 468b446a4f Enable repl history 2020-11-20 12:33:15 +00:00
Sameer Rahmani 28d7be6efd Create the Block struct to accommodate function bodies 2020-11-19 22:17:50 +00:00
Sameer Rahmani 680017f0ce Add the Def, and Fn special forms 2020-11-19 19:14:06 +00:00
Sameer Rahmani ad37f02742 Restructure the source tree to get around circular dep issue 2020-11-15 22:16:48 +00:00
Sameer Rahmani cba74e29af Add the support for special forms 2020-11-15 21:38:09 +00:00
Sameer Rahmani 38baf577bb Move reader and printer packages to the core package 2020-11-15 19:33:16 +00:00
Sameer Rahmani 95ec031ce6 Add a very basic eval function for symbols 2020-11-15 19:30:07 +00:00
Sameer Rahmani a7457fceb6 Create a very basic runtime/ns/scope with a basic repl 2020-11-14 21:09:54 +00:00
Sameer Rahmani c0fc5b152e Add the simplest possible Number implementation 2020-11-14 12:22:13 +00:00
Sameer Rahmani 70bb8d1997 Fix the reader bug in readUnquotedExpr function 2020-11-14 11:02:09 +00:00
Sameer Rahmani 1bd3a41fb6 Create a basic parser in Golang 2020-11-14 10:51:25 +00:00
Sameer Rahmani 7f1080964a Add antlr docker image and setup to generate the parser 2020-11-10 22:12:39 +00:00
Sameer Rahmani 67cf700ff6 Replace the F ing Rust implmentation with the boilerplate project in Go 2020-11-10 21:37:30 +00:00
Sameer Rahmani cff76ac5a5 Moving the eval function to the core module 2020-11-10 20:14:30 +00:00
Sameer Rahmani 5c6518f7d6 Add the StringRepr trait to be used in printing evaluation results in REPL
All the expressions and basically anything that needs to be printed out into
the REPL as a result of evaluation has to implement this trait.

It differs from the `std::fmt::Display` trait in the way that the runtime
instance is available to this function.
2020-11-02 00:55:56 +00:00
Sameer Rahmani 0b63e6896e Fix the license header to avoid collision with the docs 2020-11-02 00:11:12 +00:00
Sameer Rahmani 31c2083ddb Create the symbol lookup in Symbol's eval fn 2020-11-02 00:06:55 +00:00
Sameer Rahmani 9181292651 Print debug data of reader and evaluator on the rep 2020-11-01 20:15:07 +00:00
Sameer Rahmani 124fd3e267 Move current implementation to the 'bootstrap' directory
Since we're decided to create a Serene interpreter to bootstrap
the self hosted compiler, I moved the current implementation to
bootstrap directory and setup a very basic REPL.
2020-11-01 19:40:07 +00:00
Sameer Rahmani b1b7163c81 Remove inkwell since we don't need it for the interpreter anymore 2020-10-30 20:49:35 +00:00
Sameer Rahmani cf1a1241c8 Update dev.org with more resources 2020-10-29 19:34:12 +00:00
Sameer Rahmani 08cde9a400 Update the dev.org to include some features to implement 2020-10-29 18:37:42 +00:00
Sameer Rahmani ce78534cd3 Add a function to compiler to compiler modules to string 2020-09-20 23:01:50 +01:00
Sameer Rahmani 40bcb3b16c Create 'def' special form to define global value ( not functions at the moment ) 2020-09-20 22:22:18 +01:00
Sameer Rahmani fe1724ce22 Finialize the Seq trait to return a copy of data instead of reference 2020-09-19 01:23:33 +01:00
Sameer Rahmani 298dc89025 Create a new list implementation based on vectors 2020-09-19 00:28:40 +01:00
Sameer Rahmani bb83142ffd Commit the old list implementation 2020-09-18 21:52:45 +01:00
Sameer Rahmani fa9c51e71c Change the list implementation to remove the generic type from it 2020-09-14 21:46:52 +01:00
Sameer Rahmani f880169e68 Change scope implementation to support values::Value 2020-09-13 22:06:05 +01:00
Sameer Rahmani 842309e035 Merge branch 'feature/new-links-for-dev-org' into master 2020-09-13 19:29:58 +01:00
Sameer Rahmani ee47410d49 Improve scope to support builtins 2020-09-13 19:29:17 +01:00
Hamid f780447838 Research links for JIT and GC 2020-09-12 18:26:27 +02:00
Sameer Rahmani b6a960862c Extract 'compile' function from compiler struct 2020-09-12 14:12:04 +01:00
Sameer Rahmani a6eb232b48 Change codegen function to accept compiler's reference 2020-09-12 12:34:08 +01:00
Sameer Rahmani 6a7523e0ba Change the codegen signature to accept compiler instead of ns 2020-09-11 20:55:26 +01:00
Sameer Rahmani 5c6635fd0c Clean up the scope struct to lookup in the parent as well 2020-09-10 23:28:20 +01:00
Sameer Rahmani 317726975c Add and setup rusty-hook 2020-09-09 21:53:25 +01:00
Sameer Rahmani 05a2886402 Make Serene GPLv2 compatible 2020-09-09 21:40:31 +01:00
Sameer Rahmani 03c15c5f25 Fix the compiler ns to have a very basic Compiler struct 2020-09-09 21:21:04 +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 04cadf7152 Add the julia paper to the list of resources 2020-06-27 22:22:37 +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