1
1
mirror of https://github.com/github/semantic.git synced 2024-12-24 15:35:14 +03:00
Commit Graph

8726 Commits

Author SHA1 Message Date
Rob Rix
54c6095da4 Define a GAlign instance for non-empty lists. 2017-08-14 16:38:05 -04:00
Rob Rix
9e2444d71d Define a post-contextualizing syntax combinator. 2017-08-14 16:26:01 -04:00
Rob Rix
e31c5eddb8 Define contextualize in terms of makeTerm1. 2017-08-14 16:19:11 -04:00
Timothy Clem
e5e221aa69 Try to get TH to run on all build nodes 2017-08-14 13:19:01 -07:00
Timothy Clem
5aa28af55b Bump for mac build 2017-08-14 13:15:44 -07:00
Rob Rix
f6c77b4daa Simplify assignment' a little further. 2017-08-14 16:12:31 -04:00
Rob Rix
e59f148a57 Simplify assignment'. 2017-08-14 16:10:29 -04:00
Rob Rix
ba3ef97260 Simplify binaryOperator. 2017-08-14 16:02:46 -04:00
Rob Rix
f4ff0a6f64 Correct the error message. 2017-08-14 15:58:51 -04:00
Rob Rix
212ce544da Simplify comparisonOperator. 2017-08-14 15:58:13 -04:00
Timothy Clem
93b337af4c Merge remote-tracking branch 'origin/master' into ruby-assignment-fixes 2017-08-14 12:50:45 -07:00
Rob Rix
d7e3092192 Split out makeTerm1 & makeTerm1'. 2017-08-14 15:50:01 -04:00
Rob Rix
d657570e3e Define a makeTerm-alike which constructs a Term from non-empty foldable syntax. 2017-08-14 15:45:30 -04:00
Rob Rix
d74d67b803 Generalize infixChoice to any Alternative. 2017-08-14 15:33:42 -04:00
Rob Rix
a9dd39e149 Pass constructor assignments to infixChoice directly. 2017-08-14 15:32:58 -04:00
Rob Rix
4b3668f222 Define an infix choice combinator. 2017-08-14 15:31:43 -04:00
Rob Rix
f0b55a4a94 Add callstacks to manyThrough. 2017-08-14 15:31:35 -04:00
Rob Rix
c0c479c302 Unparenthesize a thing. 2017-08-14 15:13:39 -04:00
Rob Rix
525c31694a 🔥 an obsolete comment. 2017-08-14 15:13:34 -04:00
Rob Rix
cd25018e40 Rearrange a few rules to reuse expressions. 2017-08-14 15:12:31 -04:00
Rob Rix
902ac23def Rewrite conditionalExpression without binds. 2017-08-14 14:46:05 -04:00
Rob Rix
a1fd6c9ad9 Reuse the expressions assignment. 2017-08-14 14:44:15 -04:00
Rob Rix
70e83e215f Use tokens to match symbols & advance. 2017-08-14 14:37:09 -04:00
Rob Rix
297675c90e Add a token combinator. 2017-08-14 13:59:48 -04:00
Rob Rix
965f716be1 Add an advance rule to pass nodes. 2017-08-14 13:58:02 -04:00
Rob Rix
41d5ec6065 Relax/remove some Ix constraints. 2017-08-14 13:49:39 -04:00
Rob Rix
e97b3e6fc6 Unfreeze notFollowedBy. 2017-08-14 13:46:14 -04:00
Rob Rix
e32c566774 Contextualize expressions. 2017-08-14 12:35:43 -04:00
Rob Rix
ea161dea48 Contextualize concatenated string fragments. 2017-08-14 12:35:14 -04:00
Rob Rix
530179f833 🔥 discarding comments in conditionalExpression. 2017-08-14 12:34:58 -04:00
Rob Rix
e85e84371e Use the term combinator widely. 2017-08-14 12:08:29 -04:00
Rob Rix
52472efbf3 Define a helper to contextualize terms. 2017-08-14 12:07:53 -04:00
Rob Rix
3c7e940b9e Contextualize the first operand of boolean expressions. 2017-08-14 12:06:57 -04:00
Rob Rix
512a297142 🔥 a redundant location rule. 2017-08-14 12:05:08 -04:00
Rob Rix
9d5c5baab1 Don’t match comments with the expression rule. 2017-08-14 12:01:54 -04:00
Rob Rix
d532486dc0 Contextualize within boolean operators. 2017-08-14 12:01:41 -04:00
Rob Rix
48d9a9d247 Contextualize within pairs. 2017-08-14 12:01:28 -04:00
Rob Rix
5fc327ba32 Add Context to Python syntax. 2017-08-14 11:55:51 -04:00
Rob Rix
066438b63b Define a combinator to contextualize nodes with e.g. comments. 2017-08-14 11:36:48 -04:00
Rob Rix
b138213347 Define a context datatype. 2017-08-14 11:36:35 -04:00
Rob Rix
97b9b30a1d Terms are constructed to contain their children. 2017-08-14 11:36:26 -04:00
Rob Rix
3fdb043537 Define a manyThrough combinator. 2017-08-14 11:35:13 -04:00
Rob Rix
8c27167301 Define a Semigroup instance for Record. 2017-08-14 11:35:03 -04:00
Rob Rix
01e5ddb1cb Map sequence_expression to CommaOperator. 2017-08-11 10:16:06 -04:00
Rob Rix
9effa7aea1 Flatten expression statements involving sequence expressions. 2017-08-11 10:15:16 -04:00
Rob Rix
ffa33bbe0f Unwrap expression statements in for loops. 2017-08-11 10:11:34 -04:00
Rob Rix
0e2c418038 Ensure we treat /dev/null as empty. 2017-08-11 09:57:03 -04:00
Rob Rix
1f26be577a Assign a bunch more operators. 2017-08-11 09:53:08 -04:00
Rob Rix
04ce0c89c6 Match BooleanOperators. 2017-08-11 09:46:08 -04:00
Rob Rix
2e0c870a82 Handle some operators in defaultTermAssignment. 2017-08-11 09:40:18 -04:00
Rob Rix
a8e32d6739 Factor pure into toTerm. 2017-08-11 09:29:01 -04:00
Rob Rix
57fe826d9f Map a bunch of category names. 2017-08-11 09:26:14 -04:00
Rob Rix
96230f04b6 Flatten switch_body nodes out. 2017-08-11 09:25:19 -04:00
Rob Rix
b08ea229d6 Drop parenthesized expression nodes. 2017-08-11 09:20:12 -04:00
Rob Rix
f9600f91d2 Construct complete Terms in defaultTermAssignment. 2017-08-11 09:18:08 -04:00
Rob Rix
d61967e238 Don’t export defaultTermAssignment. 2017-08-11 09:14:58 -04:00
Rob Rix
362c3c7e4c Don’t unwrap parenthesized expressions that way. 2017-08-11 09:11:13 -04:00
Rob Rix
3d6bc1f03b Map subscript_expression to SubscriptAccess. 2017-08-11 09:05:16 -04:00
Rob Rix
817000ff52 Expand parenthesized expressions in place. 2017-08-11 09:04:46 -04:00
Rob Rix
61052b3340 Correct some references again. 2017-08-11 08:52:25 -04:00
Rob Rix
0c773722f9 Correct the TreeSitter imports &c. 2017-08-11 08:43:53 -04:00
Rob Rix
f8ab5f2ae3 Update the imports. 2017-08-11 08:02:30 -04:00
Rick Winfrey
08e38d87df Bump grammar 2017-08-10 17:43:48 -07:00
Rick Winfrey
e877a93fec Merge branch 'master' into improved-python-comprehensions 2017-08-10 15:40:42 -07:00
Rick Winfrey
ae0f8b6a13 Assign while statements using manyTill 2017-08-10 15:28:52 -07:00
Rick Winfrey
d31523f530 Match against Lambda' and Identifier' alias nodes 2017-08-10 14:09:08 -07:00
Rob Rix
453daf7bcf 🔥 a type sig. 2017-08-10 10:41:21 -04:00
Rob Rix
65157ac87c 🔥 MonoLocalBinds. 2017-08-10 10:40:24 -04:00
Rick Winfrey
e9a748dd85 Merge branch 'master' into improved-python-comprehensions 2017-08-09 17:18:24 -07:00
Rick Winfrey
2021c67f61 Simplify Declaration.Comprehension 2017-08-09 16:42:50 -07:00
Rick Winfrey
036c5a99b8 Remove comprehension from expression list 2017-08-09 16:41:44 -07:00
Rick Winfrey
bf207e296f Remove trailing whitespace 2017-08-09 16:41:33 -07:00
Rick Winfrey
9963f57fe6 Update assignments 2017-08-09 16:41:22 -07:00
Rick Winfrey
f9f2e46059 Update assignment for single list comprehensions 2017-08-09 15:27:10 -07:00
Rick Winfrey
77d53e9127 🔥 newline 2017-08-09 15:26:16 -07:00
Rob Rix
cf1cee66b9 Merge branch 'master' into ghc-8.2.1 2017-08-09 09:52:39 -04:00
Rob Rix
947d6c8cfd Merge branch 'master' into fine-grained-python-error-handling 2017-08-08 19:06:16 -04:00
Rob Rix
2413378602 🔥 NoStrictData. 2017-08-08 18:29:57 -04:00
Rob Rix
39197f0b76 Discard comments around key/value pairs in dictionaries. 2017-08-08 15:20:51 -04:00
Rob Rix
6a849f1fa6 Take expressions only up to WithItem. 2017-08-08 15:00:22 -04:00
Rob Rix
22861b8443 Apply the constructor in withItem instead of tupling. 2017-08-08 14:58:37 -04:00
Rob Rix
193f5ad339 flip instead of swap. 2017-08-08 14:56:48 -04:00
Rob Rix
e684907c9e Refactor withStatement to avoid a bind. 2017-08-08 14:54:40 -04:00
Rob Rix
26bf05bd30 Delimit expressions with the else clause. 2017-08-08 14:19:25 -04:00
Rob Rix
7e7cc130d1 Bold the path/span. 2017-08-08 13:30:21 -04:00
Rob Rix
245a5c2d7d Use a much more compact callstack format. 2017-08-08 13:27:57 -04:00
Rob Rix
5d5f027e40 Handle errors at the top level. 2017-08-08 12:14:42 -04:00
Rob Rix
38f5648af9 🔥 the redundant handleError in import'. 2017-08-08 12:13:49 -04:00
Rob Rix
5031afaf06 Don’t match parse errors in expressions or imports. 2017-08-08 12:13:22 -04:00
Rob Rix
47d12fb498 Handle errors around imports. 2017-08-08 12:11:07 -04:00
Rob Rix
c7cc645dea Handle errors occurring in Python expressions. 2017-08-08 11:58:00 -04:00
Rob Rix
4364429cb3 🔥 overindentation. 2017-08-08 11:46:16 -04:00
Rob Rix
3f981fbdf7 🔥 the redundant withSGRCode definition. 2017-08-08 11:37:50 -04:00
Rob Rix
c97808a0bd Disable colour if stderr is not a terminal. 2017-08-08 11:12:14 -04:00
Rob Rix
a0adfdf0cf Constrain to Foldable/Functor instead of Traversable. 2017-08-08 10:00:31 -04:00
Rob Rix
a1f1fc5048 🔥 redundant imports. 2017-08-08 09:16:36 -04:00
Rob Rix
fc299fe0e8 Fail fast on assignment errors. 2017-08-08 09:16:16 -04:00
Rob Rix
9e3e9736ed 🔥 a redundant do. 2017-08-08 09:16:03 -04:00
Rob Rix
1e7ca7de13 Constrain the types rather than the Unions. 2017-08-08 09:11:27 -04:00
Rob Rix
8eea6810ee Dedent the State record selector docs. 2017-08-07 17:53:16 -04:00
Rob Rix
0b00fa2c52 Return to using an IntMap for choices. 2017-08-07 17:44:51 -04:00
Rob Rix
e32644ea46 eta-reduce makeError. 2017-08-07 17:20:35 -04:00
Rob Rix
b483c66e17 🔥 redundant parens. 2017-08-07 17:20:27 -04:00
Rob Rix
8522dbec99 🔥 the unused StandaloneDeriving pragma. 2017-08-07 17:20:21 -04:00
Rob Rix
45f0eb7900 Only fetch the populated indices. 2017-08-07 12:51:31 -04:00
Josh Vera
e82a2e7090 Merge branch 'master' into ruby-assignment-fixes 2017-08-07 12:41:10 -04:00
Rob Rix
51cc0e00c9 Use parseError in JSON, Python, & Ruby. 2017-08-07 12:38:45 -04:00
Rob Rix
9ec1f2f029 Reintroduce a parseError combinator. 2017-08-07 12:35:09 -04:00
Rob Rix
252290d36c Back error-handling out of the grammars. 2017-08-07 12:17:53 -04:00
Rob Rix
9530b95a37 🔥 the state in error results. 2017-08-07 12:15:02 -04:00
Rob Rix
d590565c49 Merge branch 'master' into delimited-control 2017-08-07 12:05:15 -04:00
Rob Rix
87abdf2556 Constrain the types in the Union rather than the Union itself. 2017-08-07 11:21:22 -04:00
Rob Rix
1e335a71b0 Merge branch 'master' into faster-union-instance-compilation 2017-08-07 11:17:10 -04:00
Yuki Izumi
882c35649e Add table syntax elements 2017-08-07 13:49:21 +10:00
Rob Rix
1635baf667 Drop anonymous nodes before catches whose bodies would drop anonymous nodes.
This prevents handlers capturing tokens that would otherwise have been skipped altogether.
2017-08-06 18:56:04 -04:00
Rob Rix
de18f9c860 Don’t freeze composite call stacks. 2017-08-06 18:56:04 -04:00
Rob Rix
94c08a0f54 Simplify makeFunctionDeclaration. 2017-08-06 18:56:04 -04:00
Rob Rix
574d524581 Reformat functionDefinition. 2017-08-06 18:56:03 -04:00
Rob Rix
c69ed83235 Define functionDefinition without binds. 2017-08-06 18:56:03 -04:00
Rob Rix
215e1a7ac2 Simpler freezing of the call stack in choice construction. 2017-08-06 18:56:03 -04:00
Rob Rix
e45eb2e93d Simpler freezing of the call stack. 2017-08-06 18:56:03 -04:00
Rob Rix
9d044c51f7 Freeze the call stack in unError. 2017-08-06 18:56:03 -04:00
Rob Rix
367c16a0cd Use the error syntax constructor in Task. 2017-08-06 18:56:03 -04:00
Rob Rix
27c97a413c Produce error syntax using the helper. 2017-08-06 18:56:03 -04:00
Rob Rix
6edb85c156 Generalize errorSyntax to take the list of children. 2017-08-06 18:56:03 -04:00
Rob Rix
16dc1b62a7 Define an errorSyntax helper constructor. 2017-08-06 18:56:03 -04:00
Rob Rix
0d08387684 Rephrase end of input nodes as end of branch. 2017-08-06 18:56:03 -04:00
Rob Rix
d5526db5f9 Colourize the actual position/symbol. 2017-08-06 18:56:03 -04:00
Rob Rix
b40e13a296 Colourize the expected symbols. 2017-08-06 18:56:03 -04:00
Rob Rix
08a6c987c0 Pass the colourize flag to showExpectation & showSymbols. 2017-08-06 18:56:03 -04:00
Rob Rix
2ca0450737 Use the same Colourize type synonym for withSGRCode. 2017-08-06 18:56:03 -04:00
Rob Rix
e74c98f9cc Don’t colourize the whole expectation. 2017-08-06 18:56:03 -04:00
Rob Rix
d9a490381b Freeze the call stacks. 2017-08-06 18:56:03 -04:00
Rob Rix
89e0ef3daf Use the best call stack for uncommitted choices. 2017-08-06 18:56:02 -04:00
Rob Rix
1151fce874 Briefer definition of bestCallStack. 2017-08-06 18:56:02 -04:00
Rob Rix
96d473f8f4 Select a callstack to associate with committed choices. 2017-08-06 18:56:02 -04:00
Rob Rix
9579bc8aaa Spacing. 2017-08-06 18:56:02 -04:00
Rob Rix
fbb217f8e7 Add call stacks to Syntax.Error. 2017-08-06 18:56:02 -04:00
Rob Rix
c516620e24 Add a helper to set an implicit call stack. 2017-08-06 18:56:02 -04:00
Rob Rix
66d03867e1 Avoid re-showing errors in Data.Syntax. 2017-08-06 18:56:02 -04:00
Rob Rix
14001ed70a Avoid re-showing errors in Task. 2017-08-06 18:56:02 -04:00
Rob Rix
b8c1e1a953 Carry callstacks through try. 2017-08-06 18:56:02 -04:00
Rob Rix
caf9535fee Define unexpected by throwing an error with the specified message. 2017-08-06 18:56:02 -04:00
Rob Rix
76edea1341 Labels replace expectations. 2017-08-06 18:56:02 -04:00
Rob Rix
fb6298ba6d Revert "Define a function to compute the expectation for an assignment, which may involve its label."
This reverts commit 1a7e775446b72653570015b08dad0530fe4d9805.
2017-08-06 18:56:02 -04:00
Rob Rix
6036870ea9 Labels participate in committed choice. 2017-08-06 18:56:02 -04:00
Rob Rix
2d7c7fd1ee Define a function to compute the expectation for an assignment, which may involve its label. 2017-08-06 18:56:02 -04:00
Rob Rix
bd4e2666c8 🔥 a redundant Ix constraint on firstSet. 2017-08-06 18:56:02 -04:00
Rob Rix
c1596f942d Assignment errors can be strings. 2017-08-06 18:56:01 -04:00
Rob Rix
8e58a76a01 formatError takes Error String. 2017-08-06 18:56:01 -04:00
Rob Rix
60bafabf17 Move error formatting into Data.Error. 2017-08-06 18:56:01 -04:00
Rob Rix
d18ac5e0c6 Move the Error definition into Data.Error. 2017-08-06 18:56:01 -04:00
Rob Rix
add1d471c9 Stub in a module for Errors. 2017-08-06 18:56:01 -04:00
Rob Rix
55683ea810 Errors carry a full Span. 2017-08-06 18:56:01 -04:00
Rob Rix
261fb37c44 Syntax.Error holds the expected/actual fields. 2017-08-06 18:56:01 -04:00
Rob Rix
880d26078e Rename formatErrorWithOptions to formatError. 2017-08-06 18:56:01 -04:00
Rob Rix
8a7911313a Pass the position, expected, & actual fields to formatErrorWithOptions separately. 2017-08-06 18:56:01 -04:00
Rob Rix
eb1439ebbb showExpectation & showSymbols take Strings. 2017-08-06 18:56:01 -04:00
Rob Rix
b66312567b Define <?> using Label. 2017-08-06 18:56:01 -04:00
Rob Rix
b911f93a58 Define a Label assignment. 2017-08-06 18:56:01 -04:00
Rob Rix
3d9760d5d8 Sort the End case of Show to the top. 2017-08-06 18:56:01 -04:00
Rob Rix
a31e1ce086 Sort the End case to the top. 2017-08-06 18:56:01 -04:00
Rob Rix
3ab717f18f Add a callstack to notFollowedBy. 2017-08-06 18:56:01 -04:00
Rob Rix
99ac5d4486 Define notFollowedBy. 2017-08-06 18:56:01 -04:00
Rob Rix
fcc65d3a3e Allow if statements without elif/else clauses. 2017-08-06 18:56:00 -04:00
Rob Rix
3b5a19c832 Define eof as the End assignment. 2017-08-06 18:56:00 -04:00
Rob Rix
68257e5c3a Add an assignment which only matches at the end of input. 2017-08-06 18:56:00 -04:00
Rob Rix
4e2d29491c Stub in a Parsing instance for Assignment. 2017-08-06 18:53:51 -04:00
Rob Rix
8c9f6ab7fd Assign elif/else blocks correctly. 2017-08-06 18:53:48 -04:00
Rob Rix
6daf3d648b Move the MonadError instance up. 2017-08-06 18:53:44 -04:00
Rob Rix
5dfc165699 Re-export the Parsers module. 2017-08-06 18:53:41 -04:00
Rob Rix
302bef15ee 🔥 Data.Amb. 2017-08-06 18:53:29 -04:00
Rob Rix
1ca87c89e8 🔥 a redundant error handler. 2017-08-06 18:53:26 -04:00
Rob Rix
4a4d8ea9c5 🔥 the need for Bounded grammars for Alternative assignments. 2017-08-06 18:53:23 -04:00
Rob Rix
39e30c3d92 empty is Throw Nothing. 2017-08-06 18:53:19 -04:00
Rob Rix
c4c6c389aa Throw Nothing is the right-identity of <|>. 2017-08-06 18:53:15 -04:00
Rob Rix
7713277876 Throw Nothing is the left-identity of <|>. 2017-08-06 18:53:09 -04:00
Rob Rix
8d9d54dbcc Throw takes its error in a Maybe. 2017-08-06 18:53:05 -04:00
Rob Rix
dafcd40067 Lookahead to prevent matching the else clause. 2017-08-06 18:53:02 -04:00
Rob Rix
3b9523ba58 Qualify the import of Data.Functor.Foldable. 2017-08-06 18:52:59 -04:00
Rob Rix
0ec05480f8 🔥 a redundant import. 2017-08-06 18:52:56 -04:00
Rob Rix
59fd521709 Add callstacks to while & until. 2017-08-06 18:52:52 -04:00
Rob Rix
56eb9407b9 Simplify ifStatement. 2017-08-06 18:52:49 -04:00
Rob Rix
357ffe6616 Simplify the definition of until. 2017-08-06 18:52:46 -04:00
Rob Rix
2bc2483af9 Define an until combinator. 2017-08-06 18:52:42 -04:00
Rob Rix
8d7fb65a4a Better docs for while. 2017-08-06 18:52:39 -04:00
Rob Rix
59e6fd621c 🔥 stateErrorCounter. 2017-08-06 18:52:35 -04:00
Rob Rix
722e5407cd 🔥 the grammar parameter from State. 2017-08-06 18:52:31 -04:00
Rob Rix
2adbf0cfa1 Assign unambiguously. 2017-08-06 18:52:24 -04:00
Rob Rix
ac1adfe5bc Uncommitted choices backtrack. 2017-08-06 18:52:20 -04:00
Rob Rix
4cba3fd2fc 🔥 redundant bindings. 2017-08-06 18:52:16 -04:00
Rob Rix
edfb98ff7d Apply both rewrapping functions. 2017-08-06 18:52:11 -04:00
Rob Rix
341f806806 Remove the fallback from committed choice. 2017-08-06 18:52:06 -04:00
Rob Rix
ea26a943e5 Simplify catch handling again. 2017-08-06 18:52:01 -04:00
Rob Rix
295c933eaa Export nodeError. 2017-08-06 18:51:57 -04:00
Rob Rix
b591c63c5d Only attempt error recovery at nodes. 2017-08-06 18:51:53 -04:00
Rob Rix
04a9b2dc25 Don’t call error handlers for partial matches. 2017-08-06 18:51:49 -04:00
Rob Rix
d0677b71b7 Disable backtracking in repetitions. 2017-08-06 18:51:43 -04:00
Rob Rix
15eee07c5d Revert "Parse unambiguously."
This reverts commit 02875b26dd52b1263f1f78d4e7537f29b20a91c0.
2017-08-06 18:51:34 -04:00
Rob Rix
4195cbe5ea Parse unambiguously. 2017-08-06 18:51:27 -04:00
Rob Rix
697ccf1154 Don’t backtrack for Alt. 2017-08-06 18:51:23 -04:00
Rob Rix
07e26d03e2 Produce the current state on error. 2017-08-06 18:51:19 -04:00
Rob Rix
100dd2f305 🔥 MonoLocalBinds. 2017-08-06 18:51:09 -04:00
Rob Rix
c3dc25dc55 🔥 some redundant Eq constraints. 2017-08-06 18:50:46 -04:00
Rob Rix
668f81d655 Cache the first set of productions on choices. 2017-08-06 18:50:41 -04:00
Rob Rix
86e18af4cd Choose holds an Array of choices. 2017-08-06 18:50:16 -04:00
Rob Rix
1a43be18d5 Evaluate a few values strictly. 2017-08-06 18:50:09 -04:00
Rob Rix
c4a30e9fe6 Compute the expected symbols as the first set of the current assignment. 2017-08-06 18:50:01 -04:00
Rob Rix
38b9821c1d Define a function computing an assignment’s first set of productions. 2017-08-06 18:49:47 -04:00
Rob Rix
7277ea4a3a Turn MonoLocalBinds on for Data.Syntax. 2017-08-06 18:49:40 -04:00
Rob Rix
ba5551fb07 Merge branch 'faster-union-instance-compilation' into delimited-control 2017-08-06 18:47:11 -04:00
Rob Rix
6188700166 🔥 Prologue (again). 2017-08-06 17:08:25 -04:00
Rob Rix
711dcdb203 Define GAlign over Union non-inductively. 2017-08-06 16:35:53 -04:00
Rob Rix
ba895fec3f Define ToJSONFields over Union non-inductively. 2017-08-06 16:32:17 -04:00
Rob Rix
eed5934a21 Define the Diffable instance for Unions without induction. 2017-08-06 16:25:58 -04:00
Rob Rix
0e19a8ed7b Define ConstructorName without reference to union decomposition. 2017-08-06 16:25:13 -04:00
Rob Rix
07c81f114f Move the ConstructorName instance over sums up. 2017-08-06 16:25:04 -04:00
Rob Rix
1fa09cebe3 Constrain the types in the union instead of constraining the Union. 2017-08-06 16:23:27 -04:00
Rob Rix
48e7737268 Merge branch 'master' into ghc-8.2.1 2017-08-04 12:36:15 -04:00
Rob Rix
48d368683c Combine the alternatives using sconcat. 2017-08-04 12:27:43 -04:00
Rob Rix
3e95004249 Use record wildcards to unpack the state. 2017-08-04 12:04:50 -04:00
Rob Rix
a433fe8072 Abbreviate the definition of state. 2017-08-04 11:29:34 -04:00
Rob Rix
91f149310d Inline assignBy to keep it out of the profile. 2017-08-04 11:25:50 -04:00
Rob Rix
8c13aadce0 Merge uncommitted choices at the right. 2017-08-04 10:47:45 -04:00
Rob Rix
a8d7ee531a Simplify how alternatives append onto Alt rules. 2017-08-04 10:45:07 -04:00
Rob Rix
9dd03613f8 nodeSymbol & stateNodes cannot be unpacked. 2017-08-04 10:43:25 -04:00
Rob Rix
bc930773d1 Allow Location rules to participate in committed choices. 2017-08-04 10:32:04 -04:00
Rob Rix
fc6b49c4ec Freeze the call stacks for location & projection rules. 2017-08-04 10:27:21 -04:00
Rob Rix
ed93b6e1fa Unpack Node fields. 2017-08-04 10:11:19 -04:00
Rob Rix
76d57fc192 Unpack state fields. 2017-08-04 10:09:55 -04:00
Rob Rix
4b1365729b Strictify state fields. 2017-08-04 10:08:50 -04:00
Rob Rix
e4bcdf293f Compare the states directly. 2017-08-04 10:08:16 -04:00
Rob Rix
a72b1aaaf3 Use on to compare the offsets. 2017-08-04 10:06:36 -04:00
Rob Rix
2fec9f283a Factor the matched element out. 2017-08-04 10:05:58 -04:00
Rob Rix
da988a4c6f Build up repetitions right-recursively. 2017-08-04 10:03:38 -04:00
Rob Rix
8406ba35c2 Correct the docs. 2017-08-04 09:47:45 -04:00
Rob Rix
075b77f931 🔥 unnecessary quantification. 2017-08-04 09:33:54 -04:00
Rob Rix
0f08846156 Always use the error handler when applicable. 2017-08-04 09:20:44 -04:00
Rob Rix
a778382e85 📝 disamb. 2017-08-04 09:16:24 -04:00
Rob Rix
17102a87b8 📝 Amb. 2017-08-04 09:15:15 -04:00
Rob Rix
0a8411e534 Disambiguate assignment results. 2017-08-04 09:11:22 -04:00
Rob Rix
7bd2d6b94b Merge branch 'master' into delimited-control 2017-08-04 09:00:07 -04:00
Rob Rix
c117abe1fd Disallow catches of committed choices from recovering at the end of input. 2017-08-04 08:49:54 -04:00
Yuki Izumi
2e097f3dc3 Add Strikethrough to Data.Syntax.Markup 2017-08-04 18:08:08 +10:00
Rob Rix
9d1ade2654 Factor out the list & state. 2017-08-03 22:46:46 -04:00
Rob Rix
cabab1f9ed Check advancement using the state offset instead of the counter. 2017-08-03 21:29:22 -04:00
Rob Rix
9bfe67afd9 🔥 stateError. 2017-08-03 21:26:43 -04:00
Rob Rix
a57aa0bf2b Share the continuation. 2017-08-03 21:23:47 -04:00
Rob Rix
bece561240 Unfreeze the callstacks in <|>. 2017-08-03 21:13:35 -04:00
Rob Rix
4dded01e73 Preserve callstacks through exhaustiveness checks. 2017-08-03 21:11:29 -04:00