1
1
mirror of https://github.com/github/semantic.git synced 2024-12-21 05:41:54 +03:00
Commit Graph

19868 Commits

Author SHA1 Message Date
Rob Rix
e0bc6dc9a8
Update src/Semantic/Api/Terms.hs
Co-Authored-By: Patrick Thomson <patrickt@github.com>
2019-10-02 15:31:56 -04:00
Rob Rix
34aaec96d7
📝 the parameters to diffWith/decoratingDiffWith. 2019-10-02 15:30:21 -04:00
Rob Rix
f5f3124efa
📝 diffWith/decoratingDiffWith. 2019-10-02 15:26:15 -04:00
Rob Rix
0c3170edc4
📝 DiffFor. 2019-10-02 15:21:13 -04:00
Rob Rix
e4346562d6
📝 DiffTerms. 2019-10-02 15:18:48 -04:00
Rob Rix
8b705faefc
Rename the DiffFor result variable. 2019-10-02 15:18:29 -04:00
Rob Rix
843b49b26d
🔥 HasDiffFor. 2019-10-02 15:18:13 -04:00
Rob Rix
7433b7e6b1
📝 parseWith & parsePairWith’s parameters. 2019-10-02 15:16:35 -04:00
Rob Rix
3dd91ec21a
Fix some docs. 2019-10-02 15:13:48 -04:00
Rob Rix
87e72d1e0e
Give a kind signature for the constraint parameter to SomeAnalysisParser. 2019-10-02 15:13:40 -04:00
Rob Rix
80fbd7184f
📝 the abstract parsers. 2019-10-02 15:05:33 -04:00
Rob Rix
17481f566e
📝 SomeParser. 2019-10-02 14:52:45 -04:00
Rob Rix
fd94a1d3f2
📝 the canonical sets of parsers. 2019-10-02 14:48:36 -04:00
Rob Rix
2d21661c85
📝 parseWith/parsePairWith. 2019-10-02 14:47:11 -04:00
Rob Rix
a7c366cde2
Use Map instead of lists of pairs for the parsers. 2019-10-02 14:45:16 -04:00
Rob Rix
ecd283ac43
Rename precisePythonParser to pythonParserPrecise. 2019-10-02 14:10:59 -04:00
Rob Rix
1a1cdc9acb
🔥 the export of precisePythonParser. 2019-10-02 14:10:05 -04:00
Rob Rix
2a8d57fa6d
Merge branch 'master' into list-parsers-independently 2019-10-02 14:08:26 -04:00
Rob Rix
9c981030b9
🔥 ApplyAll. 2019-10-02 14:05:57 -04:00
Rob Rix
66801bf4f6
SomeAnalysisParser uses a single constraint. 2019-10-02 14:05:04 -04:00
Rob Rix
ce3fe3fbe7
Eliminate a few uses of Join. 2019-10-02 13:57:46 -04:00
Rob Rix
4a6da6903d
🔥 redundant language extensions. 2019-10-02 13:53:08 -04:00
Rob Rix
49fe06d576
🔥 the & typeclass. 2019-10-02 13:51:35 -04:00
Patrick Thomson
cf7f403c0d
Merge branch 'master' into safer-exceptions-over-tree-sitter-ffi 2019-10-02 13:48:14 -04:00
Rob Rix
56f8f5f666
Define an analogue of diffWith which does no decoration. 2019-10-02 13:43:41 -04:00
Rob Rix
6b77558d69
Rename diffWith to decoratingDiffWith. 2019-10-02 13:42:15 -04:00
Rob Rix
21f36e1161
Weaken from GADTs to MonoLocalBinds. 2019-10-02 13:35:32 -04:00
Rob Rix
3ec0981e47
🔥 DiffActions. 2019-10-02 13:30:44 -04:00
Rob Rix
f98471a614
🔥 SomeTermPair. 2019-10-02 13:30:39 -04:00
Rob Rix
fdc0fb6dcc
🔥 Decorate. 2019-10-02 13:29:15 -04:00
Rob Rix
2fb8a77ef2
🔥 doParse. 2019-10-02 13:28:56 -04:00
Rob Rix
a5307843c6
🔥 doDiff. 2019-10-02 13:28:08 -04:00
Rob Rix
99f9edf65f
Use diffWith for summaries. 2019-10-02 13:26:52 -04:00
Rob Rix
dd01c89463
Use diffWith for legacy summaries. 2019-10-02 13:25:42 -04:00
Rob Rix
2be893baf0
🔥 diffParsers. 2019-10-02 13:24:56 -04:00
Rob Rix
af17fb489b
Use diffWith for JSON trees. 2019-10-02 13:24:26 -04:00
Rob Rix
e7013d8c90
Use diffWith for JSON graphs. 2019-10-02 13:23:56 -04:00
Rob Rix
e3734e4165
Use diffWith for DOT. 2019-10-02 13:22:59 -04:00
Rob Rix
a6466b86a2
Use diffWith for show. 2019-10-02 13:22:18 -04:00
Rob Rix
4f50381c4c
Use diffWith to diff s-expressions. 2019-10-02 13:21:21 -04:00
Rob Rix
85509fa339
Explicitly list the type parameters for diffWith. 2019-10-02 13:21:08 -04:00
Rob Rix
5cee2da207
Prove DiffTerms for each of the sets of parsers. 2019-10-02 13:20:56 -04:00
Rob Rix
cf37d082d1
Define sets of parsers for each diff output format. 2019-10-02 13:18:02 -04:00
Rob Rix
589a567e60
Export diffWith. 2019-10-02 13:17:49 -04:00
Rob Rix
4036affcf2
Define a helper to run a diff with a specific set of parsers. 2019-10-02 13:15:07 -04:00
Rob Rix
052c99ec12
Define a typeclass for joining constraints together. 2019-10-02 13:14:25 -04:00
Rob Rix
a888d6722e
Generalize diffTerms to require only DiffTerms. 2019-10-02 13:04:46 -04:00
Rob Rix
4d2fd76b2d
Bifoldable (DiffFor term) is a superclass of DiffTerms. 2019-10-02 13:03:59 -04:00
Rob Rix
2c9349087c
Construct the canonical list of diff parsers. 2019-10-02 12:38:14 -04:00
Rob Rix
e8a89bfddc
Use a class for diff actions. 2019-10-02 12:38:01 -04:00
Rob Rix
8418813e5b
Define all of the diffing actions using HasDiffFor. 2019-10-02 12:32:47 -04:00
Rob Rix
678d586ec5
Define a HasDiffFor class with a type family for the diff. 2019-10-02 12:32:07 -04:00
Patrick Thomson
bbf3554bd7 Move and export the exception type. 2019-10-02 12:23:59 -04:00
Patrick Thomson
4c4329f295 Use Exception.try and throw to handle errors from tree-sitter FFI.
The crossing into IO and across the FFI boundary is a dangerous
journey. A `try` call handles all possible dynamic/IO-bound
exceptions, and enables the use of a more precise error type on our
end (rather than `String`) and makes downstream code simpler (we just
pass on the thrown `SomeException` rather than throwing a new one
based on a `Left String`).
2019-10-02 12:12:05 -04:00
Rob Rix
e8279b9081
Define an action to parse BlobPairs with a single parser. 2019-10-02 12:11:20 -04:00
Patrick Thomson
ca2f8a65a8
Merge branch 'master' into abstract-actions-over-terms 2019-10-02 12:07:35 -04:00
Rob Rix
f07c8a0c98
Use parseWith to produce tags. 2019-10-02 12:05:02 -04:00
Rob Rix
7454477ecc
Compute tags via a more general interface.
This allows us to 🔥 ALaCarteTerm.
2019-10-02 12:01:06 -04:00
Rob Rix
9f97649a33
Swap the order of the source & symbols to summarize params. 2019-10-02 11:57:26 -04:00
Rob Rix
b285e612d9
Move parseWith into Control.Effect.Parse. 2019-10-02 11:46:54 -04:00
Rob Rix
fc9a579085
🔥 doParse. 2019-10-02 11:44:29 -04:00
Rob Rix
837916e922
Use parseWith for JSONGraphTerm. 2019-10-02 11:43:40 -04:00
Rob Rix
41652c96ab
Use parseWith for JSONTreeTerm. 2019-10-02 11:41:21 -04:00
Rob Rix
b0b419bf6e
Use parseWith for DOTGraphTerm. 2019-10-02 11:39:48 -04:00
Rob Rix
5013f3bfca
Define showTermParsers using allParsers. 2019-10-02 11:37:35 -04:00
Rob Rix
f32c25b01a
Define showTermParsers as a function, rather than in a monad. 2019-10-02 11:36:14 -04:00
Rob Rix
d8b99b9cb1
Use the canonical listing of à la carte parsers for sexprTermParsers. 2019-10-02 11:27:13 -04:00
Rob Rix
035f26725f
List the canonical precise parsers. 2019-10-02 11:26:11 -04:00
Rob Rix
7aee07b3ec
List all the canonical parsers. 2019-10-02 11:24:37 -04:00
Rob Rix
1b46f40e8f
List the canonical à la carte parsers. 2019-10-02 11:23:27 -04:00
Rob Rix
0307f7e536
Alphabetize. 2019-10-02 11:22:43 -04:00
Rob Rix
2e9213bfda
Use parseWith for SExprTerm. 2019-10-02 11:19:48 -04:00
Rob Rix
d7d71f2ba5
List the SExprTerm parsers. 2019-10-02 11:18:51 -04:00
Rob Rix
316e6ad0aa
Replace annotations with () in Python terms. 2019-10-02 11:13:53 -04:00
Patrick Thomson
ab2f30cf6e List comprehensions are nicer here. 2019-10-02 10:57:29 -04:00
Rob Rix
d168e391ef
Rename doParse' to parseWith. 2019-10-02 10:49:32 -04:00
Rob Rix
5309eed607
Move showTermParsers adjacent to ShowTerm. 2019-10-02 10:48:41 -04:00
Rob Rix
3e137ae384
Use the abstracted parsers to define showTermParsers. 2019-10-02 10:47:53 -04:00
Rob Rix
7fdeb90f6b
Define abstracted parsers. 2019-10-02 10:46:15 -04:00
Rob Rix
e3e14a666b
Move SomeParser to Parsing.Parser. 2019-10-02 10:45:53 -04:00
Rob Rix
3026e6210b
Add separators to the haddocks. 2019-10-02 10:32:57 -04:00
Rob Rix
e71e1fcca1
Show terms using showTermParsers/doParse'. 2019-10-02 09:56:57 -04:00
Rob Rix
fe13a6c560
Define a helper to parse using a given list of parsers. 2019-10-02 09:56:42 -04:00
Rob Rix
1e35fcf8e8
Define the list of parsers for the ShowTerm feature. 2019-10-02 09:56:30 -04:00
Rob Rix
a1511f2a4d
Define a SomeParser type abstracting a parser over a given constraint on its terms. 2019-10-02 09:56:10 -04:00
Rob Rix
9f68d5b6c5
Redefine DiffActions as a constraint synonym. 2019-10-02 09:21:08 -04:00
Rob Rix
1fdecb0abb
Redefine TermActions as a constraint synonym since we’re specialized to it. 2019-10-02 09:19:47 -04:00
Rob Rix
764710260c
🔥 yet more redundant language extensions. 2019-10-02 09:14:43 -04:00
Rob Rix
8af41587e4
🔥 more redundant language extensions. 2019-10-02 09:13:41 -04:00
Rob Rix
9b1c99f159
🔥 redundant language extensions. 2019-10-02 08:47:59 -04:00
Patrick Thomson
79e47aaeaf No need for ProjectException. 2019-10-02 00:54:55 -04:00
Rob Rix
c847990bd6
🔥 a redundant language pragma. 2019-10-01 23:33:11 -04:00
Rob Rix
bc62f324df
Diff using an abstract interface. 2019-10-01 23:32:48 -04:00
Rob Rix
08247c7444
Summarize diffs legacy-wise using an abstract interface. 2019-10-01 22:56:41 -04:00
Rob Rix
fea2338eae
🔥 renderToCTerm. 2019-10-01 22:43:43 -04:00
Rob Rix
f08ac25116
Summarize diffs using an abstract interface. 2019-10-01 22:29:29 -04:00
Rob Rix
e5685f9f5c
🔥 redundant parens. 2019-10-01 22:26:05 -04:00
Rob Rix
5fe4b1da74
🔥 withSomeTermPair. 2019-10-01 22:23:15 -04:00
Rob Rix
68ea7e147d
The diff & term types are mutually supporting. 2019-10-01 22:14:12 -04:00
Rob Rix
0c5342a030
Diff via an abstract interface. 2019-10-01 22:12:18 -04:00
Rob Rix
377d824898
Use distinct type parameters for the annotations on either side.
This allows us to ensure that they’re handled soundly.
2019-10-01 22:10:42 -04:00
Rob Rix
7aa36de3f9
Spacing. 2019-10-01 22:05:29 -04:00
Rob Rix
8fc85e8f2b
Render diffs to JSON graphs using an abstract interface. 2019-10-01 22:02:50 -04:00
Rob Rix
b401da6c1f
Render diffs to JSON trees using an abstract interface. 2019-10-01 21:58:15 -04:00
Rob Rix
bf14a4f464
Rename jsonTerm' to jsonTreeTerm. 2019-10-01 21:54:29 -04:00
Rob Rix
c0278a970b
Factor the JSON renderer into jsonDiff. 2019-10-01 21:53:30 -04:00
Rob Rix
bda1269c76
Render diffs to DOT graphs using an abstract interface. 2019-10-01 21:50:47 -04:00
Rob Rix
cc77d7bf17
Render diffs to s-expressions using an abstracted interface. 2019-10-01 21:48:22 -04:00
Rob Rix
868bde86c1
🔥 the CanDiff constraint synonym in favour of DiffActions. 2019-10-01 21:45:37 -04:00
Rob Rix
972653aef2
Show diffs via an abstracted interface. 2019-10-01 21:44:25 -04:00
Rob Rix
bc13823887
Don’t pass the BlobPair to the render function. 2019-10-01 21:43:00 -04:00
Rob Rix
64c2287874
Move the BlobPair to the final position. 2019-10-01 21:35:45 -04:00
Rob Rix
05103d8324
Reformat the doDiff signature. 2019-10-01 21:33:43 -04:00
Rob Rix
6050f10ecf
🔥 redundant parens. 2019-10-01 21:29:42 -04:00
Rob Rix
fdb6d96ab5
Use a class to constrain diffable terms. 2019-10-01 21:23:44 -04:00
Timothy Clem
6488e6e5b1 Thanks @patrickt 2019-10-01 15:46:35 -07:00
Patrick Thomson
99683992cf Remove Data.Project.readFile and 🔥 error handling in Graph.
Because `Data.Project.readFile` could throw an `FileNotFound` error
when looking up `Blob` values in a project for a given `File`, the
code that kicks off graphing required an error constraint. Turns out
we don't even need it: if we have a project, we can access its blobs
directly, since `Blob`s contain `File`s. This allows us to obviate
`Project.readFile` in the first place, which allows us to entirely
sidestep the need to handle errors.
2019-10-01 18:05:47 -04:00
Rob Rix
81847425fa
Rename JSONTerm to JSONTreeTerm. 2019-10-01 17:20:37 -04:00
Timothy Clem
fccbe6aa58 Write out custom To/FromJSON instances 2019-10-01 14:17:18 -07:00
Rob Rix
2034359841
Resume grouping the constraints up. 2019-10-01 17:15:27 -04:00
Rob Rix
f644a452b2
Export less. 2019-10-01 17:04:51 -04:00
Rob Rix
f9e05fc234
🔥 a redundant language extension. 2019-10-01 16:11:19 -04:00
Rob Rix
7b256bffef
Define a ShowTerm instance for precise Python terms. 2019-10-01 16:03:41 -04:00
Rob Rix
235b2e868b
Abstract doParse over the constraints. 2019-10-01 16:03:26 -04:00
Rob Rix
aab52d5e36
🔥 redundant parens. 2019-10-01 15:43:36 -04:00
Rob Rix
3c37459f31
Spacing. 2019-10-01 15:41:50 -04:00
Rob Rix
50105fd525
Express all the necessary constraints over terms, not syntax. 2019-10-01 15:39:50 -04:00
Rob Rix
51dbc97226
Abstract rendering terms to JSON graphs. 2019-10-01 15:36:36 -04:00
Rob Rix
9d4b7cec29
Use the abstract interface for timing. 2019-10-01 15:33:58 -04:00
Rob Rix
bf26428ac0
Abstract JSON term serialization. 2019-10-01 15:33:15 -04:00
Rob Rix
897304ce03
Use the abstract definitions directly. 2019-10-01 15:27:45 -04:00
Rob Rix
c6cfa944d4
Use the abstracted definitions. 2019-10-01 15:25:01 -04:00
Rob Rix
97400fba94
Define a class abstracting DOT graphing. 2019-10-01 15:24:21 -04:00
Rob Rix
0cc79bb866
Define a class abstract s-expression serialization. 2019-10-01 15:23:13 -04:00
Rob Rix
2f77374b9b
Define a class abstracting term showing. 2019-10-01 15:21:58 -04:00
Rob Rix
12a07c252b
Factor the parse out of dotGraphTerm. 2019-10-01 15:15:53 -04:00
Rob Rix
8c6bf14d8f
Factor the parse out of showTerm. 2019-10-01 15:13:34 -04:00
Rob Rix
41a61e37ad
Specialize sexpTerm to Term. 2019-10-01 15:11:49 -04:00
Rob Rix
197ffdd404
Refactor sexpTerm to eliminate the parse. 2019-10-01 15:09:22 -04:00
Rob Rix
e727b3c81b
Eliminate the terms directly in doParse. 2019-10-01 15:05:19 -04:00
Rob Rix
19ac4d2c9a
Align the blobs. 2019-10-01 15:02:09 -04:00
Rob Rix
6f5e2ff8e4
Eliminate the term directly in doParse. 2019-10-01 15:00:33 -04:00
Rob Rix
a060a15d43
Align all the blobs. 2019-10-01 14:56:36 -04:00
Rob Rix
710173303e
Reformat the doParse signature. 2019-10-01 14:54:49 -04:00
Timothy Clem
cba98ae288 Try out manually defining json instances 2019-10-01 10:43:37 -07:00
Rob Rix
5e1b21c773
Export ToSExpression. 2019-10-01 13:00:38 -04:00
Rob Rix
13e3788422
Reformat the signature for doParse. 2019-10-01 12:53:47 -04:00
Rob Rix
02f46c650d
Define TermConstraints as a class. 2019-10-01 12:52:42 -04:00
Rob Rix
7aaaa6433c
🔥 redundant parens. 2019-10-01 12:47:40 -04:00
Rob Rix
cca474b0e9
🔥 the Declarations1 obligation. 2019-10-01 12:46:43 -04:00
Rob Rix
5c6df16782
Move SomeTerm/withSomeTerm into Semantic.Api.Terms. 2019-10-01 12:45:01 -04:00
Rob Rix
a97e42a19e
Simplify the Traversable obligation down to just Foldable/Functor. 2019-10-01 12:42:56 -04:00
Rob Rix
5de3d14bcc
🔥 the HasTextElement & Taggable obligations from TermConstraints. 2019-10-01 12:39:55 -04:00
Rob Rix
05e0086c82
Factor out the term construction. 2019-10-01 12:38:59 -04:00
Rob Rix
598dce7fc8
🔥 ParseEffects. 2019-10-01 12:35:06 -04:00
Rob Rix
0f8da488b0
Don’t specialize parseSymbols for the PerLanguageModes. 2019-10-01 12:33:26 -04:00
Rob Rix
152e94a844
doParse handles the PerLanguageModes. 2019-10-01 12:32:13 -04:00
Rob Rix
785d52314a
Copy in our own version of doParse & SomeTerm. 2019-10-01 12:29:56 -04:00
Rob Rix
11091cf249
Generalize renderToSymbols for legacy tagging. 2019-10-01 12:14:40 -04:00
Rob Rix
371e0c0945
renderToSymbols is pure. 2019-10-01 12:11:52 -04:00
Rob Rix
f9c20bc462
Use ToTags for the legacy tagging API as well. 2019-10-01 12:10:51 -04:00
Rob Rix
f092a3017c
Parameterize ALaCarteTerm by the symbols to summarize. 2019-10-01 12:10:38 -04:00
Rob Rix
7259059b51
Combine the code paths. 2019-10-01 12:01:04 -04:00
Rob Rix
44b0614c7d
Define renderToSymbols using renderPreciseToSymbols. 2019-10-01 11:59:26 -04:00
Rob Rix
a43e947104
Render à la carte terms to symbols via ToTags. 2019-10-01 11:58:40 -04:00
Rob Rix
09f95d6cec
Define a helper to provide a ToTags instance for à la carte terms. 2019-10-01 11:58:04 -04:00
Rob Rix
1bc251183e
Generalize renderPreciseToSymbols to any term with a ToTags instance. 2019-10-01 11:57:00 -04:00
Rob Rix
937df795a1
Don’t pass the blob into runTagging. 2019-10-01 11:54:38 -04:00
Rob Rix
de5de5f936
Don’t pass the blob into contextualizing. 2019-10-01 11:51:28 -04:00
Rob Rix
e9fc6122c4
Don’t pass the blob into tagging. 2019-10-01 11:50:30 -04:00
Rob Rix
c0ecbb12b6
🔥 SomeParser.
It’s unused.
2019-10-01 11:31:16 -04:00
Rob Rix
2432ba82b9
Merge branch 'master' into semantic-java 2019-09-30 19:02:50 -04:00
Timothy Clem
7002b3c9d8 Merge remote-tracking branch 'origin/master' into proto-lens 2019-09-30 15:42:45 -07:00
Timothy Clem
c0a53e957d Bump to newer version of proto-lens 2019-09-30 15:26:45 -07:00
Rob Rix
e19dc31c1e
Merge branch 'master' into parse-effect 2019-09-30 18:13:32 -04:00
Rob Rix
ddf5087fe2
📝 the Parse carrier modules. 2019-09-30 18:00:07 -04:00
Rob Rix
5b556eea3f
None of this did either. 2019-09-30 17:38:14 -04:00
Rob Rix
b37a8ae61c
None of this actually needed the TaskSession. 2019-09-30 17:37:07 -04:00
Rob Rix
58f23c0b7f
🔥 the TaskSession. 2019-09-30 17:23:32 -04:00
Rob Rix
6dc389fa34
. 2019-09-30 17:22:43 -04:00
Rob Rix
f1caf6beec
Pass the error up. 2019-09-30 17:20:35 -04:00
Rob Rix
9652ec9734
🔥 the Trace effect. 2019-09-30 17:19:46 -04:00
Rob Rix
b005ffb447
Don’t trace in Parsing.TreeSitter. 2019-09-30 17:14:11 -04:00
Rob Rix
9bd8ab260e
🔥 runAssignment. 2019-09-30 17:06:09 -04:00
Rob Rix
9295789b1d
🔥 a constructor we don’t check for. 2019-09-30 17:02:42 -04:00
Rob Rix
ee01643117
🔥 a bunch of redundant effects from the repl. 2019-09-30 17:00:49 -04:00
Rob Rix
8dcf0bef24
Use the simple carrier in util and the repl. 2019-09-30 16:57:51 -04:00
Rob Rix
afc4e46942
Simplify the simple carrier. 2019-09-30 16:57:42 -04:00
Rob Rix
b1832108ed
🔥 timings for most parsers. 2019-09-30 16:35:40 -04:00
Rob Rix
20e5bdd960
Duplicate the parse carrier. 2019-09-30 16:34:21 -04:00
Rob Rix
a99ef5f855
Rename Semantic.Parse to Control.Carrier.Parse.Measured. 2019-09-30 16:32:50 -04:00
Rob Rix
b783f94a32
Import just the effect where possible. 2019-09-30 16:32:37 -04:00
Rob Rix
d181a6228a
Move the Parse effect into its own module. 2019-09-30 16:26:52 -04:00
Rob Rix
001f47b42d
Stub in a module for the Parse effect. 2019-09-30 16:25:35 -04:00
Rob Rix
dc3a11c9ee
🔥 a redundant constraint. 2019-09-30 16:24:31 -04:00
Rob Rix
74acafecf8
Move the parse effect & carrier into Semantic.Parse. 2019-09-30 16:23:13 -04:00
Rob Rix
43b4de5b37
Simplify the errors helper. 2019-09-30 16:07:43 -04:00
Rob Rix
199372d0f3
Serializing requires only the config. 2019-09-30 16:00:21 -04:00
Rob Rix
e4587c6cb5
Add a Reader effect for the config alone. 2019-09-30 15:56:48 -04:00
Rob Rix
9e183cd46b
Rename TaskEff to TaskC. 2019-09-30 15:54:57 -04:00
Rob Rix
f1b4fa870b
🔥 TaskC. 2019-09-30 15:50:53 -04:00
Rob Rix
ab3d366471
🔥 Task. 2019-09-30 15:49:46 -04:00
Rob Rix
54f1bacbd2
Just call diffTermPair directly. 2019-09-30 15:49:38 -04:00
Rob Rix
6ebfb5c9ac
🔥 runTaskF. 2019-09-30 15:42:01 -04:00
Rob Rix
b5177fc94e
🔥 Serialize. 2019-09-30 15:39:23 -04:00
Rob Rix
17f4226eea
🔥 render. 2019-09-30 15:33:14 -04:00
Rob Rix
884fb7c909
🔥 Render. 2019-09-30 15:30:55 -04:00
Rob Rix
ae40db0ab5
🔥 decorate. 2019-09-30 15:29:10 -04:00
Rob Rix
b298e3a42c
Rearrange slightly. 2019-09-30 15:22:54 -04:00
Rob Rix
c06a7807c7
🔥 Decorate. 2019-09-30 15:22:09 -04:00
Rob Rix
626777b190
Split parsing out of Task. 2019-09-30 15:20:30 -04:00
Rob Rix
08601d17db
Extract errors & runAssignment to the top level. 2019-09-30 14:42:09 -04:00
Patrick Thomson
896024902c
Merge branch 'master' into abolish-the-handle-binary 2019-09-30 14:40:20 -04:00
Rob Rix
af33c0865d
Export the Parse carrier. 2019-09-30 14:35:27 -04:00
Rob Rix
7a7228636e
🔥 redundant constraints. 2019-09-30 14:32:55 -04:00
Rob Rix
7c91a7d08f
Define a parse carrier. 2019-09-30 14:29:39 -04:00
Rob Rix
856189ed15
Define a smart constructor for parse. 2019-09-30 14:28:40 -04:00
Rob Rix
bba02fe178
Define an Effect instance for Parse. 2019-09-30 14:27:31 -04:00
Rob Rix
fca3027fc7
Define an HFunctor instance for Parse. 2019-09-30 14:27:24 -04:00
Rob Rix
ef05ef941a
Derive a Functor instance for Parse. 2019-09-30 14:27:15 -04:00
Rob Rix
a91b6c1e49
Define a Parse effect. 2019-09-30 14:27:07 -04:00
Rob Rix
1dbc84d122
Stub in a module for a parse effect. 2019-09-30 14:25:51 -04:00
Rob Rix
90306d439c
Merge branch 'master' into semantic-java 2019-09-30 14:21:13 -04:00
Rob Rix
fb1e99e6a7
📝 the Send/Call thing. 2019-09-30 14:03:46 -04:00
Patrick Thomson
d7b76d3be4 Don't set the handles to binary mode. 2019-09-29 18:57:35 -04:00
Rob Rix
76cb8480a0
Use the correct parser. 2019-09-27 19:51:45 -04:00
Rob Rix
f03000a6fb
Generalize renderPreciseToSymbols. 2019-09-27 19:42:37 -04:00
Timothy Clem
c0cce3b13b First pass at switching from proto3 to proto-lens 2019-09-27 16:42:12 -07:00
Rob Rix
9585226bb7
Add precise tagging support for Java. 2019-09-27 19:09:09 -04:00
Rob Rix
c81f9660f4
Define a precise Java parser. 2019-09-27 19:08:14 -04:00
Rob Rix
5db7c6a6ee
Rename the import of Language.Python. 2019-09-27 19:07:05 -04:00
Rob Rix
ac0f15103f
Add a field for a Java mode. 2019-09-27 19:06:19 -04:00
Rob Rix
1ec65b4858
Define a constructor for the default language modes. 2019-09-27 19:02:14 -04:00
Rob Rix
a415d856d7
Merge branch 'master' into semantic-tags 2019-09-27 17:31:26 -04:00
Patrick Thomson
65060868bc Make benchmarks operate and switch to gauge.
I find myself wanting to benchmark some I/O code, so I decided to look
at our benchmark suite, to find that it had bitrotted somewhat. This
patch brings it back up to working status, switches to `gauge` (which
is more accurate than `criteron` and incurs fewer dependencies), and
sprinkles some typed paths on there.
2019-09-27 13:18:30 -04:00
Rob Rix
cf1320586d
🔥 Data.Tag. 2019-09-27 12:04:24 -04:00
Rob Rix
b99366fc37
Tag using the precise AST when requested. 2019-09-27 11:56:45 -04:00
Rob Rix
e25d5e1d7d
Perform renderToSymbols out of the monad. 2019-09-27 11:53:31 -04:00
Rob Rix
958c66a275
Use Tags.Tag. 2019-09-27 11:49:16 -04:00
Rob Rix
3659912e41
Tags always have a line. 2019-09-27 11:34:08 -04:00
Rob Rix
65eed49ecc
slice/firstLine are total. 2019-09-27 11:33:13 -04:00
Rob Rix
bbb583de55
ContextTokens always have Ranges. 2019-09-27 11:30:33 -04:00
Rob Rix
376ea3e165
Tokens always have Ranges. 2019-09-27 11:28:14 -04:00
Rob Rix
53f3e5e9cc
🔥 the context field from Data.Tag.Tag. 2019-09-27 11:17:41 -04:00
Rob Rix
ed85a4483f
🔥 the HasSpan instance for Tag. 2019-09-27 11:16:14 -04:00
Rob Rix
7406910b4a
🔥 the ToJSON instance for Tag. 2019-09-27 11:15:26 -04:00
Rob Rix
661e582794
Pull symbolsToSummarize & tagToSymbol out to the top level. 2019-09-27 11:00:48 -04:00
Rob Rix
4a1b8e80c0
Reformat slightly. 2019-09-27 10:59:55 -04:00
Rob Rix
cf940ff595
precisePythonParser produces a Py.Term. 2019-09-27 10:53:26 -04:00
Rob Rix
9b704006b4
🔥 an obsolete pragma. 2019-09-27 10:49:20 -04:00
Rob Rix
3fafa4f556
Tidy up with type applications. 2019-09-27 10:45:59 -04:00
Rob Rix
6a40b9a6cd
🔥 a redundant Element constraint. 2019-09-27 10:45:12 -04:00
Rob Rix
0c3e754eea
Alignment. 2019-09-27 10:43:31 -04:00
Rob Rix
e84da318a3
🔥 ApplyAll'. 2019-09-27 10:43:11 -04:00
Rob Rix
ed7d152169
Use the shared blobLanguage computation. 2019-09-27 10:41:22 -04:00
Rob Rix
6538f4d885
Revert "Bring the language modes into scope."
This reverts commit 8ca3d7b277.
2019-09-27 10:40:37 -04:00
Rob Rix
3058646b44
Update for * -> * Unmarshal. 2019-09-27 10:36:56 -04:00
Rob Rix
fe349fc3f0
Merge branch 'master' into semantic-tags 2019-09-27 10:00:56 -04:00
Rob Rix
374dae0229
🔥 a redundant language extension. 2019-09-27 09:57:12 -04:00
Timothy Clem
15cd4857ce Remove FILE:LANG argument from CLI 2019-09-26 14:17:24 -07:00
Rob Rix
8ca3d7b277
Bring the language modes into scope. 2019-09-26 14:04:46 -04:00
Rob Rix
3c564eb7a5
Add a FIXME. 2019-09-26 13:51:33 -04:00
Rob Rix
a17a53fb19
Turn off orphan instance warnings in Parsing.Parser. 2019-09-26 13:50:58 -04:00
Rob Rix
f4d89746d1
Define a precise Python parser. 2019-09-26 13:50:20 -04:00
Rob Rix
ead0253c73
Define orphan Unmarshal instances for Loc, Span, and Range. 2019-09-26 13:49:45 -04:00
Rob Rix
94f6f8e29f
Define an UnmarshalParser constructor. 2019-09-26 13:27:19 -04:00
Rob Rix
957f8abdd4
Add a helper to parse to precise ASTs. 2019-09-26 13:24:24 -04:00
Rob Rix
8210639d35
Allow the action to report failures. 2019-09-26 13:23:49 -04:00
Rob Rix
a74490cc15
Factor the conditional leftward. 2019-09-26 13:03:40 -04:00
Rob Rix
07ddc7699e
Kleisli composition. 2019-09-26 12:58:40 -04:00
Rob Rix
d4eefbf04b
Factor the action-agnostic portion of parseToAST into a runParse function. 2019-09-26 12:57:15 -04:00
Rob Rix
661805e6da
withRootNode already copies into the pointer. 2019-09-26 12:54:20 -04:00
Rob Rix
7c40ca0753
Correct the docs for parseToAST. 2019-09-26 12:51:10 -04:00
Rob Rix
81fca0f6bb
🔥 runParserToAST. 2019-09-26 12:50:35 -04:00
Rob Rix
3f4c89d09b
Return errors from runParseToAST. 2019-09-26 12:47:33 -04:00
Rob Rix
2745c69aa1
Rely on the TS definition of withParser. 2019-09-26 12:45:50 -04:00
Rob Rix
c399f0d637
Use withParser to define parseToAST. 2019-09-26 12:35:21 -04:00
Rob Rix
b563f20edb
Define a helper to run an action with a parser. 2019-09-26 12:25:22 -04:00
Rob Rix
0b0b2ef427
🔥 Result. 2019-09-26 12:20:25 -04:00
Rob Rix
aafe9f47bc
Reformat an if statement. 2019-09-26 12:19:02 -04:00
Rob Rix
1a05c46bf0
Dedent. 2019-09-26 12:17:59 -04:00
Rob Rix
c8baf4a4ba
🔥 more do blocks. 2019-09-26 12:17:50 -04:00
Rob Rix
fc6d4091d6
Spacing. 2019-09-26 12:17:18 -04:00
Rob Rix
70c9b865f0
🔥 redundant do blocks. 2019-09-26 12:16:45 -04:00
Rob Rix
726329d659
Rename runParser to runParserToAST. 2019-09-26 12:16:05 -04:00
Rob Rix
a05f91cede
Pass the language mode around with a Reader effect. 2019-09-25 11:55:31 -04:00
Rob Rix
44f9a11a62
Define a helper to look up the mode for a given language. 2019-09-25 11:48:07 -04:00
Rob Rix
b394bcd816
Pass the modes to parseSymbols. 2019-09-25 11:46:16 -04:00
Rob Rix
10093b1088
Pass the language modes to parseTermBuilder. 2019-09-25 11:43:17 -04:00
Rob Rix
f68c710a58
Pass the language modes to parseSymbolsBuilder. 2019-09-25 11:42:14 -04:00
Rob Rix
d066b31081
Fix the help text for the protobuf symbols output. 2019-09-25 11:38:42 -04:00
Rob Rix
b6ca57e87a
Combine the flags for JSON symbols output. 2019-09-25 11:38:24 -04:00
Rob Rix
58c5eac144
Rename the language mode types. 2019-09-25 11:34:08 -04:00
Rob Rix
d773ca8282
Move LanguageModes & ASTMode into Data.Language. 2019-09-25 11:32:57 -04:00
Rob Rix
95b83e983c
🔥 the completer.
It doesn’t seem to work anyway.
2019-09-25 11:20:38 -04:00
Rob Rix
ea6184367b
Reformat the Python mode parser. 2019-09-25 11:20:21 -04:00
Rob Rix
c7b611cc52
Define an option for the Python mode. 2019-09-25 11:19:42 -04:00
Rob Rix
2b650143cb
Derive Bounded & Enum instances for ASTMode. 2019-09-25 11:19:36 -04:00
Rob Rix
a20063353e
Derive a Read instance for ASTMode. 2019-09-25 10:48:38 -04:00
Rob Rix
fc153ec593
Define a datatype representing the selection of a mode for a given language. 2019-09-25 10:38:22 -04:00