Joshua Warner
f22f96843e
Refactor ParseProblem
...
* Remove the `pos` field, which was always being assigned Position::default()
* Remove one use of this `pos`, by removing the never-used SyntaxError::ConditionFailed variant
* Adjust the other use to do what was probably intended - which is to say, pointing to the beginning of the def with the error
* Rename to FileError, reuse `SourceError` as an inner field, to avoid duplicating the `bytes`
2022-01-03 20:10:50 -08:00
Joshua Warner
650c29de3c
Change LineColumn::column to u32 to avoid overflow, and remove LineTooLong error
2022-01-02 21:50:42 -08:00
Joshua Warner
9557c234cb
Update recently added tests
2022-01-01 18:20:57 -08:00
Joshua Warner
8092f31a29
fmt
2022-01-01 18:20:05 -08:00
Joshua Warner
f969c7c6d0
Fixup rebase errors
2022-01-01 18:20:05 -08:00
Joshua Warner
5c1084c453
Introduce SourceError to represent an error + original source
2022-01-01 18:20:05 -08:00
Joshua Warner
8d6eb178b1
Fix multiline pattern heuristic
2022-01-01 18:20:05 -08:00
Joshua Warner
e97e5c3bd9
Fixup type annotations
2022-01-01 18:20:05 -08:00
Joshua Warner
cb8cf44596
fmt
2022-01-01 18:20:05 -08:00
Joshua Warner
70156b0a90
Simplify advancing
2022-01-01 18:20:05 -08:00
Joshua Warner
2901549422
Assert new column calculation is correct
2022-01-01 18:20:05 -08:00
Joshua Warner
422cdea112
Track line start separately
2022-01-01 18:20:05 -08:00
Joshua Warner
5ac3394a73
Remove pos tracking
2022-01-01 18:20:05 -08:00
Joshua Warner
08a33aab1b
Remove bytes tracking
2022-01-01 18:20:05 -08:00
Joshua Warner
beb0629e05
Track state in whitespace
2022-01-01 18:20:05 -08:00
Joshua Warner
a13c474f6b
Remove line tracking in parser
2022-01-01 18:20:05 -08:00
Joshua Warner
8e1241adea
Remove line/column fields
2022-01-01 18:20:05 -08:00
Joshua Warner
eb35e9914f
Fix tests
2022-01-01 18:20:05 -08:00
Joshua Warner
4b04ec6bbc
Add Position::offset, and recompute line/column info based on source
2022-01-01 18:20:05 -08:00
Joshua Warner
443d738f9b
Make Position::{line, column} fields private
2022-01-01 18:20:05 -08:00
Joshua Warner
721233f9c8
More incremental changes
2022-01-01 18:20:05 -08:00
Joshua Warner
1b257da356
Make State::xyzlcol a LineColumn, and change everything wanting a Position to use State::pos() instead
2022-01-01 18:20:05 -08:00
Joshua Warner
d2dcb462c7
Rename State::pos -> xyzlcol, temporarily
2022-01-01 18:20:05 -08:00
Joshua Warner
bd7b1e5013
Make Loc::new take Positions
2022-01-01 18:20:05 -08:00
ayazhafiz
0c81302d29
Admit tag destructuring in definitions
2021-12-30 19:50:50 -06:00
Folkert
b924f7e329
use new header type in a spot we missed
2021-12-27 23:58:56 +01:00
Folkert de Vries
bb935948aa
Merge pull request #2276 from rtfeldman/i/2265
...
Parse "as" aliases into tag/args rather than arbitrary annotations
2021-12-27 20:56:48 +01:00
ayazhafiz
b3ddfa7515
Parse destructured tag annotations as annotations rather than aliases
...
Closes #178
2021-12-26 16:11:29 -06:00
ayazhafiz
0b6d3d2c55
Promote parse tests
2021-12-26 11:35:10 -06:00
ayazhafiz
b66543dd95
into_iter -> iter
2021-12-26 09:55:27 -06:00
ayazhafiz
966198a6e7
Coalesce inline and normal alias headers
...
Unifies `As` annotations and `Alias` defs to use a common struct for
defining alias header information, i.e. the name and type variables of
the alias.
2021-12-26 09:37:56 -06:00
ayazhafiz
597a1cef3b
Attach location to alias header name
2021-12-26 09:17:27 -06:00
ayazhafiz
11da888c07
Pull out alias header as its own struct
2021-12-26 09:07:12 -06:00
ayazhafiz
507f219d28
Satiate clippy
2021-12-26 08:44:10 -06:00
ayazhafiz
2cd5bf8c03
Parse "as" aliases into tag/args rather than arbitrary annotations
2021-12-26 08:44:09 -06:00
Folkert de Vries
4ddb8e10fb
Merge pull request #2272 from rtfeldman/joshuawarner32/parser-benchmark
...
Add simple benchmark for the parser: parse false-interpreter
2021-12-26 14:38:07 +01:00
Joshua Warner
a0cf5d0e70
Add simple benchmark for the parser: parse false-interpreter
2021-12-24 11:54:42 -08:00
Joshua Warner
8b58d5cbc7
Switch to always encoding package names / paths as strings
...
This will simplify parsing and make it possible to have a uniform lexer for the language. Previously unquoted package names were allowed to include '-'s, which aren't valid identifiers.
In the future, we'll distinguish local paths from packages in the package-manager by looking for a ".roc" suffix, which should only be present in local paths.
2021-12-23 20:11:14 -08:00
ayazhafiz
6d9a5b6b0d
Actually add the test files
2021-12-23 19:39:54 -06:00
ayazhafiz
46b4a3e6d5
Add test for nested if parsing
...
Closes #169
It seems the above issue was resolved a long time ago but there wasn't a
test for it
2021-12-23 19:39:54 -06:00
Joshua Warner
090a8923c5
Improve Debug format of Position
2021-12-22 21:09:02 -08:00
Joshua Warner
22e2545fd6
format
2021-12-22 20:46:42 -08:00
Joshua Warner
f170509bf1
rename col -> column
2021-12-22 20:37:40 -08:00
Joshua Warner
4d7070ce3b
Always combine line,column into Position
2021-12-22 20:32:46 -08:00
Joshua Warner
f19220473a
Rename Located -> Loc
2021-12-22 19:18:22 -08:00
Richard Feldman
3ffe5768e1
Merge pull request #2239 from rtfeldman/joshuawarner32/pipeline-format-fail
...
Fix formatting of pipelined call exprs
2021-12-20 15:46:23 -05:00
Richard Feldman
5aa67d4244
Merge pull request #2231 from rtfeldman/joshuawarner32/record_func_type_decl
...
Allow function types in records
2021-12-20 11:45:27 -05:00
Joshua Warner
61cdbd1531
Fix formatting of pipelined call exprs
2021-12-18 16:36:51 -08:00
Joshua Warner
96e8916594
Refactor BadOperator to take a &str rather than &[u8]
2021-12-18 14:42:48 -08:00
Joshua Warner
efa54287f1
Return the original error if there's an unexpected trailing comma
2021-12-18 13:26:59 -08:00