Commit graph

167 commits

Author SHA1 Message Date
Joshua Warner
07be8ec000
Refactor Parser trait to pass min_indent
This removes the need to explicitly pass thru min_indent when using the parser combinators.

My ultimate goal here is to evolve the current parser closer toward a purely combinator-based parser,
at which point we can more easily transition smoothly to a formal(ish) grammar, or expand the meanings of combinators
to include things like:
* Incremental (re)parsing
* Unified parsing and formatting code
* Better error recovery
* Using the main parser directly for syntax highlighting
2022-10-31 13:31:47 -07:00
Richard Feldman
0c8f6a0a72
Fix annotated defs in repl 2022-10-30 13:34:38 -04:00
Richard Feldman
e38ae00c65
Expose macros for joining up AnnotatedBody nodes 2022-10-30 12:36:10 -04:00
Richard Feldman
99f4d99771
Revert "Attempt a refactor, but run into lifetime issues"
This reverts commit 4a9b44aaaf.
2022-10-30 07:22:32 -04:00
Richard Feldman
4a9b44aaaf
Attempt a refactor, but run into lifetime issues 2022-10-30 07:22:31 -04:00
Richard Feldman
e0e25a48bf
Add comment_str 2022-10-30 07:17:10 -04:00
Richard Feldman
9f498add60
Reorganize some REPL modules 2022-10-27 18:47:27 -04:00
Richard Feldman
67a8bbd6a2
Merge pull request #4414 from roc-lang/i4412
Parse and format list patterns
2022-10-26 19:49:12 -07:00
Richard Feldman
c894d522c3
Drop some commented-out lines
Signed-off-by: Richard Feldman <oss@rtfeldman.com>
2022-10-26 22:48:37 -04:00
Ayaz Hafiz
89867a4dc5
Add parsing error reporting for list patterns 2022-10-26 18:05:52 -05:00
Ayaz Hafiz
4d35ab9957
Parse list patterns 2022-10-26 17:03:22 -05:00
Richard Feldman
40498d71c3
clip clap clorp 2022-10-26 16:11:30 -04:00
Richard Feldman
c748d88c0d
Fix typo in docs 2022-10-26 13:44:13 -04:00
Richard Feldman
785e0d5ef6
Revise things to be more concise 2022-10-26 13:44:13 -04:00
Richard Feldman
9b19ed8b3b
Refactor out Next 2022-10-26 13:44:12 -04:00
Richard Feldman
a1104ce5fa
Refactor out Next::Fixup 2022-10-26 13:44:12 -04:00
Richard Feldman
107f37219f
Document Fixup 2022-10-26 13:44:12 -04:00
Richard Feldman
131c4b2bb1
Extract parse_single_def 2022-10-26 13:44:12 -04:00
Ayaz Hafiz
231a72f2ee
Insert first ability correctly in the parser 2022-10-24 13:56:07 -05:00
Ayaz Hafiz
97dbac1631
Add tests for multiple abilities bound to a variable 2022-10-24 13:56:07 -05:00
Ayaz Hafiz
548a235c25
Support parsing multiple abilities in a clause 2022-10-24 13:56:06 -05:00
Joshua Warner
e39a385f5f
Allow parsing when cases with python-like indentation 2022-10-18 19:13:20 -07:00
Joshua Warner
4d4c0d9483 Don't allow closures to gobble unindented expr lines following them 2022-10-08 11:05:05 -07:00
Joshua Warner
ab4e03b05d Rename Lambda -> Closure for consistency 2022-10-08 11:05:05 -07:00
Ayaz Hafiz
f6c21cc933
Correctly format abilities with comments 2022-10-04 10:03:51 -05:00
Ayaz Hafiz
e1aadbc6ef
Add clone comment 2022-10-02 21:41:10 -05:00
Ayaz Hafiz
a6cf21dcf9
Revert "Lints"
This reverts commit f7e85b5295a44217bde9b6b83d188d84ee863d0c.
2022-10-02 21:39:48 -05:00
Ayaz Hafiz
f3689b1146
Fmt 2022-10-02 21:38:04 -05:00
Ayaz Hafiz
852fd0a127
Lints 2022-10-02 21:38:04 -05:00
Ayaz Hafiz
0cc9ea4b05
Detect and report module names that don't match what they are used as
Prior to this commit, if you had a module structure like

