Commit graph

364 commits

Author SHA1 Message Date
Max Brunsfeld
08356f79c7 Bump sibling cargo deps 2020-09-30 21:19:32 -07:00
Max Brunsfeld
7565604626 web: 0.17.1 2020-09-24 15:06:19 -07:00
Max Brunsfeld
7361cf9a0b rust binding: 0.17.0 2020-09-24 15:05:34 -07:00
Max Brunsfeld
ba239ce4ab Make query error line numbers consistently display 1-indexed 2020-09-24 15:03:51 -07:00
Max Brunsfeld
518916f221 Return correct path and line in query errors from the CLI 2020-09-24 13:47:27 -07:00
Max Brunsfeld
297e2bcb28 static query analysis: Fix handling of fields in hidden nodes 2020-09-23 16:55:48 -07:00
Max Brunsfeld
9185262e48 web: 0.17.0 2020-09-23 13:17:35 -07:00
Max Brunsfeld
cb343cad5e Avoid reusing the root node during incremental parsing
Fixes #712
2020-09-23 12:59:27 -07:00
Max Brunsfeld
a544200a6c Simplify query code for matching supertypes 2020-09-23 11:55:03 -07:00
Max Brunsfeld
21c3bbc4b4 Account for supertypes during query analysis 2020-09-23 10:55:31 -07:00
Max Brunsfeld
b5a9adb555 Allow queries to match on supertypes
Co-authored-by: Ayman Nadeem <aymannadeem@github.com>
2020-09-21 12:34:48 -07:00
Max Brunsfeld
36a8821f3e Fix behavior of the last child operator in tree queries 2020-09-02 12:10:04 -07:00
Max Brunsfeld
18150a1573
Merge pull request #644 from tree-sitter/query-pattern-is-definite
Analyze queries on construction to identify impossible patterns, and patterns that will definitely match
2020-09-02 10:28:21 -07:00
Max Brunsfeld
31a22fc627 In array.h, add comments and sort functions more logically 2020-09-02 10:02:34 -07:00
Björn Linse
04eacc44ef avoid warnings for implicit fallthrough in switch statements 2020-08-26 10:04:08 +02:00
Björn Linse
00c470ab2a Fix a few cases of Clang 10 with UBSAN detecting undefined behavior
Clang 10 considers adding any offset, including 0, to the null pointer
to be undefined behavior. `(void *)NULL + 0 = kaboom`.
2020-08-25 19:34:44 +02:00
Max Brunsfeld
4aba684d66 Control recursion depth explicitly during query analysis 2020-08-24 16:55:56 -07:00
Max Brunsfeld
315f87bbff Remove unnecessary parameter from sorted array functions 2020-08-24 12:07:57 -07:00
Max Brunsfeld
2eb04094f8 Handle aliased parent nodes in query analysis 2020-08-21 14:12:04 -07:00
Max Brunsfeld
456b1f6771 Fix handling of alternations and optional nodes in query analysis 2020-08-20 16:28:54 -07:00
Max Brunsfeld
9daec9cb22 Tweak impossible pattern error messages 2020-08-20 13:35:11 -07:00
Max Brunsfeld
4301110c12 query: Indicate specific step that's impossible 2020-08-20 13:06:38 -07:00
Max Brunsfeld
d47346abc0 Avoid pushing duplicate start states in query analysis 2020-08-20 10:07:22 -07:00
Max Brunsfeld
aac75e35b1 Optimize iteration over state successors during query analysis 2020-08-19 14:56:57 -07:00
Max Brunsfeld
bd42729a41 query: Avoid early-returning captures due to predicates 2020-08-18 13:01:45 -07:00
Max Brunsfeld
604f9e8148 query: Assign is_definite correctly for steps within nested sub-patterns 2020-08-18 10:55:03 -07:00
Max Brunsfeld
91fc9f5399 Use is_definite flag in ts_query_cursor_next_capture 2020-08-17 16:50:59 -07:00
Max Brunsfeld
c3f9b2b377 Fix query analysis bugs found in ruby tags query 2020-08-17 09:57:06 -07:00
Max Brunsfeld
1ea29053e1 Merge branch 'master' into query-pattern-is-definite 2020-08-14 09:31:55 -07:00
Max Brunsfeld
af655547e5 Fix handling of queries with many patterns with leading repetitions 2020-07-31 12:47:58 -07:00
Max Brunsfeld
411f69d13b query: Optimize 'longest-match' filtering 2020-07-30 13:34:34 -07:00
Max Brunsfeld
df5510acfc query: Remove limit on number of in-progress states 2020-07-30 12:59:34 -07:00
Max Brunsfeld
6941217c46
Merge pull request #696 from ret2libc/printf-sizet-format
size_t variables need %zu, not %lu
2020-07-29 09:56:07 -07:00
Max Brunsfeld
81bbdf19f4 Fix handling of non-terminal extras that share non-extra rules
Fixes #701
2020-07-29 09:50:13 -07:00
Max Brunsfeld
253f23c3d4 Fix error when parse error occurs after non-terminal extra 2020-07-28 13:33:13 -07:00
Max Brunsfeld
1ae5cbc851 query: Handle #not-match? in rust, wasm bindings 2020-07-24 12:15:23 -07:00
Max Brunsfeld
de2b71d465 Fix query bug when max permutations are exceeded 2020-07-23 16:05:50 -07:00
Riccardo Schirone
a3b440b0c8 size_t variables need %zu, not %lu 2020-07-23 09:48:18 +02:00
Tuấn-Anh Nguyễn
740d864e67 Add '.' as a valid start of a predicate, in addition to '#'
See https://github.com/ubolonton/emacs-tree-sitter/issues/38
2020-07-19 15:46:39 +07:00
Max Brunsfeld
4535efce69 query: Prevent dropping of matches when exceeding range maximum
Fixes #685
2020-07-17 09:39:06 -07:00
Max Brunsfeld
0bf2450b4a Always enforce stack version limit during reductions
Fixes #669
2020-07-06 15:58:33 -07:00
Max Brunsfeld
cc37da7457 Query analysis: fix propagation of uncertainty from later siblings 2020-06-26 16:46:12 -07:00
Max Brunsfeld
645aacb1e7 Optimize query analysis using binary search 2020-06-26 15:40:34 -07:00
Max Brunsfeld
997ef45992 Handle parent nodes with simple aliases in query analysis 2020-06-26 15:05:10 -07:00
Max Brunsfeld
19baa5fd5e Clean up and document query analysis code 2020-06-25 17:56:43 -07:00
Max Brunsfeld
891de051e2 Fix population of subgraph nodes when analyzing queries 2020-06-25 15:06:27 -07:00
Max Brunsfeld
9fb39b8954 Start work on handling alternatives when analyzing queries 2020-06-25 15:06:27 -07:00
Max Brunsfeld
e3cf5df039 Use actual step indices when walking subgraphs 2020-06-25 15:06:27 -07:00
Max Brunsfeld
7f955419a8 Start work on recognizing impossible patterns 2020-06-25 15:06:27 -07:00
Max Brunsfeld
4c2f36a07b Mark steps as definite on query construction
* Add a ts_query_pattern_is_definite API, just for debugging this
* Store state_count on TSLanguage structs, to allow for scanning parse tables
2020-06-25 15:06:27 -07:00