Joshua Warner
4e8b36adbf
Fix auto-fixing of deprecated interpolated strings
2024-07-29 17:37:55 -07:00
Joshua Warner
4f32f43048
Implement block / indent based parsing
...
... and enforce that defs can only occur in blocks (or, inside parenthesized expressions)
2024-07-27 13:34:16 -07:00
Agus Zubiaga
e5a09b5de6
Parse module params in import
2024-05-09 07:42:07 -03:00
Agus Zubiaga
08825a9e90
Add module with optional param syntax test
2024-05-09 07:27:58 -03:00
Agus Zubiaga
370013b960
Format module header with params
2024-05-09 07:27:58 -03:00
Agus Zubiaga
760ffaf68f
Report module params parse error
2024-05-09 07:27:58 -03:00
Agus Zubiaga
5b1a3c8f03
Parse params in module header
...
module {echo, read} -> [menu]
Formatter isn't implemented yet.
2024-05-09 07:27:43 -03:00
Agus Zubiaga
22716cea45
Format ingested file with optional annotation
2024-05-05 16:56:49 -03:00
Agus Zubiaga
8dedd9f03c
New app
header syntax
...
Implements the new app header syntax as discussed in Zulip [1].
app [main] {
cli: platform "../platform/main.roc",
json: "../json/main.roc"
}
Old headers still parse and are automatically upgraded to the new
syntax by the formatter.
[1] 418444862
2024-05-01 10:49:01 -03:00
Agus Zubiaga
057a18573a
New module
header
...
Implements the new `module` header syntax as described in "module and package changes" [1]:
```
module [Request, Response, req]
```
The old syntax should still work fine, and is automatically upgraded to the new one
when running `roc format`.
[1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit
2024-05-01 10:39:12 -03:00
Agus Zubiaga
a8a829aadd
Merge branch 'main' into inline-imports
2024-04-28 00:11:29 -03:00
Luke Boswell
2fe03e6c91
remove suffixed from Expr::Var
2024-04-28 08:47:08 +10:00
Agus Zubiaga
4476277a56
Merge branch 'main' into inline-imports
2024-04-22 17:45:25 -03:00
Luke Boswell
6844df6c37
fix parsing lists in tag patterns
2024-04-21 13:27:50 +10:00
Agus Zubiaga
d5a38a26db
Merge branch 'main' into inline-imports
2024-04-20 12:01:11 -03:00
Luke Boswell
0a3b9c34b3
add suffixed:u8 to Expr::Var
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
Jonathan Schear
ab4a5343a0
Update tests
2024-03-24 14:31:34 -04: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
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
4d6e641864
Parse and format inline ingested file imports
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
Richard Feldman
ff2704056e
Fix some tests
2024-01-07 00:00:37 -05:00
Richard Feldman
163bde0c41
Update tests to use $(...) interpolation
2024-01-06 15:06:30 -05:00
ptaszor3
6a6d5cebc0
resolved issue 6188 and added some tests
2023-12-10 19:57:49 +01:00
Agus Zubiaga
ebc3aab91f
Allow where
to be used as an identifier (except in type vars)
2023-09-30 01:48:10 -03:00
Folkert
ef39bad7c6
auto clippy fixes
2023-07-10 18:27:08 +02:00
Joshua Warner
654248ad47
Allow spaces before and after the colon in the packages
header section
...
Fixes #4902
2023-07-03 15:46:50 -07:00
Anton-4
85dce119c7
downgrade to 1.66.1
...
going from 1.66.1 to 1.67.1 causes a segemntation fault in a wasm test, I expect because the size of Stmt and Expr have changed with that version.
2023-04-26 20:07:46 +02:00
Luke Boswell
1590b30b19
Add a lexing-based 'highlight' mode to the parser
...
basic syntax highlighting
added more syntax highlighting coverage
add example of a markdown table with styling
move FIXED_TOKEN logic into highlight
refactor highlight, add support for backpassing
escape html from source code
fix bug with <pre> tag ordering
refactor out html from roc_parse
remove test, put highlight functionality into separate file
fix typo
2023-02-28 17:03:49 +11:00
Joshua Warner
b5f284cd78
Fix several fmt+parse bugs found by fuzzing
2023-02-19 12:37:33 -08:00
Joshua Warner
2541a09273
Fix formatting of initial newlines in collections
...
Fixes #5015
2023-02-17 09:08:50 -08:00
Joshua Warner
3fee0d3e8f
Fix a bunch of bugs in parsing/formatting found by fuzzing
2023-02-07 20:25:56 -08:00
Joshua Warner
31a4eb2bfd
Fix parsing of tuple accessors after an identifier - e.g. myIdent.2
2023-01-30 21:12:01 -08:00
Joshua Warner
a1cd114198
Add a Malformed trait, and assert that 'passing' tests don't produce a malformed result
2023-01-25 21:01:05 -08:00
Anton-4
1f2b39a521
Merge branch 'main' of github.com:roc-lang/roc into rust1_65
2023-01-23 18:27:33 +01:00
Anton-4
bbf35af8fa
Merge branch 'main' into rust1_65
...
Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2023-01-17 18:14:30 +01:00
Anton-4
a97c53d7ca
1.65 changes and clippy fixes
2023-01-17 18:09:16 +01:00
Joshua Warner
d876abb04b
Fix formatting of backpassing in a nested def with no newline
...
Fixes #4338
2023-01-16 09:31:08 -08:00
Joshua Warner
3b51d7cd13
Fix multi-backpassing in top-level defs
...
Fixes #4821
2023-01-15 10:39:21 -08:00
Joshua Warner
0b8e68f70d
Fix approximately a bajillion fmt and parsing bugs
...
(discovered by fuzzing)
There's more to come, but this seems like a good batch for now.
2023-01-13 18:20:44 -08:00
Joshua Warner
94070e8ba6
Improve parsing of scalar literals
...
* Unify parsing of string literals and scalar literals, to (e.g.) ensure escapes are handled uniformly. Notably, this makes unicode escapes valid in scalar literals.
* Add a variety of custom error messages about specific failure cases of parsing string/scalar literals. For example, if we're expecting a string (e.g. a package name in the header) and the user tried using single quotes, give a clear message about that.
* Fix formatting of unicode escapes (they previously used {}, now correctly use () to match roc strings)
2023-01-07 15:12:52 -08:00
Joshua Warner
07ebc81cba
Be more lenient with indentation in record parsing
...
... and extract a shared helper with collection_trailing_sep_e, thereby resolving some inconsistencies with normal collection parsing.
... and delete some dead code while I'm at it
2023-01-02 18:53:15 -08:00
Joshua Warner
0da50a612d
Be more lenient with required indentation in collections
...
... and also remove a bunch of now-dead errors that can't be triggered.
2023-01-01 17:49:51 -08:00