Rob Rix
|
afce15e01f
|
Use <> instead of mappend.
|
2015-11-27 11:32:31 -05:00 |
|
Rob Rix
|
3d65c325d1
|
We no longer need Console.
|
2015-11-27 11:31:35 -05:00 |
|
Rob Rix
|
5c295fdcec
|
Remove the Attribute stuff.
|
2015-11-27 11:31:24 -05:00 |
|
Rob Rix
|
be328aa0c2
|
Unified rendering produces ByteStrings using rainbow.
|
2015-11-27 11:31:03 -05:00 |
|
Rob Rix
|
b109418ede
|
We don’t need format after all.
|
2015-11-27 11:18:51 -05:00 |
|
Rob Rix
|
1010e10889
|
Add a binding to format a string.
|
2015-11-27 10:36:59 -05:00 |
|
Rob Rix
|
99e383a644
|
Move Console and Unified into the exe.
|
2015-11-27 10:14:12 -05:00 |
|
Rob Rix
|
908d6b9de0
|
Ingest Keyed nodes.
|
2015-11-27 09:19:40 -05:00 |
|
Rob Rix
|
1ecad15128
|
Import Data.Map again.
|
2015-11-27 09:19:09 -05:00 |
|
Rob Rix
|
854e2f7013
|
withNamedChildren returns name/child pairs.
|
2015-11-27 09:19:02 -05:00 |
|
Rob Rix
|
2353cf3798
|
Rename the parameter.
|
2015-11-26 16:28:17 -05:00 |
|
Rob Rix
|
0e68767028
|
Close over the function.
|
2015-11-26 16:27:57 -05:00 |
|
Rob Rix
|
fdc2942411
|
Just return the result directly.
|
2015-11-26 16:27:22 -05:00 |
|
Rob Rix
|
3b24a3cd34
|
Parsing returns a Term.
|
2015-11-26 16:25:55 -05:00 |
|
Rob Rix
|
ae7235eb69
|
Use withCString instead of copying and freeing.
|
2015-11-26 16:24:57 -05:00 |
|
Rob Rix
|
4fd4c66f08
|
Rename parse to documentToTerm .
|
2015-11-26 16:22:27 -05:00 |
|
Rob Rix
|
253c461b12
|
Handle the alloca in parse .
|
2015-11-26 16:22:01 -05:00 |
|
Rob Rix
|
f27f35c683
|
Better error messages.
|
2015-11-26 16:21:54 -05:00 |
|
Rob Rix
|
ac470d3fbb
|
We no longer require a Storable instance for TSLength.
|
2015-11-26 16:17:25 -05:00 |
|
Rob Rix
|
8a2fac6816
|
Construct a singleton set.
|
2015-11-26 16:15:56 -05:00 |
|
Rob Rix
|
4505c0f7e3
|
Don’t qualify member and fromList .
|
2015-11-26 16:15:39 -05:00 |
|
Rob Rix
|
f6f4ea05ed
|
Don’t import Data.Map .
|
2015-11-26 16:14:34 -05:00 |
|
Rob Rix
|
54e931eabe
|
Handle the allocation within parseTreeSitterFile .
|
2015-11-26 16:09:16 -05:00 |
|
Rob Rix
|
be6dc5e627
|
Once more remove withAlloc.
|
2015-11-26 16:07:25 -05:00 |
|
Rob Rix
|
ab7fa792ed
|
Use alloca instead of withAlloc.
|
2015-11-26 16:07:21 -05:00 |
|
Rob Rix
|
018f4dcbd5
|
Operate strictly recursively.
This means we’re ensured of using allocations solely within the scopes
in which they are valid.
|
2015-11-26 16:07:04 -05:00 |
|
Rob Rix
|
19818231f5
|
We can safely alloca the root.
|
2015-11-26 15:37:57 -05:00 |
|
Rob Rix
|
49133ad240
|
Don’t import Generic.
|
2015-11-26 14:03:57 -05:00 |
|
Rob Rix
|
aaf4164e92
|
Don’t derive Generic.
|
2015-11-26 14:03:53 -05:00 |
|
Rob Rix
|
4d314d6729
|
Don’t import GHC.Prim.
|
2015-11-26 14:02:33 -05:00 |
|
Rob Rix
|
755cae0ae4
|
Don’t import CStorable.
|
2015-11-26 14:01:46 -05:00 |
|
Rob Rix
|
f15af07f2e
|
Don’t bother deriving CStorable.
|
2015-11-26 14:01:42 -05:00 |
|
Rob Rix
|
1e8c4b54ac
|
Just cheer when we’re done.
|
2015-11-26 14:01:16 -05:00 |
|
Rob Rix
|
1df3b71e2c
|
Rename the variable.
|
2015-11-25 18:42:21 -05:00 |
|
Rob Rix
|
f82ff23e8d
|
Declare ts_language_c().
|
2015-11-25 18:38:38 -05:00 |
|
Rob Rix
|
3f37b6544f
|
Linkers are terrible.
|
2015-11-25 18:38:29 -05:00 |
|
Rob Rix
|
5162128c40
|
What if malloc?
It no longer crashes, so, that’s cool.
|
2015-11-25 18:32:48 -05:00 |
|
Rob Rix
|
1eac4a8ab3
|
Fake out the storable instances.
|
2015-11-25 18:32:17 -05:00 |
|
Rob Rix
|
bf3fac3d53
|
What if these were records?
|
2015-11-25 18:32:05 -05:00 |
|
Rob Rix
|
b4bcc9ef47
|
Tidy up toTerm.
|
2015-11-25 18:31:54 -05:00 |
|
Rob Rix
|
d4d6210a19
|
Restore withAlloc.
|
2015-11-25 18:30:55 -05:00 |
|
Rob Rix
|
3cbe2f7a15
|
Assert that we didn’t get a broken child.
|
2015-11-25 18:30:21 -05:00 |
|
Rob Rix
|
88e78d00d8
|
Fetch the node’s name once per node.
|
2015-11-25 17:11:43 -05:00 |
|
Rob Rix
|
7039beceea
|
Return fast on empty children lists.
|
2015-11-25 17:09:42 -05:00 |
|
Rob Rix
|
81559526ac
|
Assert that the data ptr is non-null.
|
2015-11-25 17:02:06 -05:00 |
|
Rob Rix
|
caf06cef5e
|
Don’t import the Haskell parser stuff.
|
2015-11-25 16:41:06 -05:00 |
|
Rob Rix
|
5158e28349
|
Up to but not including the count.
|
2015-11-25 15:22:18 -05:00 |
|
Rob Rix
|
4aadaae7b6
|
Convert name to a Haskell string.
|
2015-11-25 15:17:51 -05:00 |
|
Rob Rix
|
2fef254244
|
Disambiguate which member we mean.
|
2015-11-25 15:17:40 -05:00 |
|
Rob Rix
|
854225666b
|
Produce Fixed nodes.
|
2015-11-25 15:10:49 -05:00 |
|
Rob Rix
|
3f97be8df8
|
Remove withAlloc .
|
2015-11-25 15:05:24 -05:00 |
|
Rob Rix
|
ac6173fd8a
|
Just use alloca.
|
2015-11-25 15:05:10 -05:00 |
|
Rob Rix
|
debae6d3d4
|
Everything else is Indexed (for now).
|
2015-11-25 15:02:42 -05:00 |
|
Rob Rix
|
aa4de17445
|
Only use leaves for empty nodes.
|
2015-11-25 15:02:30 -05:00 |
|
Rob Rix
|
d6860a8934
|
Unpack the node and category another layer deep.
|
2015-11-25 15:02:11 -05:00 |
|
Rob Rix
|
0b735a697d
|
None of these may be NULL.
|
2015-11-25 15:01:27 -05:00 |
|
Rob Rix
|
855a8bc51b
|
Annotate terms with ranges.
|
2015-11-25 12:56:22 -05:00 |
|
Rob Rix
|
3f5ce3806d
|
Populate leaves with the substring for the node.
|
2015-11-25 12:54:42 -05:00 |
|
Rob Rix
|
8bc51c2f86
|
Compute a substring from a range.
|
2015-11-25 12:53:56 -05:00 |
|
Rob Rix
|
40a0bc0b91
|
Pass the contents of the file to toTerm.
|
2015-11-25 12:53:48 -05:00 |
|
Rob Rix
|
ba3e2d8256
|
Compute the range of a given node.
|
2015-11-25 12:51:11 -05:00 |
|
Rob Rix
|
c57dd1ef8f
|
Return the position & size directly.
Copying into TSLengths ended up being worst of both worlds.
|
2015-11-25 12:50:22 -05:00 |
|
Rob Rix
|
93e05435e5
|
Import position/size functions.
|
2015-11-25 12:25:06 -05:00 |
|
Rob Rix
|
5667f4d687
|
That is not where these live.
|
2015-11-25 12:24:07 -05:00 |
|
Rob Rix
|
6444566952
|
Bridge node sizing.
|
2015-11-25 12:22:21 -05:00 |
|
Rob Rix
|
81d529dee8
|
Bridge node positions.
|
2015-11-25 12:21:47 -05:00 |
|
Rob Rix
|
1bb38abd71
|
Generalize withNode to withAlloc .
|
2015-11-25 12:19:39 -05:00 |
|
Rob Rix
|
2d60fea921
|
Remove the Kliesli import as we don’t actually use it.
|
2015-11-25 12:08:30 -05:00 |
|
Rob Rix
|
0f059a4299
|
Retrieve the named children of a node.
|
2015-11-25 12:06:21 -05:00 |
|
Rob Rix
|
b39bc3e33e
|
Produce a list of named children of a node.
|
2015-11-25 12:05:25 -05:00 |
|
Rob Rix
|
e87459d608
|
Import left-to-right Kliesli composition.
|
2015-11-25 12:05:05 -05:00 |
|
Rob Rix
|
17078ad865
|
Import the named child function.
|
2015-11-25 11:47:24 -05:00 |
|
Rob Rix
|
4f63394379
|
Add a wrapper function for getting the child at a specific index.
|
2015-11-25 11:46:34 -05:00 |
|
Rob Rix
|
6c1688f7ef
|
Retrieve the named child count.
|
2015-11-25 11:43:36 -05:00 |
|
Rob Rix
|
9b35bd7f24
|
Import the named child count.
|
2015-11-25 11:43:31 -05:00 |
|
Rob Rix
|
5b6c88b6b8
|
Add a bridging function wrapping ts_node_named_child_count.
|
2015-11-25 11:42:31 -05:00 |
|
Rob Rix
|
3744714c59
|
Move the productions into toTerm .
|
2015-11-25 11:12:16 -05:00 |
|
Rob Rix
|
333bba93c5
|
Flesh out toTerm.
|
2015-11-25 10:52:48 -05:00 |
|
Rob Rix
|
b1a419e6ee
|
Pull toTerm out into global scope and parameterize by document .
|
2015-11-25 10:41:37 -05:00 |
|
Rob Rix
|
56ad4b9b9c
|
Retrieve the node’s name.
|
2015-11-25 10:39:13 -05:00 |
|
Rob Rix
|
3460632ab9
|
Import ts_node_p_name.
|
2015-11-25 10:09:05 -05:00 |
|
Rob Rix
|
8030d173a2
|
Bridge a function for getting a node’s name.
|
2015-11-25 10:08:16 -05:00 |
|
Rob Rix
|
277971ba16
|
Just Ptr, not Foreign.Ptr.
|
2015-11-25 10:06:14 -05:00 |
|
Rob Rix
|
cc7041f0e8
|
Match any category in the definition of toTerm.
|
2015-11-25 10:01:07 -05:00 |
|
Rob Rix
|
12e6c223b0
|
Add sets of keyed/fixed productions.
|
2015-11-25 10:00:52 -05:00 |
|
Rob Rix
|
5aa7306b78
|
Unambiguous unfolding.
|
2015-11-25 09:56:26 -05:00 |
|
Rob Rix
|
c95d2099b6
|
Hide unfoldM.
|
2015-11-25 09:56:14 -05:00 |
|
Rob Rix
|
a147cffe11
|
Use withNode for the root.
|
2015-11-25 09:38:28 -05:00 |
|
Rob Rix
|
048b1cb98f
|
Add a withNode function abstracting allocation & casting.
|
2015-11-25 09:37:44 -05:00 |
|
Rob Rix
|
ea490a3871
|
Rearrange the where clause &c.
|
2015-11-25 09:37:19 -05:00 |
|
Rob Rix
|
73c2ec7d33
|
Start unfolding a term.
|
2015-11-24 17:14:44 -05:00 |
|
Rob Rix
|
76784bf7e4
|
Extract parsing files.
|
2015-11-24 16:51:53 -05:00 |
|
Rob Rix
|
de65176a0a
|
Use withForeignPtr to clean up the root node.
|
2015-11-24 16:46:42 -05:00 |
|
Rob Rix
|
8c0496fb95
|
Just leak the root node already.
|
2015-11-24 16:42:10 -05:00 |
|
Rob Rix
|
0effaae938
|
Allocate a root node I guess.
|
2015-11-24 16:40:47 -05:00 |
|
Rob Rix
|
eaf365f4f6
|
Import the bridged TSNode thing.
|
2015-11-24 16:39:42 -05:00 |
|
Rob Rix
|
76e086cf8c
|
Implement Storable for TSLength.
|
2015-11-24 16:39:31 -05:00 |
|
Rob Rix
|
cb08d79464
|
Add some bridges and stuff.
|
2015-11-24 16:39:20 -05:00 |
|
Rob Rix
|
7879dccb63
|
TSNode’s fields are strict.
|
2015-11-24 14:35:56 -05:00 |
|
Rob Rix
|
2c5f17228b
|
TSLength’s fields are strict.
|
2015-11-24 14:35:40 -05:00 |
|
Rob Rix
|
cc3fd398b9
|
Extra space.
|
2015-11-24 14:32:12 -05:00 |
|
Rob Rix
|
31de4ca26b
|
Don’t use record syntax for TSNode.
|
2015-11-24 14:32:02 -05:00 |
|
Rob Rix
|
20b5fe1604
|
Don’t use record syntax for TSLength.
|
2015-11-24 14:31:41 -05:00 |
|
Rob Rix
|
778208b3b7
|
Nodes are product types.
|
2015-11-24 14:17:04 -05:00 |
|
Rob Rix
|
d60398f115
|
Include a node directly.
|
2015-11-24 14:16:56 -05:00 |
|
Rob Rix
|
ff5797fde5
|
TSLength is many things.
|
2015-11-24 14:13:41 -05:00 |
|
Rob Rix
|
3bc87b03aa
|
Add a TSLength type.
|
2015-11-24 14:13:15 -05:00 |
|
Rob Rix
|
9b47c6af58
|
Fetch the root node.
This crashes; `TSNode` is not an opaque pointer to a struct, it’s
actually a product type.
|
2015-11-24 14:08:29 -05:00 |
|
Rob Rix
|
a97dc752d8
|
Try importing the root node getter.
|
2015-11-24 14:08:08 -05:00 |
|
Rob Rix
|
13bc8afef6
|
In fact, free the document first.
|
2015-11-24 13:53:42 -05:00 |
|
Rob Rix
|
86bf87b6a8
|
Free the document at the end too I guess.
|
2015-11-24 13:53:35 -05:00 |
|
Rob Rix
|
7ab0b76abf
|
Import ts_document_free.
|
2015-11-24 13:53:13 -05:00 |
|
Rob Rix
|
c2cc953e9c
|
Parse the document.
|
2015-11-24 13:52:45 -05:00 |
|
Rob Rix
|
d1c33c2ef4
|
Import ts_document_parse.
|
2015-11-24 13:52:16 -05:00 |
|
Rob Rix
|
009025d22a
|
Free the input string.
|
2015-11-24 13:51:34 -05:00 |
|
Rob Rix
|
4b0dae5eb7
|
Set the input string.
|
2015-11-24 13:51:21 -05:00 |
|
Rob Rix
|
f8918f815e
|
Build an empty C string.
|
2015-11-24 13:51:18 -05:00 |
|
Rob Rix
|
dea11341b4
|
Import ts_document_set_input_string.
|
2015-11-24 13:50:10 -05:00 |
|
Rob Rix
|
8944e704c1
|
Set the document’s language.
|
2015-11-24 13:46:00 -05:00 |
|
Rob Rix
|
186bf4578a
|
Select the language.
|
2015-11-24 13:45:54 -05:00 |
|
Rob Rix
|
2569450ea6
|
It actually takes a language too.
|
2015-11-24 13:45:12 -05:00 |
|
Rob Rix
|
77ff71011e
|
Import ts_document_set_language.
|
2015-11-24 13:44:24 -05:00 |
|
Rob Rix
|
0383f8fa7b
|
Add a space.
|
2015-11-24 13:42:09 -05:00 |
|
Rob Rix
|
682beed88e
|
Make a document and print the size.
|
2015-11-24 13:41:30 -05:00 |
|
Rob Rix
|
8faa070a67
|
Handle errors.
|
2015-11-24 13:40:07 -05:00 |
|
Rob Rix
|
d71b7769b9
|
Import ts_document_make.
|
2015-11-24 13:23:29 -05:00 |
|
Rob Rix
|
34ccb0e368
|
Import the language type as TSLanguage.
|
2015-11-24 13:23:18 -05:00 |
|
Rob Rix
|
4e5da737bd
|
Import ts_language_c .
|
2015-11-24 13:15:45 -05:00 |
|
Rob Rix
|
217fd1529c
|
Delete all the Haskell parsing stuff.
|
2015-11-24 10:18:56 -05:00 |
|
Rob Rix
|
b2ed7144e2
|
Ingest data declarations, sort of.
|
2015-11-24 10:16:37 -05:00 |
|
Rob Rix
|
5d5921001b
|
Ingest type declarations, sort of.
|
2015-11-24 10:16:25 -05:00 |
|
Rob Rix
|
eb51a0cd18
|
Add HsName to Leaf.
|
2015-11-24 10:16:17 -05:00 |
|
Rob Rix
|
5c6a2ca1bc
|
fromMaybe .
|
2015-11-20 13:21:09 -08:00 |
|
Rob Rix
|
9cf6a823ef
|
Ingest HsImportDecl.
|
2015-11-20 13:02:29 -08:00 |
|
Rob Rix
|
37e61a75e6
|
Ingest export specifiers.
|
2015-11-20 13:00:10 -08:00 |
|
Rob Rix
|
9a4d1725fc
|
Add a Leaf type with some constructors.
|
2015-11-20 12:59:53 -08:00 |
|
Rob Rix
|
af0ebfa696
|
Ingest exports/imports/declarations.
|
2015-11-20 08:55:19 -08:00 |
|
Rob Rix
|
2ac3f65b15
|
Stub in ingestion of exports/imports/declarations.
|
2015-11-20 08:55:08 -08:00 |
|
Rob Rix
|
bf2c4bc18b
|
Pretend like we can make a module into a term.
|
2015-11-20 08:50:11 -08:00 |
|
Rob Rix
|
58cffa4e4c
|
Read some files in.
|
2015-11-20 08:36:54 -08:00 |
|
Rob Rix
|
28f93515bb
|
Remove the fixtures.
|
2015-11-20 08:12:00 -08:00 |
|
Rob Rix
|
891d2b75a1
|
Use unit in the fixtures.
|
2015-11-19 12:04:07 -08:00 |
|
Rob Rix
|
e6385e2832
|
Diffs are annotated.
|
2015-11-19 11:27:31 -08:00 |
|
Rob Rix
|
680465dfbf
|
Abstract Diff over an annotation type.
|
2015-11-18 13:23:47 -08:00 |
|
Rob Rix
|
5129bc455b
|
Move the diff fixture thing to the executable.
|
2015-11-18 11:45:23 -08:00 |
|
Rob Rix
|
c56cc6cb74
|
We don’t need to import these.
|
2015-11-17 16:20:57 -08:00 |
|
Rob Rix
|
c8b573cb33
|
Move Operation into its own file.
|
2015-11-17 15:14:57 -08:00 |
|
Rob Rix
|
5837cac53f
|
Print a string.
|
2015-11-17 14:54:16 -08:00 |
|
Rob Rix
|
e5b35fdc4a
|
I mean, sure.
|
2015-11-17 14:44:16 -08:00 |
|