Commit Graph

32 Commits

Author SHA1 Message Date
Danila Fedorin bca70ce2a0 Add a 'tail recursive' fibonacci program 2019-08-17 23:09:30 -07:00
Danila Fedorin 03581f7af0 Add design document 2019-06-12 21:05:30 -07:00
Danila Fedorin 7ee084385c Add makefile. 2019-06-12 20:35:50 -07:00
Danila Fedorin d32d92e241 Fix c++11 compatibility. 2019-06-12 20:35:42 -07:00
Danila Fedorin 17c5486551 Add good old factorial. 2019-06-12 19:31:49 -07:00
Danila Fedorin df33263fcd Clumsily add equality checking. 2019-06-12 19:27:52 -07:00
Danila Fedorin 9855dda31a Add a test for lazy evaluation. 2019-06-12 08:59:31 -07:00
Danila Fedorin 9d9c7b7e9f Fix parenthesized parsing. 2019-06-12 08:54:10 -07:00
Danila Fedorin 396043d801 Make the sample programs actually run. 2019-06-12 08:53:54 -07:00
Danila Fedorin c3d4ef22ce Remove unneeded debug output from the runtime. 2019-06-12 08:52:55 -07:00
Danila Fedorin 521004084e Read from input. 2019-06-12 08:43:06 -07:00
Danila Fedorin b2bb05d4b8 Tweak data types to...work? 2019-06-12 08:35:12 -07:00
Danila Fedorin fe35695532 Add support for data types. 2019-06-12 07:21:51 -07:00
Danila Fedorin dbe7572eb5 Store arity of functions in llvm context to generate correct calls. 2019-06-12 04:11:28 -07:00
Danila Fedorin e6f31f8c5b Fix unwind bug and add eval. 2019-06-12 03:33:35 -07:00
Danila Fedorin 37f5e53a59 Get awful LLVM code generation working. 2019-06-12 01:38:27 -07:00
Danila Fedorin e579078f73 Rename binop operators. 2019-06-11 17:53:22 -07:00
Danila Fedorin da515437e6 Get basic G-machine compilation working. 2019-06-11 17:24:28 -07:00
Danila Fedorin d729611486 Implement constructors type checking (?). 2019-06-09 21:25:02 -07:00
Danila Fedorin 0b80ce711d Type check constructors. 2019-06-09 20:24:44 -07:00
Danila Fedorin 0b544a2515 Fix function return type checking. 2019-06-09 19:57:58 -07:00
Danila Fedorin 711c78e0f6 Seemingly get basic type checking working. 2019-06-09 19:51:53 -07:00
Danila Fedorin 1e77622589 Rewrite types to not use IDs unless needed. 2019-06-09 16:13:13 -07:00
Danila Fedorin f3be325644 Add a CMakeLists file. 2019-06-09 14:02:41 -07:00
Danila Fedorin e039e44592 Allow recursive types. 2019-06-05 21:36:30 -07:00
Danila Fedorin 1be78c3548 Start working on types. 2019-06-05 21:32:46 -07:00
Danila Fedorin 7bd6913ac5 Add code to create ASTs. 2019-06-04 20:45:06 -07:00
Danila Fedorin a6d381b697 Add AST and pattern classes 2019-06-04 18:13:39 -07:00
Danila Fedorin 15fda4ea97 Add some basic programs 2019-06-04 17:12:24 -07:00
Danila Fedorin fbbb4185ba Add numbers. 2019-06-04 17:06:45 -07:00
Danila Fedorin a5b0e15bfe Add expressions to the language 2019-06-04 16:54:13 -07:00
Danila Fedorin 9542e27e61 Add basic language grammar (without expressions) 2019-06-04 16:12:42 -07:00