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 |
|