```
| - A.roc
| - Dep
    | - B.roc
```

where `B.roc` was defined as

```
interface B exposes [] imports []
```

and `A.roc` was defined as

```
interface A exposes [] imports [Dep.B]
```

The compiler would hang on you. The reason is that even though we expect
`B` to be named `Dep.B` relative to `A`, that would not be enforced.

With this patch, we now enforce such naming schemes - a module must have
the namespaced name it is referenced by. Currently, we determine the
expected namespaced name by looking at how transitive dependencies of the
root module reference the module. In the future, once we have a package
ecosystem and a solid idea of "package roots", we can use the "package
root" to determine how a module should be named.

Closes #4094
2022-10-02 21:38:03 -05:00
Ayaz Hafiz
c67be21636
Check that module names correspond to the paths they are defined in
Closes #3440
Closes #4050
2022-10-02 21:38:02 -05:00
Richard Feldman
3ca9202e3b
Merge pull request #3834 from roc-lang/rust-1.63-clippy
rust 1.63 clippy
2022-08-27 21:15:36 -04:00
Folkert
a22e04361c
Merge remote-tracking branch 'origin/main' into expect-fx-codegen 2022-08-23 16:28:21 +02:00
Folkert
6aa168ee0b
more various clippy fixes 2022-08-21 16:43:58 +02:00
Folkert
3aa4ebb02f
get expect-fx to actually run 2022-08-12 23:03:01 +02:00
Richard Feldman
97e2900bf5
s/rtfeldman/roc-lang/g in links to GitHub repos 2022-08-12 15:24:09 -04:00
Folkert
9a352440de
parse expect-fx 2022-08-09 14:19:12 +02:00
Folkert
bcbc8b4d50
basic canonicalization 2022-08-09 13:59:24 +02:00
Folkert de Vries
784d855cd9 windows line feed in when parsing 2022-08-01 19:24:02 +02:00
Richard Feldman
fa5bd442f8
Merge pull request #3635 from rtfeldman/joshuawarner32/multiline
Strip indents and the first/last newline from multiline strings
2022-07-26 22:09:58 -04:00
Joshua Warner
a579edc6f0 Fix error reporting location for unterminated strings and add test for insufficiently indented multiline strings 2022-07-25 19:07:58 -07:00
Folkert de Vries
50021a65cf
Merge pull request #3615 from rtfeldman/3198
Support parsing opaque destructures as first item in nested body
2022-07-25 19:32:57 +02:00
Joshua Warner
92a9570384 Remove indents from multiline strings 2022-07-25 06:52:08 -07:00
Richard Feldman
a1a3eff278
Support when after binop 2022-07-24 18:25:02 -04:00
Richard Feldman
0d2141d8b8
Separate out parse_loc_term_or_underscore_or_if 2022-07-24 18:15:18 -04:00
Ayaz Hafiz
fbd70c4031
Parse assignment patterns with underscores 2022-07-24 16:10:01 -04:00
Ayaz Hafiz
8f7bae3617
Simplify boolean expr 2022-07-22 18:21:34 -04:00
Ayaz Hafiz
b04764bdd6
Support parsing opaque destructures as first item in nested body
Closes #3198
2022-07-22 16:35:02 -04:00
Folkert
2caf58dfd2
show preceding comment in test panic messages 2022-07-21 10:42:58 -04:00
Folkert
7597d11b59
parse the region of the preceding comment for an expect 2022-07-21 10:42:57 -04:00