1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 22:31:36 +03:00
Commit Graph

14314 Commits

Author SHA1 Message Date
Rob Rix
4dded01e73 Preserve callstacks through exhaustiveness checks. 2017-08-03 21:11:29 -04:00
Rob Rix
ffb01ff388 Freeze the callstacks in <|>. 2017-08-03 21:10:08 -04:00
Rob Rix
abaad4fc76 Assignment is non-strict. 2017-08-03 21:05:11 -04:00
Rob Rix
cbff2fee2d Take the first zero-error term, if any, before forcing the rest. 2017-08-03 21:04:38 -04:00
Rob Rix
42a22aad72 Amb is non-strict. 2017-08-03 21:03:42 -04:00
Rob Rix
0617502efe Order repetitions greedily. 2017-08-03 20:52:27 -04:00
Rob Rix
d5749545ce Children, projection, & source rules are unambiguous. 2017-08-03 20:51:46 -04:00
Rob Rix
e9c61048ec Committed choices are really committed. 2017-08-03 20:30:55 -04:00
Rob Rix
cb58739e48 Select terms by the minimum error counter. 2017-08-03 20:26:51 -04:00
Rob Rix
788f435b1e Define a disambiguation convenience. 2017-08-03 20:23:29 -04:00
Rob Rix
030b2967c3 Add a monotonic counter of the number of error handlers invoked. 2017-08-03 20:21:42 -04:00
Rob Rix
d1e3518732 Avoid recomputating the bodies of catch rules. 2017-08-03 20:17:59 -04:00
Rob Rix
92f2745bc3 Alternate entire children rules, not just successful ones. 2017-08-03 20:13:06 -04:00
Rob Rix
24b93e0ad6 Allow ambiguous parses with and without the error handler. 2017-08-03 20:00:45 -04:00
Rob Rix
232bf01302 Allow ambiguous matches past source, children, & projection rules. 2017-08-03 19:57:42 -04:00
Rob Rix
c4f1296a3b Simplify committed choices with backtracking. 2017-08-03 19:54:51 -04:00
Rob Rix
dc282cdcb8 Return all matches from repetitions. 2017-08-03 19:51:41 -04:00
Rob Rix
8c4fdbc390 Halt non-advancing recursion. 2017-08-03 19:50:26 -04:00
Rob Rix
766e75c3b6 Correct the tests. 2017-08-03 19:48:24 -04:00
Rob Rix
ea29092469 Define a Bifunctor instance for Amb. 2017-08-03 19:40:07 -04:00
Rob Rix
143e6ec26d Select the result with the fewest errors. 2017-08-03 19:36:51 -04:00
Rob Rix
f79e118d2e Committed choices with alternatives attempt the alternative. 2017-08-03 19:31:16 -04:00
Rob Rix
51185311af Flatten Alt rules into a non-empty list. 2017-08-03 19:25:54 -04:00
Rob Rix
c0bdb15d61 Assignment ambiguously. 2017-08-03 19:17:17 -04:00
Rob Rix
9572b96fa4 Define a MonadError instance for Amb. 2017-08-03 17:04:47 -04:00
Rob Rix
5ca85ec4ed Define a Monad instance for Amb. 2017-08-03 17:02:47 -04:00
Rob Rix
aeb4a65c61 Define an Applicative instance for Amb. 2017-08-03 17:02:28 -04:00
Rob Rix
7dd880dd18 Define a Semigroup instance over Amb. 2017-08-03 17:02:15 -04:00
Rob Rix
fb9f27a00e Define an Amb datatype. 2017-08-03 17:02:05 -04:00
Rob Rix
69892a8dc9 Stub in a module for ambiguous data. 2017-08-03 16:58:23 -04:00
Rob Rix
10f39e2fdf requireExhaustive returns a NonEmpty list of results. 2017-08-03 15:57:48 -04:00
Rob Rix
6c9d23d827 Assignment produces a NonEmpty list of results. 2017-08-03 15:54:43 -04:00
Rob Rix
ea87ae33ba Revert "Bump freer-cofreer for iterLookahead."
This reverts commit 67b2e75d0bab203de20baae2d33dcb68d8caa9b3.
2017-08-03 15:38:19 -04:00
Rob Rix
dd8e283632 Revert "Run assignments using iterLookahead."
This reverts commit 2a280ffb7dea2707e13bc518d93af9d6e0648bd0.
2017-08-03 15:38:17 -04:00
Rob Rix
d3895a504e Revert "Define a function computing the first sets for assignments."
This reverts commit 55e4c4f33ed52bf49f018dfd7251117e86c3e774.
2017-08-03 15:38:16 -04:00
Rob Rix
c656ddede7 Revert "Compute the first sets of alternations."
This reverts commit 43644d1d591ed23c434fac120df27c985148523f.
2017-08-03 15:38:15 -04:00
Rob Rix
02f847674c Revert "Compute the first sets of repetitions."
This reverts commit d2f133799ae567cb345d7c33cd1f4d08956382c4.
2017-08-03 15:38:14 -04:00
Rob Rix
45754489e2 Revert "Compute the first sets of catchError rules."
This reverts commit c5ec4e97f81acf299381c56556c92f629a57dac4.
2017-08-03 15:38:12 -04:00
Rob Rix
fa87a249ad Revert "Use the state nodes to indicate that we’ve advanced past nodes.."
This reverts commit b2485da5199703d48d11ccf6b2374712b5067ded.
2017-08-03 15:38:11 -04:00
Rob Rix
f43c2a889c Revert "Add the next set of productions to the state."
This reverts commit 450d9d6c2ef9570388162cb5814e7c1fa5cbf51f.
2017-08-03 15:38:06 -04:00
Rob Rix
1d67f1a3a3 Revert "Set the next set of productions in repetitions."
This reverts commit 30812ca0d171fcd01f821bf317d4ae01511a120b.
2017-08-03 15:38:03 -04:00
Rob Rix
48139bf998 Revert "Set the next set of productions in alternations."
This reverts commit 8925971c100f5523b9c95f862e6e8ac7e22d47b7.
2017-08-03 15:38:01 -04:00
Rob Rix
20271f918f Revert "Represent the next set of productions with an IntSet."
This reverts commit 90ab7924b2514e5f7116b38cdf67614a9c9ca96b.
2017-08-03 15:38:00 -04:00
Rob Rix
a5c918adf7 Revert "📝 stateNextSet."
This reverts commit eac40e6b7c38bac50b2fb1e06535f7060bb4f707.
2017-08-03 15:37:58 -04:00
Rob Rix
0629b136d6 Revert "Define a setter for the next set field."
This reverts commit 1fe1dbc4669fb2460a58925ac00c226172a614f2.
2017-08-03 15:37:56 -04:00
Rob Rix
291e6719db Revert "Swap the order of the setter’s params."
This reverts commit 6d7534d01c260a6427c5ea405eb7086ebd263c7c.
2017-08-03 15:37:55 -04:00
Rob Rix
baffab585b Revert "Use the setter to set & reset the next set."
This reverts commit ee844956ecaa6ab6beb597b44cdeaa1c07031866.
2017-08-03 15:37:53 -04:00
Rob Rix
084985d2a1 Revert "Only run error handlers when the next set of productions doesn’t contain the current node."
This reverts commit 1d5fa138f0febf1940bd9c1ebd421ccf3932c27b.
2017-08-03 15:37:51 -04:00
Rob Rix
b4a2ba099a Revert "Simplify how we limit error handling."
This reverts commit 86ed796bc54b073a0c9a267be267b519ba0a47ef.
2017-08-03 15:37:50 -04:00
Rob Rix
f060e11654 Revert "Consider catchError rules’ own next set."
This reverts commit 04a02be4c4da5409360c98dc723104d53b004875.
2017-08-03 15:37:48 -04:00