Commit graph

174 commits

Author SHA1 Message Date
Luke Boswell
c32fa5b600
support optional suffied last def 2024-04-14 13:45:06 +10:00
Luke Boswell
b13adf6898
more flexible statement parsing 2024-04-14 13:45:06 +10:00
Luke Boswell
5bb44fcce5
most tests passing 2024-04-14 13:45:05 +10:00
Luke Boswell
8b9e08bd76
WIP try simplification 2024-04-14 13:45:05 +10:00
Luke Boswell
5a91a4f78a
WIP support nested suffixes 2024-04-14 13:45:03 +10:00
Luke Boswell
d08a51b134
cargo fmt 2024-04-14 13:45:02 +10:00
Luke Boswell
69a3a3c477
cleanup 2024-04-14 13:45:02 +10:00
Luke Boswell
a28cd251ab
spelling 2024-04-14 13:45:01 +10:00
Luke Boswell
5ae188c08f
cleanup 2024-04-14 13:45:01 +10:00
Luke Boswell
b8ec53738a
fix desugar for suffixed nodes 2024-04-14 13:45:01 +10:00
Luke Boswell
fac52f7408
parse statements correctly 2024-04-14 13:45:01 +10:00
Luke Boswell
ba22527e29
WIP parse statements correctly 2024-04-14 13:45:01 +10:00
Luke Boswell
997284e113
parse suffixed statements as defs 2024-04-14 13:45:00 +10:00
Luke Boswell
3c3e523b45
add suffixed to Identifer and QualifiedIdentifier 2024-04-14 13:45:00 +10:00
Luke Boswell
a418bf4fb8
add is_loc_expr_suffixed helper 2024-04-14 13:45:00 +10:00
Luke Boswell
73b60113ff
fix for suffixed without arguments 2024-04-14 13:45:00 +10:00
Luke Boswell
56d91ce74c
support multiline suffixed statements 2024-04-14 13:45:00 +10:00
Luke Boswell
42fdcb7ff1
Make unit assignment optional for suffixed defs 2024-04-14 13:44:59 +10:00
Luke Boswell
ca01913ab3
add EExpr error for unexpected comma 2024-04-02 20:48:13 +11:00
Anton-4
30b5943b54
Merge pull request #6548 from roboteng/parser-docs
Parser docs examples
2024-03-26 19:35:39 +01:00
Anton-4
59ab438c1e
misc improvements 2024-03-26 16:38:09 +01:00
Luke Boswell
370ac1e6b8
move suffixed parsing into chomp_identifier_chain 2024-03-22 19:22:05 +11:00
Luke Boswell
e2557067c8
add nested snapshot for suffixed expr 2024-03-15 14:40:09 +11:00
Luke Boswell
8bbbd768ec
add snapshot test for suffixed expr 2024-03-15 14:39:21 +11:00
Richard Feldman
9bc0ab79af
Parse Expr::Suffixed 2024-03-15 14:39:14 +11:00
Richard Feldman
88042c2578
Rename has variable to implements 2024-03-15 14:39:04 +11:00
Agus Zubiaga
11e0202eb9
Parse inline imports and ingested files at the expression level
```
numbers =
    import "numbers.json" as numbersJson : Str
    import json.Decode exposing [decode, list, int]

    numbersJson
    |> decode (list int)
    |> Result.withDefault []
```
2024-01-20 08:35:50 -03:00
Agus Zubiaga
2d93f0c3f1
Extract ModuleImport/IngestedFileImport into structs for reuse 2024-01-20 08:35:50 -03:00
Agus Zubiaga
4d6e641864
Parse and format inline ingested file imports 2024-01-20 08:35:50 -03:00
Agus Zubiaga
42e755677c
Simply import parsing and formatting by using header::KeywordItem 2024-01-20 08:35:50 -03:00
Agus Zubiaga
65ce811587
Parse and format import package shorthand
The original proposal [1] suggested dropping the package shorthand,
but we later decided to keep it [2] to improve UX.

[1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit?usp=sharing
[2] 385104011
2024-01-20 08:35:50 -03:00
Agus Zubiaga
c56091ee3e
Module Params' proposal import syntax
I previously implemented the syntax in "Proposal: Module and Package Changes" [1]:

```
import [map, map2] from JsonDecode as JD
```

However, we decided [2] to use the one that appears in "Proposal: Module Params" [3]:

```
import JsonDecode as JD exposing [map, map2]
```

The new implementation also now supports comments and newlines between all the tokens.

[1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit
[2] 405410612
[3] https://docs.google.com/document/d/110MwQi7Dpo1Y69ECFXyyvDWzF4OYv1BLojIm08qDTvg/edit
2024-01-20 08:35:50 -03:00
Agus Zubiaga
5cd084b73c
Parse and format inline import with exposed names 2024-01-20 08:35:50 -03:00
Agus Zubiaga
76d799ea13
Parse and format aliases in import defs 2024-01-20 08:35:50 -03:00
Agus Zubiaga
933fde77a0
Parse and format top-level import defs with no alias or exposed members 2024-01-20 08:35:50 -03:00
Brendan Hansknecht
5e8974177c
avoid bloating parse expr size 2023-12-02 21:18:32 -08:00
Brendan Hansknecht
3966d63e2f
add src and location to dbg 2023-12-02 21:18:31 -08:00
Brendan Hansknecht
b7f72eff86
add basic Dbg desugaring and LowLevelDbg 2023-11-29 21:05:48 -08:00
jecaro
55befee0b0
Dont swallow bad input while parsing spaces
Fix #5939
2023-11-21 19:47:17 +01:00
Anton-4
954f687666
minor fixes 2023-08-11 16:14:33 +02:00
Bryce Miller
afa5aaba94
has -> implements 2023-06-10 13:30:54 -04:00
Bryce Miller
e514d0cb83
Define and use IMPLEMENTS const in roc_parse::keyword 2023-05-29 07:21:27 -04:00
Bryce Miller
76c54c2e7a
loc_has_parser -> loc_implements_parser 2023-05-26 23:09:22 -04:00
Bryce Miller
b05befd770
ident: "has" -> ident: "implements" 2023-05-24 10:38:06 -04:00
Bryce Miller
46cb45f717
loc_has -> loc_implements 2023-05-20 19:24:08 -04:00
Bryce Miller
4b90948fcf
ast::HasAbilities -> ast::ImplementsAbilities 2023-05-20 19:13:01 -04:00
Bryce Miller
64c34a5c6d
ast::Has -> ast::Implements 2023-05-20 08:12:20 -04:00
Agustin Zubiaga
d1feb00170
Track spaces between : and <- in record builders 2023-05-17 11:49:06 -03:00
Agustin Zubiaga
731cd4257d
Record Builder colon arrow syntax 2023-05-16 22:44:55 -03:00
Agustin Zubiaga
232f5fd84c Take self by value in RecordField::to_* fns 2023-05-13 21:21:12 -03:00