Commit Graph

1245 Commits

Author SHA1 Message Date
greg 1d5e5aa735 Some type renaming in builtins
Builtins will remain entirely separate from the actual type
representation, whatever that ends up being
2018-08-19 22:00:20 -07:00
greg 2c298c7247 Add warning for undefined operator
In practice this will probably always not typecheck, but it's a valid
parse
2018-08-19 21:40:30 -07:00
greg f00fee0e37 Rename StateStack -> ScopeStack 2018-08-19 21:31:45 -07:00
greg 0d13b5e3bc Preliminary support for binops in if-discriminators
The BNF grammar is a bit more liberal than any successfully-compiled
schala program should be, in that it allows things like `if x < is
pattern`. It's okay if that parses successfully and then is an error at
typechecking.
2018-08-19 21:25:07 -07:00
greg 98f597f00a Implement comparison operators correctly 2018-08-19 21:11:43 -07:00
greg fb71881409 Refactor binop parsing 2018-08-19 20:33:50 -07:00
greg d1c3b4a81b Starting on halfexprs / binops 2018-08-19 18:44:54 -07:00
greg f9181b5786 use expr_or_block where appropriate 2018-08-19 15:58:31 -07:00
greg 0e914cf057 Error message for parsing guards 2018-08-19 15:12:34 -07:00
greg 04ea8c5ebc More unused code removal 2018-08-19 15:06:01 -07:00
greg 492ef4ae19 Clear up some unused code to reduce compile noise
And add some notes to the README
2018-08-19 15:03:41 -07:00
greg 75a7a4499d Added some more cases to the match handling 2018-08-19 10:53:43 -07:00
greg 99e6668c9a Add rusty-tags to .gitignore 2018-08-18 23:28:06 -07:00
greg 1d38a07cf8 Add timing debugging print 2018-08-16 01:47:21 -07:00
greg 0fa844bcf9 Print timing in debug info 2018-08-16 01:43:42 -07:00
greg 97bee58fbe More work with guards 2018-08-15 22:34:04 -07:00
greg 34c2b43371 More work on if matching 2018-08-15 18:32:44 -07:00
greg 88b617de52 More atlernatives work 2018-08-15 11:44:55 -07:00
greg 482674b19a Start on expr_or_block
WIP doesn't work yet
2018-08-15 09:34:00 -07:00
greg a72b387ceb Remove some more dead code warnings 2018-08-14 23:19:27 -07:00
greg 864e932e9f Getting rid of more unused items 2018-08-14 23:09:11 -07:00
greg d7e73be44c Getting rid of some unused warnings 2018-08-14 23:07:00 -07:00
greg 6a548c9086 Keep track of durations of each pipeline stage 2018-08-14 22:56:22 -07:00
greg 0c0690e86e Provide error message here 2018-08-14 21:53:57 -07:00
greg 6d18f80185 Use Result in test 2018-08-14 21:46:48 -07:00
greg 6825de3916 new_frame -> new_scope 2018-08-14 21:45:45 -07:00
greg 1b78fbff82 Tests for basic pattern matching 2018-08-14 21:39:33 -07:00
greg 897c1181a9 Basic pattern matching working 2018-08-14 21:17:43 -07:00
greg 6833bc4f00 Start on CaseMatch eval 2018-08-14 12:43:06 -07:00
greg f2ded78776 ReducedAST: Match -> CaseMatch
makes it easier to grep for
2018-08-14 12:37:18 -07:00
greg 9debdd8d66 Primitive tuple 2018-08-14 02:03:05 -07:00
greg 8067c862f3 Switch out types for evaluator 2018-08-14 00:11:13 -07:00
greg f9c2fc3f9d Make code more concise 2018-08-07 17:09:53 -07:00
greg 5ead1e5d44 NewConstructor -> Constructor 2018-08-05 19:14:02 -07:00
greg 348a6f7c76 More work on pattern-matching
I think I need to entirely change the types in the evaluator.
ReducedAST should only care about NewConstructor (which I gotta rename),
and the evaluator is the only place that an implementation of a
primitive constructed type should live (see Peyton-Jones implementing a
functional langauge p. 70)
2018-08-05 19:11:42 -07:00
greg 5f336ec1a9 Add lookup_by_name to symbol table 2018-08-05 18:19:48 -07:00
greg da59fae0d3 More work on pattern-matching 2018-08-05 18:01:42 -07:00
greg 5b5689accf Changing representation of primitive objects 2018-08-05 17:15:58 -07:00
greg 32acf89814 New Constructor 2018-08-05 16:04:52 -07:00
greg c637a922a9 Start implementing constructors/matches
as per Implementing Functional Programming Languages by Peyton-Jones
2018-08-05 14:23:08 -07:00
greg 42d0aba21c Add index of variants to symbol table
Also new prelude type, just for testing
2018-08-05 13:59:13 -07:00
greg 7548bdbb78 Add note 2018-07-31 01:59:49 -07:00
greg bc6d4d19b5 reduced ast match 2018-07-26 00:52:46 -07:00
greg a2b1b0f953 Pattern-matching in reduced AST 2018-07-26 00:52:46 -07:00
greg 75bf4b5697 Fill out variants to be reduced 2018-07-26 00:52:46 -07:00
greg 35f5a9623a Check out cranelift 2018-07-26 00:52:46 -07:00
greg 98e812968b Fix parsing additional options 2018-07-26 00:52:46 -07:00
greg 250c486143 Fix derive code 2018-07-26 00:52:46 -07:00
greg 38eb065511 Broken proc macro custom derive code 2018-07-26 00:52:46 -07:00
greg 9e24c3b336 update rocket version 2018-07-26 00:52:46 -07:00