Commit Graph

50 Commits

Author SHA1 Message Date
KtorZ bc785673b2
Fix compilation errors for the newly introduce test & add type inference.
Tests are basically functions for which the return type should unify with bool. In principle, the type checker could also check that a test function has no arguments but, a test function with arguments wouldn't parse in the first place; feels a bit hacky but it works when considering the pipeline as a whole.

  Note that the code generation is still to be done.
2022-12-08 19:24:20 -05:00
KtorZ ea48747825
Extend parser for 'test' keyword. 2022-12-08 19:24:20 -05:00
Kasey White 3f47a1f4b8 fix: constr issue
- also fixed constant parsing
- added new cbor flag to eval

Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 22:55:57 -05:00
rvcas 7875af7d35 feat: better errors for incorrect contructor making 2022-12-05 18:11:04 -05:00
rvcas 7e6dc978a1 feat: commit latest build assets for sample 2022-12-05 14:18:44 -05:00
rvcas 85f839abe4 feat: support punning in record updates 2022-12-04 21:12:29 -05:00
rvcas 9ebc836b89 feat: handle punning in a non-ambiguous way 2022-12-04 21:12:29 -05:00
rvcas 391849bf37 feat: parser improvements
- record creation with punning
- disambiguate if condition from record creation with punning
- split parser tests up into many smaller ones
2022-12-04 21:12:29 -05:00
rvcas fedafed845 feat: add module constants 2022-12-01 15:28:15 -05:00
rvcas 34c8a58391 feat: complete language tour 2022-11-30 15:35:55 -05:00
rvcas 0823b78bf8 feat: some new features
- tuples `#(Int, Int)`
- `trace` and `trace("text")`
2022-11-28 22:33:53 -05:00
rvcas ba8855add9 fix: implicit discard in list patterns 2022-11-24 10:06:54 -05:00
rvcas 27e0286d01 fix: most places should allow trailing comma 2022-11-23 21:09:06 -05:00
rvcas 34d7a28351 feat: add check keyword and new assignment syntax 2022-11-23 21:09:06 -05:00
rvcas 1de2640a48 feat: list patterns 2022-11-23 17:57:02 -05:00
rvcas 89153a4d82 allow single var patterns to double as a label in records 2022-11-17 12:56:03 -05:00
rvcas 72bf27d467
fix: better constructor pattern parsing 2022-11-16 21:30:43 -05:00
rvcas f7313ee61a feat: some parsing for comments 2022-11-16 14:28:02 -05:00
rvcas 00e5f99304 feat: pull comment tokens out of the Iter before parsing 2022-11-16 14:28:02 -05:00
Kasey White ffa78e4c30 work out some initial direction for code gen 2022-11-08 22:21:07 -05:00
rvcas 3a653b6624
chore: all dead code till we sort out doc comments 2022-11-05 18:20:23 -04:00
rvcas 9d14acbe0a
fix: when formatting and add some methods to Project::Error 2022-11-05 16:23:46 -04:00
rvcas cba7a6f46e
feat: bring over the formatter from gleam 2022-11-05 15:35:11 -04:00
rvcas 59d7b54473 feat: start integrating miette 2022-10-11 14:34:27 -04:00
rvcas 6de41e64be feat: add simple check command 2022-10-04 17:09:43 -04:00
rvcas 6ef8ba5c35 feat: if expressions 2022-10-04 16:32:32 -04:00
rvcas dba82d544d feat: record update syntax 2022-10-04 16:32:32 -04:00
rvcas 3ad915cafd fix: list spread allowing no comma before spread 2022-10-04 16:32:32 -04:00
rvcas fb1ff759e1 feat: function calls and captures 2022-10-04 16:32:32 -04:00
rvcas 1b61f4b25b feat: field access 2022-10-04 16:32:32 -04:00
rvcas 512431d27f feat: anonymous functions 2022-10-04 16:32:32 -04:00
rvcas 695ac409b7 feat: assert and boolean negation 2022-10-04 16:32:32 -04:00
rvcas c7c11d1bd5 feat: finish when clauses 2022-10-04 16:32:32 -04:00
Kasey White 722dc4b477 work on adding when clause 2022-10-04 16:32:32 -04:00
Kasey White 118a5ac54e add some block parsing and a test (incomplete) 2022-10-04 16:32:32 -04:00
rvcas c5450d37d5 chore: move lang tests to a submodule 2022-10-04 16:32:32 -04:00
rvcas 43b147a9e0 feat: lists and flatten sequences 2022-10-04 16:32:32 -04:00
rvcas 3208dab718 feat: finish parsing let bindings 2022-10-04 16:32:32 -04:00
Kasey White 3c5039134f attempt to parse let 2022-10-04 16:32:32 -04:00
Kasey White 60359ec9b0 add pipeline and logical ops to expr parsing
Co-authored-by: rvcas <x@rvcas.dev>
2022-10-04 16:32:32 -04:00
rvcas fff38e30d2 test: add more stuff to get successfully parsing 2022-10-04 16:32:32 -04:00
rvcas 119a6f1e77
feat: use pretty assert 2022-09-26 17:04:54 -04:00
rvcas 4f26957806
feat: some expr with precendence parsing 2022-09-26 11:14:42 -04:00
rvcas d54aaff5de
feat: fill in expr unit parser a bit 2022-09-07 17:53:07 -04:00
rvcas 59a9bac9b5
feat: finish expr_seq_parser 2022-09-07 17:52:49 -04:00
rvcas 3bc507c9e8
feat: beginnings of expr parsing 2022-09-07 17:52:49 -04:00
rvcas d87bb17a27
feat: type aliases and some fn parsing 2022-09-07 17:52:49 -04:00
rvcas fbc9b27efe
feat: parse custom types 2022-09-07 17:52:49 -04:00
rvcas 1d1a6fc404
feat: parse imports 2022-09-07 17:52:49 -04:00
rvcas 1d6809661c
feat: lexer 2022-09-07 17:52:49 -04:00