Commit graph

29 commits

Author SHA1 Message Date
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
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
Richard Feldman
d8d517d6f9
Support generating docs for packages too 2022-12-24 22:32:14 -05:00
Richard Feldman
e549456668
Store exposed module IDs in file loading state 2022-12-24 22:32:13 -05:00
Richard Feldman
09764be7c3
Go back to PackageName 2022-12-18 10:11:19 -05:00
Richard Feldman
3e5b62db1a
Move exposes into HeaderType 2022-12-13 06:59:25 -05:00
Richard Feldman
7512a964f7
Add HeaderType::Package 2022-12-13 06:44:02 -05:00
Richard Feldman
ec9cf4efe2
Merge branch 'to' into packages 2022-12-12 01:15:34 -05:00
Richard Feldman
8a9e152a5b
Rename PackageName to PackagePath 2022-12-12 00:41:55 -05:00
Richard Feldman
3227f95d45
Merge branch 'refactor-platform-info' into packages 2022-12-11 06:17:29 -05:00
Richard Feldman
222e0193a3
Don't give packages names 2022-12-10 01:43:53 -05:00
Richard Feldman
29182d8292
Move platform_main_type into provides 2022-12-09 14:19:07 -05:00
Richard Feldman
97332e4af1
Move ModuleNameEnum into HeaderType 2022-12-08 15:31:43 -05:00
Richard Feldman
8b463686bc
Propagate multiple entrypoints to alias analysis 2022-12-08 15:31:42 -05:00
Richard Feldman
87c8702c89
Rename HeaderFor to HeaderType 2022-12-08 15:31:42 -05:00
Richard Feldman
12a7b51eb4
Move some logic into HeaderFor 2022-12-08 15:31:42 -05:00
Richard Feldman
24f2fcc28a
Remove an unnecessary qualifier 2022-12-08 15:31:41 -05:00
Richard Feldman
2b1deff379
Revert "Merge PlatformHeaderInfo into revised HeaderInfo"
This reverts commit 6115781b9d.
2022-12-06 14:06:05 -05:00
Richard Feldman
579feeeadd
Revert "WIP try combining PlatformHeaderInfo & HeaderInfo"
This reverts commit 100044295f.
2022-12-06 14:06:00 -05:00
Richard Feldman
100044295f
WIP try combining PlatformHeaderInfo & HeaderInfo 2022-12-06 14:05:29 -05:00
Richard Feldman
6115781b9d
Merge PlatformHeaderInfo into revised HeaderInfo 2022-12-04 06:36:04 -05:00
Richard Feldman
f20c7db029
Load all packages, not just the platform 2022-12-04 06:31:49 -05:00
Richard Feldman
8a5ddaab2f
Drop imports from package header
That doesn't actually make sense!
2022-12-04 06:26:44 -05:00
Richard Feldman
da595a86b0
Parse package module header 2022-12-04 06:26:44 -05:00
Joshua Warner
2b91af02df
Introduce record! combinator
... and refactor header parser to fully use combinators, in support of future combinator-based superpowers
2022-11-28 20:25:55 -08:00
Joshua Warner
2d9aba2242
Refactor parser methods to not return State as part of ParseError
As previously discovered with #4464, it's easy to accidentally mis-use the State value returned on the Err path.

There were mixed assumptions about what that State represents: (1) the State where the error occurred, or (2) the State at the beginning of the thing we were just parsing.

I fixed this up to always mean (2) - at which point we don't actually need to return the State at all - so it's impossible for further discrepency to creep in.

I also took the liberty to refactor a few more methods to be purely combinator-based, rather than calling `parse` directly.
2022-11-18 19:52:23 -05:00
Folkert
66a1ba00eb
1.65 clippy fixes 2022-11-03 16:20:37 +01:00
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
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
Renamed from compiler/parse/src/header.rs (Browse further)