1
1
mirror of https://github.com/github/semantic.git synced 2024-12-18 20:31:55 +03:00
Commit Graph

249 Commits

Author SHA1 Message Date
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