1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 06:11:49 +03:00
Commit Graph

323 Commits

Author SHA1 Message Date
Rob Rix
5ef2464550 Extract the overall term constructor to the top level. 2017-01-19 15:18:02 -05:00
Rob Rix
4d1d84ef9f Map parse error categories in one place. 2017-01-19 15:09:22 -05:00
Rob Rix
33040ea22e Assign terms based on the Category. 2017-01-19 12:26:45 -05:00
Rob Rix
83acde8ad4 Add a function computing the Category for a given language & production name. 2017-01-19 12:26:20 -05:00
Rob Rix
dbcfb85c1c This comment now applies to sourceSpan as well. 2017-01-18 13:40:55 -05:00
Rob Rix
0854ba66e2 Evaluate the SourceSpan strictly. 2017-01-18 13:39:58 -05:00
Rob Rix
60a8f588e4 Term assignment takes a pure SourceSpan.
We always access this now, so we don’t need to guard it in IO.
2017-01-18 13:39:40 -05:00
Timothy Clem
5c0ee56565 Bring in new tree-sitter API to query all child nodes 2016-12-06 11:21:31 -08:00
joshvera
30a3961409 Add go, defer, and subscript access statements 2016-11-14 19:05:02 -05:00
joshvera
0d58e97070 Merge remote-tracking branch 'origin/master' into go-parser 2016-11-02 15:25:50 -04:00
Timothy Clem
4b42939bf3 Basics of Ruby termConstructor 2016-10-19 08:30:46 -07:00
joshvera
9d81396317 construct Go terms with its termConstructor 2016-10-17 15:51:53 -04:00
joshvera
098655b1d9 Remove filepath from SourceSpan 2016-10-11 15:09:24 -04:00
joshvera
c0a8483263 Merge remote-tracking branch 'origin/master' into add-source-spans 2016-10-07 11:28:57 -04:00
joshvera
4c219279b2 SourceSpans are one-indexed 2016-10-06 18:31:06 -04:00
Timothy Clem
fa2f13ab74 Update to latest tree-sitter and parsers 2016-10-06 11:07:40 -07:00
joshvera
7ba5607cc8 Add source spans to terms 2016-10-05 17:27:45 -04:00
Rob Rix
fc43dd54a0 🔥 a redundant import. 2016-09-14 19:23:40 -04:00
Rick Winfrey
67d5bec5ff Format comment 2016-09-09 16:23:19 -05:00
Rob Rix
29e5b5d1da Filter empty nodes out at the assignment of children. 2016-09-08 09:42:16 -04:00
Rob Rix
eccaab1fbd Use record wildcards to destructure the source blob. 2016-09-08 09:40:00 -04:00
Rob Rix
8ff6b1aa96 Use $! instead of seq. 2016-09-08 09:39:19 -04:00
Rob Rix
1e9785fc67 Add a fallback term constructor for other languages. 2016-09-07 15:14:20 -04:00
Rob Rix
a1be4c2841 Map C productions into terms using a term constructor. 2016-09-07 15:11:55 -04:00
Rob Rix
c194d4578a Select the term constructor using the language. 2016-09-07 13:00:59 -04:00
Rob Rix
9750b252ed Rename the term constructor for JS. 2016-09-07 11:57:24 -04:00
Rob Rix
0c0a67ba65 Move javascriptTermConstructor into its own module. 2016-09-07 11:56:28 -04:00
Rob Rix
bd7fab0cd8 🔥 defaultCategoryForNodeName. 2016-09-07 10:31:58 -04:00
Rob Rix
18bcc8bd0c 🔥 categoriesForLanguage. 2016-09-07 10:31:52 -04:00
Rob Rix
b5534682a8 Construct in javascriptTermConstructor. 2016-08-25 18:20:40 -04:00
Rob Rix
07c0d89805 Declare the export list for TreeSitter. 2016-08-25 15:42:30 -04:00
joshvera
38fd0431f7 Fix semantic-git-diff-tests 2016-08-22 17:56:48 -04:00
joshvera
bbc2c2b9b2 Add the empty statement 2016-08-19 15:53:04 -04:00
Rick Winfrey
1b542a89ba Promote "rel_op" to general language production 2016-08-17 11:55:20 -05:00
Rick Winfrey
9907711099 Make "bitwise_op" a generic language production 2016-08-17 11:00:25 -05:00
joshvera
8bcf292ba0 Merge remote-tracking branch 'origin/master' into comma-summaries 2016-08-16 19:34:30 -04:00
Rick Winfrey
5f23992143 Merge branch 'master' into more-detail-more-problems 2016-08-16 16:10:04 -05:00
joshvera
329c050811 Merge remote-tracking branch 'origin/master' into comma-summaries 2016-08-16 15:44:09 -04:00
joshvera
a9c3bfa671 Add CommaOperator 2016-08-16 15:44:02 -04:00
Rick Winfrey
e29651ce07 Create Comment Category instances from TreeSitter productions 2016-08-16 13:09:43 -05:00
Rob Rix
62c5eb758f Apply fromIntegral strictly. 2016-08-16 11:35:12 -04:00
Rob Rix
fba230319b Be very explicit about evaluating the SourceSpan eagerly. 2016-08-16 11:04:52 -04:00
Rob Rix
1666c536f8 Take the SourceSpan in the monad. 2016-08-16 10:59:10 -04:00
Rob Rix
4190abe065 Generalize termConstructor to return its argument in a Monad. 2016-08-16 09:50:50 -04:00
Rob Rix
97e5ee5aa2 🔥 redundant parens. 2016-08-15 17:46:43 -04:00
Rob Rix
5a979aaf5b Document why sourceSpan isn’t evaluated eagerly any more. 2016-08-15 17:41:13 -04:00
Rob Rix
f1c1d85ec8 Don’t evaluate the sourceSpan strictly, i.e. only compute it when there are actually errors (but then use it eagerly). 2016-08-15 17:40:07 -04:00
Rob Rix
eb99b40a15 Don’t inline toTerm after all.
It’s recursive and we want to see how its performance breaks down a
little better.
2016-08-15 17:28:17 -04:00
Rob Rix
d4022e0c43 Define getChild using >>. 2016-08-15 17:25:56 -04:00
Rob Rix
3a87e5501d Evaluate sourceSpan eagerly too. 2016-08-15 17:17:03 -04:00
Rob Rix
8837f48d3d Bind range instead of assigning it. 2016-08-15 17:12:15 -04:00
Rob Rix
5adb799b48 INLINE a bunch of stuff in documentToTerm. 2016-08-15 17:04:45 -04:00
Rob Rix
042b3b9c29 Bind sourceSpan instead of assigning it. 2016-08-15 17:04:38 -04:00
joshvera
e209199016 Add If constructor to Syntax 2016-08-11 17:39:44 -04:00
Rob Rix
48213c4134 🔥 some stray blank lines. 2016-08-10 09:48:16 -04:00
Rob Rix
a5dce511fa Fix a missing import. 2016-08-02 12:08:26 -04:00
Rob Rix
54c86812f3 Merge branch 'master' into precompute-p,q-grams 2016-08-02 12:05:19 -04:00
joshvera
36c4001682 Merge remote-tracking branch 'origin/master' into throw-syntax 2016-08-01 13:55:44 -04:00
joshvera
ef4389a5c5 Merge remote-tracking branch 'origin/master' into constructors 2016-08-01 13:49:35 -04:00
joshvera
9bd34fe3ff Merge remote-tracking branch 'origin/master' into try-syntax 2016-08-01 13:38:50 -04:00
Josh Vera
fb9c89b509 Merge branch 'master' into method-definition-syntax 2016-08-01 12:58:05 -04:00
joshvera
7c1e6677a8 Add math_op 2016-08-01 12:19:05 -04:00
joshvera
dca3628afd Add comma_op mapping to Operator category in categoriesForLanguage 2016-08-01 12:07:04 -04:00
joshvera
e2d0b01ced Map JS new_expression to Constructor 2016-07-30 14:27:34 -04:00
joshvera
0e5255b7de Map method_definition to Method categories 2016-07-30 14:08:46 -04:00
joshvera
00613a034b Remove redundant import 2016-07-30 14:01:20 -04:00
joshvera
1dc3fb2727 Add a Class JS mapping in categoriesForLanguage 2016-07-29 16:28:51 -04:00
joshvera
ddcb6f6a1d Add Try/Catch/Finally cases to defaultCategoryForNodeName 2016-07-29 15:59:51 -04:00
joshvera
b97da37c79 Add Throw to defaultCategoryForNodeName 2016-07-29 15:33:15 -04:00
joshvera
ebda2e6900 Remove redundant import 2016-07-29 15:31:04 -04:00
joshvera
aa99744db7 Remove SourceSpan from Record 2016-07-29 14:12:44 -04:00
joshvera
f7286f927c Construct errors with a SourceSpan 2016-07-29 14:05:11 -04:00
joshvera
4493751dd7 Merge remote-tracking branch 'origin/master' into error-syntax 2016-07-29 12:18:14 -04:00
joshvera
fbc9e335a3 Merge remote-tracking branch 'origin/master' into error-syntax 2016-07-29 11:44:38 -04:00
joshvera
7f3cb2e9ef Merge remote-tracking branch 'origin/master' into loop-syntax 2016-07-29 11:42:25 -04:00
joshvera
d057e156cd Add Return case to Syntax 2016-07-28 14:34:53 -04:00
joshvera
7eac130089 Add DoWhile and While cases 2016-07-28 14:08:34 -04:00
joshvera
951617ff5e Add For cases to categoriesForLanguage and defaultCategoryForNodeName 2016-07-28 13:50:43 -04:00
joshvera
c7d7ee51aa Keep track of source spans 2016-07-27 18:11:55 -04:00
Rob Rix
d9de3545d8 Merge branch 'master' into precompute-p,q-grams
# Conflicts:
#	src/Category.hs
#	src/Diffing.hs
#	src/TreeSitter.hs
2016-07-26 15:52:37 -04:00
joshvera
30d4645dbb Add bool_op and expression_statement mapping to categoriesForLanguage 2016-07-25 14:57:14 -04:00
joshvera
70f9329f1a Merge remote-tracking branch 'origin/master' into syntax-redux 2016-07-22 12:36:03 -04:00
Rob Rix
1127fd2672 🔥 the ad hoc computation of term costs. 2016-07-15 17:49:27 -04:00
Rob Rix
b975559c6d Parameterize the Parser type synonym by functor and annotation. 2016-07-15 17:43:07 -04:00
Rob Rix
5bc2cd93f1 Only annotate terms & diffs with costs, not sizes. 2016-07-15 11:17:53 -04:00
Rob Rix
d1ed015446 Parser takes a list of field types. 2016-07-14 16:35:20 -04:00
joshvera
9973343364 Map dictionary literals to objects 2016-06-28 16:38:06 -04:00
joshvera
0a574871c9 Merge remote-tracking branch 'origin/master' into syntax-redux 2016-06-21 17:08:40 -04:00
Rick Winfrey
eb638a974b Provide JavaScript specific Operator categories for delete_op, type_op and void_op 2016-06-17 17:04:18 -05:00
Rick Winfrey
f2d5a2be04 Add Operator Category
Although we don’t currently receive operator productions from
TreeSitter directly, this is in anticipation of that.
2016-06-17 17:01:35 -05:00
Rick Winfrey
88dd8e3c6c Add Ternary Category / Syntax to DiffSummaries 2016-06-17 15:33:22 -05:00
Rick Winfrey
76c4037933 Add support for MathAssignment Category and Syntax 2016-06-17 14:57:51 -05:00
Rick Winfrey
3ac96be52c Add subscript_access case for defaultCategoryName 2016-06-17 14:39:47 -05:00
Rob Rix
1668e94427 Define Info as a synonym over Data.Record. 2016-06-17 13:33:50 -04:00
Rob Rix
7d95cb48dc Use the Cost & Size types in Info. 2016-06-17 13:30:48 -04:00
Rick Winfrey
d554636c5c Add JavaScript specific "generator_function" case to map to Function Syntax 2016-06-16 15:34:48 -05:00
Rick Winfrey
513c3b7ec7 Assign arrow_function productions as Function Syntax 2016-06-16 11:25:17 -05:00
Rick Winfrey
d8bfd5a629 Merge branch 'syntax-redux' of github.com:github/semantic-diff into syntax-redux 2016-06-16 09:57:11 -05:00
Rick Winfrey
f70bce09c2 Add true and false cases to defaultCategoryForNodeName 2016-06-16 09:55:13 -05:00
Rick Winfrey
6e3a2e2a4e Add JavaScript language specific categories for this, undefined and null 2016-06-16 09:54:46 -05:00
joshvera
6fea8145e4 Add Switch/Case to defaultCategoryForNodeName 2016-06-15 16:52:39 -07:00
joshvera
66ce5d0957 Add VarAssignment/VarDecl mappings to defaultCategoryForNodeName 2016-06-15 11:17:03 -07:00
Rick Winfrey
a726ab5a73 Add support for Regex TreeSitter productions 2016-06-15 11:09:52 -05:00
Rick Winfrey
c15e7a6f9f Match template_string TreeSitter production 2016-06-15 10:39:36 -05:00
joshvera
45be0bc7ac Map productions to Category.Args 2016-06-14 13:51:34 -07:00
Rick Winfrey
b7f58cb89e Move assignment tree sitter production 2016-06-13 17:33:17 -05:00
Rick Winfrey
8e68a9de37 Add MemberAccess production matching for TreeSitter 2016-06-13 17:33:01 -05:00
Rick Winfrey
8b3d09a705 Add default category name for Assignment tree sitter terms 2016-06-13 16:32:57 -05:00
joshvera
6bccfb7d2a Map more categories to Categories 2016-06-10 15:20:13 -04:00
joshvera
775c735265 Pack categories into text while constructing terms 2016-06-06 19:53:48 -04:00
Rob Rix
d3c23769e7 🔥 redundant parens. 2016-06-03 18:40:43 -04:00
Rob Rix
0f924f786c Assign the Error category. 2016-06-03 18:38:04 -04:00
Rob Rix
adca4a56a3 Assign the Program category. 2016-06-03 18:35:27 -04:00
Rob Rix
33791e3ed6 Compute term costs at parse time, not in a second pass. 2016-06-03 12:14:06 -04:00
Rob Rix
bcbb590b1f Add a cost field to Info. 2016-06-02 23:34:16 -04:00
Rob Rix
f3b0cd33da A Constructor takes an Info directly. 2016-06-02 23:06:09 -04:00
Rob Rix
43757e8a61 🔥 Categorizable.
This reverts commit be59b0c161362baae63308478177819828be7e1b.
2016-06-02 19:10:41 -04:00
joshvera
0244e9a929 Store a category in Info instead of a Set 2016-05-31 16:13:01 -04:00
joshvera
b3842692cd s/return/pure 2016-05-26 14:57:17 -04:00
joshvera
8180b37285 Use Protolude via the Prologue module and add NoImplicitPrelude 2016-05-26 12:58:04 -04:00
Rob Rix
2c91333d16 Use GeneralizedNewtypeDeriving to clean up Source.
O(1) null, and far fewer symbol collisions.
2016-03-11 18:31:01 -05:00
Rob Rix
4ec87f8a55 array maps to ArrayLiteral. 2016-03-02 23:03:47 -05:00
Rob Rix
e0b73da735 Delegate the FFI to tree-sitter-parsers. 2016-02-27 19:34:10 -05:00
Rob Rix
863e5d2761 Get the language functions from tree-sitter-parsers. 2016-02-27 19:31:54 -05:00
Rob Rix
6595b8fddd Map onto String/Integer/Symbol literals. 2016-02-24 13:48:05 -07:00
Rob Rix
ba86953078 Ruby’s hashes are dictionary literals. 2016-02-21 21:59:07 -06:00
Rob Rix
80d52c20c3 Expose the ts_language_ruby function. 2016-02-21 21:58:27 -06:00
Rob Rix
08eca37a04 pair is language-agnostic. 2016-02-17 10:59:50 -05:00
Rob Rix
56e7f29058 Document rel_op. 2016-02-17 10:59:41 -05:00
Rob Rix
792b8b9995 Relational operators are binary. 2016-02-13 22:33:57 -05:00
Rob Rix
acae391e50 We don’t need to preserve the node name. 2016-02-13 21:27:27 -05:00
Rob Rix
90d7f7ad8f pair productions in JS → Pairs. 2016-02-13 21:02:04 -05:00
Matt Diephouse
4c6c9b4f72 Centralize logic in parserForType 2016-02-10 15:07:27 -08:00
Matt Diephouse
fa5bb25cf2 Add language-specific mappings 2016-02-10 14:59:48 -08:00
Matt Diephouse
7b9ac9334f Rename to defaultCategoryForNodeName 2016-02-10 14:57:01 -08:00
Matt Diephouse
bc95b7c86c Add an inner category mapping function 2016-02-10 14:56:21 -08:00
Matt Diephouse
b3458e8ac6 Just call it grammar 2016-02-10 14:53:16 -08:00
Matt Diephouse
17e74cf691 Move these functions inside 2016-02-10 14:52:19 -08:00
Matt Diephouse
f45fd562a1 Move languageForType to Language 2016-02-10 14:32:11 -08:00
Matt Diephouse
4a5c844f34 Move Language to a separate module 2016-02-10 14:30:14 -08:00
Matt Diephouse
76a115a77c Make Language a sum type of programming languages 2016-02-10 11:30:32 -08:00
Matt Diephouse
e35da995a2 Let's call this treeSitterParser 2016-02-10 11:02:51 -08:00
Matt Diephouse
219d47bc95 Don't pass preassembled Infos to Constructors 2016-02-10 11:00:26 -08:00
Matt Diephouse
dce763e9f1 Update TreeSitter for staticgories 2016-02-09 11:34:23 -08:00
Matt Diephouse
73132d8a3a Standardize the decision of keyed vs. fixed vs. indexed nodes 2016-02-05 17:09:04 -05:00
Matt Diephouse
4ff301b170 Document TreeSitter.hs 2016-02-03 13:24:17 -05:00
joshvera
644adad6eb Change production names back to String 2015-12-30 17:52:51 -05:00
joshvera
a3051c531d Merge remote-tracking branch 'origin/master' into use-text 2015-12-29 15:13:57 -05:00
Rob Rix
9343e9d4ae Do all formatting within Sources. 2015-12-24 00:20:47 -05:00
Rob Rix
92cbad56fe Document why strict application. 2015-12-23 17:54:28 -05:00
Rob Rix
319bbecfdb We no longer need to force the evaluation of range. 2015-12-23 17:52:04 -05:00
Rob Rix
fe347b3f07 Just force the evaluation of range now that it’s strict. 2015-12-23 17:41:55 -05:00
Rob Rix
a8578ccbf8 Force the evaluation of the start & end of the range. 2015-12-23 17:39:40 -05:00
Rob Rix
eb908e4fa2 Compute the range in-place. 2015-12-23 17:39:13 -05:00
Rob Rix
08c2d72803 Force the evaluation of the range. 2015-12-23 17:38:09 -05:00
Rob Rix
aca7b55784 Capture the range in a temporary. 2015-12-23 17:37:42 -05:00
Rob Rix
76e1f042c8 getChild calls toTerm directly. 2015-12-23 10:47:15 -05:00
Rob Rix
308e561693 Use take to specify a half-open interval. 2015-12-23 10:43:41 -05:00
Rob Rix
a32de11218 Spacing. 2015-12-23 10:34:40 -05:00
Rob Rix
038d0b6ff6 Implement the Storable instance for TSNode in terms of its CStorable instance. 2015-12-23 10:34:08 -05:00
Rob Rix
44ba628c71 Add a default CStorable instance for TSNode. 2015-12-23 10:33:52 -05:00
Rob Rix
ae92b20a7c Derive a Generic instance for TSNode. 2015-12-23 10:33:36 -05:00
Rob Rix
a938d072c0 Remove TSLength. 2015-12-23 09:52:09 -05:00
Rob Rix
f75a0f25f3 Move range into the where clause. 2015-12-23 09:50:54 -05:00
Rob Rix
5b685f7ce3 Remove withNamedChildren. 2015-12-23 09:50:19 -05:00
Rob Rix
8550676c42 Inline withNamedChildren in toTerm. 2015-12-23 09:49:55 -05:00
Rob Rix
988a8d825f TSNode is no longer defined over TSLength, but over CSize values instead. 2015-12-23 09:45:49 -05:00
Rob Rix
e1a84e2ab1 Increase the size of TSNode to match the current definition.
See also
https://github.com/maxbrunsfeld/tree-sitter/blob/master/include/tree_sit
ter/runtime.h#L38-L41
2015-12-22 19:06:51 -05:00
joshvera
b047f014b8 languageForType takes a text 2015-12-18 14:48:52 -05:00
joshvera
cfc4a97f9d Merge remote-tracking branch 'origin/master' into use-bytestrings 2015-12-18 14:43:25 -05:00
Rob Rix
5f5b69d13e 🔥 a redundant import of Syntax. 2015-12-17 16:35:12 -05:00
Rob Rix
355aa47c50 Update to use the new bridge API. 2015-12-17 14:56:43 -05:00
Rob Rix
96f189719a Move TreeSitter into the library. 2015-12-17 12:54:27 -05:00