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

6656 Commits

Author SHA1 Message Date
Rob Rix
3cede7da09 Represent NotSummarizable as Nothing. 2017-05-08 11:31:30 -04:00
Rob Rix
821b598e2a Further tighten toTermName. 2017-05-08 11:24:25 -04:00
Rob Rix
6e411c7c85 Compute toTermName as a paramorphism. 2017-05-08 11:22:04 -04:00
Rob Rix
1b487b6907 🔥 offsetting in toTermName.
toTermName is a shallow traversal, so there’s little or no point in offsetting before recursive calls.
2017-05-08 11:18:23 -04:00
Rob Rix
2e98b4570d Contextualize summaries in diffToTOCSummaries directly. 2017-05-08 11:16:37 -04:00
Rob Rix
9df2a73e38 Tighten up toTermName. 2017-05-08 11:16:23 -04:00
Rob Rix
76002f08c0 🔥 redundant parens. 2017-05-08 09:56:11 -04:00
Rob Rix
f3cf3cb1d1 🔥 SummarizableTerm. 2017-05-08 09:55:56 -04:00
Rob Rix
4894a5b286 Merge branch 'master' into generalize-alignment-over-the-syntax-functor 2017-05-08 09:50:38 -04:00
Rob Rix
7c100f5bfa Clarify the indentation of assignment operators. 2017-05-08 09:47:09 -04:00
Rob Rix
6ce4496f14 Merge branch 'master' into opt-in-anonymous-nodes 2017-05-08 08:33:14 -04:00
Rob Rix
4274fdf6e3 Merge branch 'master' into generalize-alignment-over-the-syntax-functor 2017-05-08 08:28:01 -04:00
Rob Rix
8d8fa78b47 Simplify summarizable. 2017-05-05 16:34:16 -04:00
Timothy Clem
ab0a6d59dd Merge branch 'master' into fix-json-output-again 2017-05-05 13:30:48 -07:00
Rob Rix
0c7af370f7 Define termToDiffInfo as a paramorphism. 2017-05-05 16:28:46 -04:00
Rob Rix
c73a79eb83 No need to qualify sourceSpan. 2017-05-05 16:19:49 -04:00
Rob Rix
a55b97b017 Use the named field accessor. 2017-05-05 16:08:51 -04:00
Rob Rix
2491dde0f9 Don’t bind the individual info functions. 2017-05-05 16:00:52 -04:00
Rob Rix
e667657d94 Bind the diff info functions at the top level. 2017-05-05 16:00:10 -04:00
Rob Rix
b6cc1cfac1 🔥 redundant parens. 2017-05-05 15:56:15 -04:00
Rob Rix
628bf46ed3 Don’t bind syntax. 2017-05-05 15:56:04 -04:00
Rob Rix
274095720b Tighten up diffToTOCSummaries. 2017-05-05 15:54:38 -04:00
Rob Rix
f820af4f5a Factor the application of toLeafInfos out. 2017-05-05 15:48:54 -04:00
Rob Rix
c3f510f83d Rename toLeafInfos' to toLeafInfos. 2017-05-05 15:45:51 -04:00
Rob Rix
c6b49cba94 Simplify the termToDiffInfo definition by closing over the source. 2017-05-05 15:44:37 -04:00
Rob Rix
0ab53b002a Flatten toTOCSummaries. 2017-05-05 15:33:16 -04:00
Rob Rix
948869066c Even tighter. 2017-05-05 15:28:09 -04:00
Rob Rix
2ac1baef7a Tighten up the definition of afterOrBefore. 2017-05-05 15:27:50 -04:00
Rob Rix
8cd74f6ea2 afterOrBefore always returns a value. 2017-05-05 15:26:26 -04:00
Rob Rix
286d751b7b Merge branch 'master' into opt-in-anonymous-nodes 2017-05-05 13:47:07 -04:00
Rob Rix
ba32db8fc9 Merge branch 'master' into diffs-a-la-carte 2017-05-05 13:46:40 -04:00
Rob Rix
7b961977b7 Merge branch 'master' into generalize-alignment-over-the-syntax-functor 2017-05-05 13:46:23 -04:00
Timothy Clem
f2f6bb45d9 Don't parse blobs that don't exist 2017-05-05 10:06:58 -07:00
Timothy Clem
1959301204 Use a list to simplify json output concatenation 2017-05-05 09:09:45 -07:00
Timothy Clem
2b4d4a0e85 Bring back original json structure with 'sourceRange' and identifier only on specific nodes 2017-05-05 09:08:58 -07:00
Rob Rix
f14cd97cae Merge branch 'master' into generalize-alignment-over-the-syntax-functor 2017-05-05 10:56:23 -04:00
Rob Rix
875fe1c5ae Merge branch 'master' into assignment-best-practices 2017-05-05 10:56:19 -04:00
Rob Rix
1ca4d21c47 Merge branch 'master' into diffs-a-la-carte 2017-05-05 10:56:17 -04:00
Rob Rix
209a2de6b6 Merge branch 'master' into opt-in-anonymous-nodes 2017-05-05 10:56:14 -04:00
Timothy Clem
e53a8342a3 Missing one case for this monoid instance to be associative 2017-05-05 07:52:14 -07:00
Rob Rix
ccf92f9808 Rename setCharacterRange -> setByteRange. 2017-05-05 09:32:15 -04:00
Rob Rix
d9b6c51319 Extract the wrapInBranch lambda into a binding. 2017-05-05 09:31:23 -04:00
Rob Rix
634b8e450f Apply the fusion law. 2017-05-05 09:30:27 -04:00
Rob Rix
bee7d1ee6a Merge branch 'master' into fix-json-output 2017-05-05 09:06:30 -04:00
Timothy Clem
bea5d66f3f Bit more nuanced of a monoid instance for Value 2017-05-04 14:56:53 -07:00
Timothy Clem
477165a4c2 Collapse up and remove unused language extensions 2017-05-04 14:56:08 -07:00
Rob Rix
231abd6cb5 Generalize alignment over the syntax functor. 2017-05-04 17:31:45 -04:00
Rob Rix
5d206c3c9a Merge branch 'master' into assignment-best-practices 2017-05-04 13:18:18 -04:00
Rob Rix
e943a5372c Merge branch 'master' into diffs-a-la-carte 2017-05-04 13:18:12 -04:00
Rob Rix
9f1a4bc778 Merge branch 'master' into opt-in-anonymous-nodes 2017-05-04 13:18:00 -04:00
Rob Rix
13d6b313cb Document how tokens are skipped. 2017-05-04 13:11:09 -04:00
Rob Rix
d62b6170e6 Document optional. 2017-05-04 13:04:54 -04:00
Rob Rix
64ada1c6c2 Document some/many repetitions. 2017-05-04 13:03:46 -04:00
Rob Rix
da158b4a12 Document committed choice. 2017-05-04 12:58:00 -04:00
Rob Rix
7467fabfa4 Document combining assignments with the various instances. 2017-05-04 12:25:05 -04:00
Rob Rix
a30769167c Document 'pure' assignments. 2017-05-04 11:29:44 -04:00
Rob Rix
9644561a8d Document the basic primitives. 2017-05-04 11:27:43 -04:00
Rob Rix
dde29370de Simplify the initial discussion of Assignments. 2017-05-04 11:06:25 -04:00
Rob Rix
838262df2d Clarify the assignment-context bit. 2017-05-04 11:04:42 -04:00
Rob Rix
aed82c030d Merge branch 'master' into opt-in-anonymous-nodes 2017-05-04 11:02:30 -04:00
Rob Rix
a656a94664 Merge branch 'master' into diffs-a-la-carte 2017-05-04 11:02:22 -04:00
Rob Rix
9d5b040c42 Merge remote-tracking branch 'origin/master' into assignment-best-practices 2017-05-04 11:01:31 -04:00
Rob Rix
68b813d51b Merge branch 'master' into 🔥-split-renderer 2017-05-04 10:59:21 -04:00
Rob Rix
a14093bf06 Correct the usage for the -o flag. 2017-05-04 10:56:28 -04:00
Rob Rix
32a6901d38 📝 the module a bit. 2017-05-04 10:55:12 -04:00
Rob Rix
9c2b7dfbe0 🔥 Renderer.Split. 2017-05-04 10:10:45 -04:00
Rob Rix
d085b11789 🔥 the split diff renderer. 2017-05-04 10:09:29 -04:00
Rob Rix
d5e0cd5693 🔥 the split diff arguments constructor. 2017-05-04 10:09:19 -04:00
Rob Rix
f385a6e54f 🔥 the --split renderer flag. 2017-05-04 10:09:02 -04:00
Timothy Clem
31c01c0092 Give sExpressions output a trailing newline again 2017-05-03 14:11:37 -07:00
Timothy Clem
69b6c6b21e Let reading from /dev/null throw - need emptySourceBlob for this case 2017-05-03 14:11:02 -07:00
Rob Rix
d10ca290b9 Use diffMaybe instead of maybeLinearly. 2017-05-03 16:58:43 -04:00
Rob Rix
45406c5c81 Define a combinator for diffing in Maybe. 2017-05-03 16:56:15 -04:00
Rob Rix
a0df4f8845 Skip wrapping in Maybe. 2017-05-03 16:52:56 -04:00
Rob Rix
8a2725f524 Merge branch 'master' into diffs-a-la-carte 2017-05-03 16:38:09 -04:00
Rob Rix
d524fa05bb Define Align-based GAlign instances for [] and Maybe. 2017-05-03 16:24:05 -04:00
Timothy Clem
c9f69c32b5 ++haskell-tree-sitter to use halt_on_error 2017-05-03 13:22:46 -07:00
Rob Rix
116e5b0e08 Derive GAlign instances for all of the à la carte syntax types. 2017-05-03 16:05:27 -04:00
Rob Rix
c189e786c5 Define a GAlign instance for Identity. 2017-05-03 16:00:13 -04:00
Rob Rix
1f6d044994 Define GAlign instances for Unions. 2017-05-03 15:58:27 -04:00
Rob Rix
ce50d2da71 🔥 the Functor context for GAlign. 2017-05-03 15:56:16 -04:00
Rob Rix
eb18e2ef6e Move the GAlign instance for Syntax into Syntax’ module. 2017-05-03 15:45:07 -04:00
Rob Rix
028d760190 Revert "Reuse the canCompare parameter."
This reverts commit 2f4f50e8e41f64721f6e7cd887d22c16263b3e52.
2017-05-03 15:37:19 -04:00
Rob Rix
be3937cc42 Reuse the canCompare parameter. 2017-05-03 15:24:05 -04:00
Rob Rix
22e7e8ca3e Generalize decompose over the general term-diffing algorithm computation. 2017-05-03 15:17:59 -04:00
Rob Rix
a212fc628d s/cont/yield/. 2017-05-03 14:58:48 -04:00
Rob Rix
2e825ec90b Generalize runAlgorithm and runAlgorithmSteps to arbitrary functors in Freer. 2017-05-03 14:54:41 -04:00
Rob Rix
744f8cfe2e Generalize the algorithm running functions over arbitrary term/diff types. 2017-05-03 14:51:58 -04:00
Rob Rix
b7d5f03a1b 🔥 runAlgorithmStep. 2017-05-03 14:50:23 -04:00
Rob Rix
34807f26bb runAlgorithmSteps is parameterized by the decomposition operation. 2017-05-03 14:50:10 -04:00
Rob Rix
2e2ff9d614 runAlgorithm is parameterized by the decomposition operation. 2017-05-03 14:45:46 -04:00
Rob Rix
77bdda7b7e s/run/runAlgorithm/. 2017-05-03 14:38:11 -04:00
Rob Rix
cb7a5a7b57 runStep returns the continuation without wrapping in Either. 2017-05-03 14:35:54 -04:00
Rob Rix
459616e543 Merge branch 'master' into opt-in-anonymous-nodes 2017-05-03 14:27:03 -04:00
Rob Rix
11ca3a902b 🔥 a redundant constraint. 2017-05-03 13:55:18 -04:00
Rob Rix
363d21b607 Generalize s-expression rendering to arbitrary Foldables. 2017-05-03 13:43:32 -04:00
Rob Rix
1d024aafc9 Assign regular = assignments. 2017-05-03 11:52:38 -04:00
Rob Rix
8cc0526b23 Move assignment out into a separate top-level binding. 2017-05-03 11:51:22 -04:00
Rob Rix
159cf5772b Assign ^=. 2017-05-03 11:50:01 -04:00
Rob Rix
53fde0b91b Assign <<=. 2017-05-03 11:49:16 -04:00
Rob Rix
64dc3c7ff4 Assign >>=. 2017-05-03 11:49:00 -04:00
Rob Rix
96fabf70d4 Assign %=. 2017-05-03 11:48:22 -04:00
Rob Rix
b2ae6515f6 Assign &=. 2017-05-03 11:47:36 -04:00
Rob Rix
05be6e2f98 Assign &&=. 2017-05-03 11:47:14 -04:00
Rob Rix
175ac88ac4 Reformat a bit. 2017-05-03 11:43:36 -04:00
Rob Rix
feb99c9d3a Assign |=. 2017-05-03 11:42:35 -04:00
Rob Rix
d215d0b597 Assign ||=. 2017-05-03 11:41:17 -04:00
Rob Rix
4b01c83fe3 Define bitwise operator syntax. 2017-05-03 11:40:14 -04:00
Rob Rix
82d2a73cf2 Define the modulus operation. 2017-05-03 11:38:18 -04:00
Rob Rix
417b990d00 Represent boolean operations with a single type. 2017-05-03 11:37:43 -04:00
Rob Rix
3db7c5ff4f Assign /=. 2017-05-03 11:35:36 -04:00
Rob Rix
7790ff6441 Represent arithmetic operations with a single type. 2017-05-03 11:35:00 -04:00
Rob Rix
f408214d85 Assign **=. 2017-05-03 11:31:36 -04:00
Rob Rix
6e51415cfb Assign *=. 2017-05-03 11:28:47 -04:00
Rob Rix
3b54a4ebf3 Assign -=. 2017-05-03 11:27:03 -04:00
Rob Rix
b8bd18e742 Define binary subtraction syntax. 2017-05-03 11:26:53 -04:00
Rob Rix
2b9fb8552a Only drop anonymous nodes for choices where all symbols are regular. 2017-05-03 11:15:54 -04:00
Rob Rix
927ec1b2dc 🔥 stateTypes. 2017-05-03 10:55:52 -04:00
Rob Rix
acb8e7d693 Drop non-Regular symbols. 2017-05-03 10:50:36 -04:00
Rob Rix
4c5a5b56c6 🔥 withTokens. 2017-05-03 10:50:22 -04:00
Rob Rix
2a841a672b Don’t drop anonymous nodes for choices including anonymous symbols. 2017-05-03 10:50:11 -04:00
Rob Rix
56aee672a9 Merge branch 'master' into opt-in-anonymous-nodes 2017-05-03 10:41:36 -04:00
Rob Rix
1893d61eda Assign a += b assignments as a = a + b. 2017-05-03 10:37:29 -04:00
Rob Rix
33cdb49619 Define a combinator to assign without dropping token nodes. 2017-05-03 10:13:23 -04:00
Rob Rix
ab1e7ac9e0 Give a list of symbol types to consider. 2017-05-03 10:03:02 -04:00
Rob Rix
3ff041adcd Define a helper to construct starting states. 2017-05-03 09:36:35 -04:00
Rob Rix
ae9fc6ea4f Add a section header for the instances. 2017-05-03 09:35:51 -04:00
Rob Rix
14c12b3582 📝s. 2017-05-02 15:21:29 -04:00
Rob Rix
cefd3e0a6a Rename go to ifElsif. 2017-05-02 15:03:30 -04:00
Rob Rix
8a506e5efa Define a convenience for parsing straight to a term, logging errors. 2017-05-02 14:55:05 -04:00
Rob Rix
496c009379 Don’t pass the source through. 2017-05-02 14:53:07 -04:00
Rob Rix
73d1b83737 Rename assignAll to assign, taking a single root node. 2017-05-02 12:07:24 -04:00
Rob Rix
dd2ee0a669 Use the leaf helper to assign symbols. 2017-05-02 11:33:51 -04:00
Rob Rix
137b26d203 Define addition expression syntax. 2017-05-02 11:31:37 -04:00
Rob Rix
2246580687 Define assignment syntax. 2017-05-02 11:26:02 -04:00
Rob Rix
492b8e895e 🔥 redundant parens. 2017-05-02 11:25:48 -04:00
Rob Rix
40b0ff3a7b Derive an IsString instance for Source. 2017-05-02 09:37:02 -04:00
Rob Rix
5ddd0995d0 Sort imports. 2017-05-02 09:35:42 -04:00
Rob Rix
0b96eb7c0f Assign symbol literals. 2017-05-01 17:22:35 -04:00
Rob Rix
d025774908 Rename the SymbolLiteral constructor to Symbol. 2017-05-01 17:20:36 -04:00
Rob Rix
19c0abc218 Move the control flow modifiers into the normal variations. 2017-05-01 17:15:25 -04:00
Rob Rix
0519f658ea Note some more literals. 2017-05-01 17:07:51 -04:00
Rob Rix
366a77ade4 Note a potential direction for numeric literals. 2017-05-01 17:06:38 -04:00
Rob Rix
ea2ccec784 Note that we don’t differentiate between line/block comments yet. 2017-05-01 16:59:04 -04:00
Rob Rix
051e87a3b2 Note that redo/retry aren’t yet handled. 2017-05-01 16:54:30 -04:00
Rob Rix
5881bae111 Note that we don’t discriminate between .. and ... yet. 2017-05-01 16:50:41 -04:00
Rob Rix
87f779af46 Assign range literals. 2017-05-01 16:50:00 -04:00
Rob Rix
202f31fa96 Assign for each bindings as identifiers. 2017-05-01 16:47:11 -04:00
Rob Rix
ae56675e3b Assign for statements. 2017-05-01 16:44:52 -04:00
Rob Rix
20109d2705 Assign until modifiers. 2017-05-01 16:38:35 -04:00
Rob Rix
8aad196202 Assign until statements. 2017-05-01 16:37:13 -04:00
Rob Rix
5ab78c37b9 Assign while modifiers. 2017-05-01 15:59:08 -04:00
Rob Rix
173c0ecef6 Assign while statements. 2017-05-01 15:57:09 -04:00
Rob Rix
90b07663ed Avoid producing extra errors when we have one already. 2017-05-01 15:53:00 -04:00
Rob Rix
b1ef673d86 Errors point at the start of the current node where possible. 2017-05-01 11:21:07 -04:00
Rob Rix
f709375805 Unpack the actual symbol explicitly. 2017-05-01 11:19:30 -04:00
Rob Rix
50758e0f7e Number the lines in the error message output. 2017-05-01 11:16:08 -04:00
Rob Rix
1dabf3c9d3 Show up to three lines of context. 2017-05-01 11:04:49 -04:00
Rob Rix
91e9e59488 📝 showError. 2017-05-01 10:52:59 -04:00
Rob Rix
c0dd99a5a4 Pull the context into the where clause. 2017-05-01 10:52:29 -04:00
Rob Rix
e33da12d1b Show the source of the error with a clang-style error message. 2017-05-01 10:51:12 -04:00
Rob Rix
434adf3eca Show the expectation with a helper. 2017-05-01 10:33:21 -04:00
Rob Rix
5662b9cead Define a function to show an Error. 2017-05-01 10:32:25 -04:00
Rob Rix
9593416367 Define a helper to show a comma-separated list of symbols.
Complications due to the Oxford comma.
2017-05-01 10:32:07 -04:00
Rob Rix
c1ac705f54 Define a helper to show a SourcePos. 2017-05-01 10:31:46 -04:00
Rob Rix
7fcd50b512 Merge branch 'master' into better-error-reporting-for-repetitions 2017-05-01 10:06:01 -04:00
Rob Rix
e9385c99e6 🔥 indexing. 2017-05-01 09:52:34 -04:00
Rob Rix
a7574b685a 🔥 the --debug flag. 2017-05-01 09:51:40 -04:00
Rob Rix
0bf52e3dde Result has field selectors. 2017-04-28 15:54:34 -04:00
Rob Rix
8872a7ec6a Errors record the symbol of the current node (if any). 2017-04-28 15:49:00 -04:00
Rob Rix
0168773814 Results hold errors instead of text. 2017-04-28 15:45:13 -04:00
Rob Rix
3d1e74bf4e Define an Error datatype. 2017-04-28 15:34:18 -04:00
Rob Rix
250d095598 Result only has one case. 2017-04-28 15:31:23 -04:00
Rob Rix
a988d54ed6 Propagate errors from alternations. 2017-04-28 15:26:19 -04:00
Rob Rix
eb089bb571 Successful results can hold errors. 2017-04-28 15:24:42 -04:00
Rob Rix
ec8be238d1 Children assignments continue after the last child assignment. 2017-04-28 15:19:55 -04:00
Rob Rix
ca0d4328ff Return the final state from assignAllFrom. 2017-04-28 15:18:33 -04:00
Rob Rix
743935b098 Include all nodes in indices. 2017-04-28 14:35:04 -04:00
Rob Rix
da22bee49e Group SourceSpan fields together. 2017-04-28 11:35:50 -04:00
Rob Rix
f0f4ca393c Merge branch 'master' into simplified-json-rendering-path 2017-04-28 09:51:07 -04:00
Rob Rix
285fb8f3a7 🔥 the unused ToJSON instances for Category and Range. 2017-04-28 09:25:12 -04:00
Rob Rix
026f855f0b Move indexing out of the JSON renderer. 2017-04-27 19:42:55 -04:00
Rob Rix
4334e24aa4 Replace the indexing renderer with an indexing operation. 2017-04-27 19:40:54 -04:00
Rob Rix
6ed683f9be 🔥 jsonParseTree. 2017-04-27 19:38:18 -04:00
Rob Rix
4975dc61fe Move decoration of terms out of the JSON renderer. 2017-04-27 19:36:35 -04:00
Rob Rix
013d998ef3 Extract a common handler for path-annotated rendering. 2017-04-27 19:27:03 -04:00
Rob Rix
66d611b460 Handle debug rendering for indices. 2017-04-27 19:24:41 -04:00
Rob Rix
c014c75b0e Handle debug rendering for parse trees. 2017-04-27 19:23:31 -04:00
Rob Rix
9944b32d9f Define a ToJSONFields instance for SourceText. 2017-04-27 19:22:22 -04:00
Rob Rix
59735e5dac Don’t pass the debug flags to the renderers. 2017-04-27 19:13:18 -04:00
Rob Rix
5267ff4bb5 🔥 redundant parens. 2017-04-27 19:13:06 -04:00
Rob Rix
4394c2e833 🔥 the ToJSON instances for Data.Record. 2017-04-27 18:56:53 -04:00
Rob Rix
63b30ac1a3 Render parse trees/indices’ records to JSON. 2017-04-27 18:56:41 -04:00
Rob Rix
862fb3654b Define a ToJSONFields instance for SourceSpan. 2017-04-27 18:51:41 -04:00
Rob Rix
70dd381f26 Simplify the ToJSONFields instance for Syntax. 2017-04-27 18:28:52 -04:00
Rob Rix
fed06ff0e1 Define ToJSONFields instances for Free & FreeF. 2017-04-27 18:23:10 -04:00
Rob Rix
3bf4f63e0c Define a ToJSONFields instance for CofreeF. 2017-04-27 18:17:05 -04:00
Rob Rix
607d4f0398 Define a ToJSONFields instance for SplitPatch. 2017-04-27 18:10:31 -04:00
Rob Rix
1520fb0c2b Replace syntaxToTermField with a ToJSONFields instance. 2017-04-27 18:10:12 -04:00
Rob Rix
43a5580bf5 Define a ToJSONFields instance for Terms. 2017-04-27 18:05:08 -04:00