Max Brunsfeld
1fece241aa
Add ts_parser_set_enabled API
2018-05-21 17:28:12 -07:00
Max Brunsfeld
39c3de3fc8
Don't reuse nodes within ambiguities
2018-05-21 16:04:10 -07:00
Max Brunsfeld
78f28b14ce
Remove unused field
2018-05-18 14:27:52 -07:00
Max Brunsfeld
3c01382b95
Avoid warnings about repeated typedefs
2018-05-17 17:59:50 -07:00
Max Brunsfeld
5ec3769cb4
Make ts_tree_cursor_current_node take the cursor as const
2018-05-17 14:24:32 -07:00
Max Brunsfeld
074c051094
Change the TSInputEdit struct to work with old/new start and end positions
2018-05-17 11:14:51 -07:00
Max Brunsfeld
95be6e3bee
Make it clear which field of TSNode can be used as a unique id
2018-05-16 16:20:33 -07:00
Max Brunsfeld
e3670be42f
Avoid one heap allocation when instantiating a TSTreeCursor
2018-05-16 16:05:08 -07:00
Max Brunsfeld
6fc8d9871c
Hide the details of TSNode's fields in the public API
2018-05-16 15:44:04 -07:00
Max Brunsfeld
ebddb1a0b5
Add ts_tree_cursor_goto_first_child_for_byte method
...
Atom needs this for efficiently seeking to the leaf node at a given position,
visiting all of its ancestors along the way.
2018-05-16 13:51:21 -07:00
Max Brunsfeld
043a2fc0d9
Assert absence of memory leaks in randomized multi-threaded tree test
2018-05-11 16:53:47 -07:00
Max Brunsfeld
fe53506175
Declare subtrees as const wherever possible
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-11 15:06:13 -07:00
Max Brunsfeld
6bb63f549f
Fix unused lambda captures
2018-05-11 14:59:59 -07:00
Max Brunsfeld
20c183b7cd
Rename ts_subtree_make_* -> ts_subtree_new_*
2018-05-11 13:02:12 -07:00
Max Brunsfeld
bf1bb1604f
Rename TSExternalTokenState -> ExternalScannerState
2018-05-11 12:57:41 -07:00
Max Brunsfeld
199a94cc26
Allow the parser to print dot graphs to any file
2018-05-11 12:48:51 -07:00
Max Brunsfeld
e75ecd1bb1
Rework API completely
2018-05-11 10:46:13 -07:00
Max Brunsfeld
33f7643040
Rename Parser -> TSParser
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-10 15:16:24 -07:00
Max Brunsfeld
35510a612d
Rename Tree -> Subtree
2018-05-10 15:11:14 -07:00
Max Brunsfeld
09e663c7d1
Make ts_tree_edit return a new tree rather than mutating its argument
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-10 12:23:05 -07:00
Max Brunsfeld
df79ff5997
Refactor ts_tree_edit
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-10 12:04:18 -07:00
Max Brunsfeld
eff7283325
Add assertion to satisfy clang static analyzer
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-10 09:48:50 -07:00
Max Brunsfeld
59694e60fa
Rename ts_tree_assign_parents -> ts_tree_balance
2018-05-10 09:13:46 -07:00
Max Brunsfeld
78d158899e
Use atomic operations for updating syntax tree reference counts
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 17:36:03 -07:00
Max Brunsfeld
666dfb76d2
Remove document parameter from ts_node_type, ts_node_string
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 16:47:47 -07:00
Max Brunsfeld
92255bbfdd
Remove document parameter from ts_node_type, ts_node_string
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 15:28:28 -07:00
Max Brunsfeld
8d805feab1
Allow ReusableNode to advance off the end of the tree
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 14:15:11 -07:00
Max Brunsfeld
5fa6d39578
Fix alias handling in ts_tree_string
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 14:14:56 -07:00
Max Brunsfeld
19e3750f13
Make ts_node_next_sibling work more like ts_node_prev_sibling
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 13:46:46 -07:00
Max Brunsfeld
f857d64d54
Avoid recursion in ts_node__prev_sibling
2018-05-09 13:23:47 -07:00
Max Brunsfeld
973e4a44f0
Start work on removing parent pointers
...
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2018-05-09 12:22:19 -07:00
Max Brunsfeld
f620843591
Remove unused ReusableNode function
2018-05-08 11:42:15 -07:00
Max Brunsfeld
e8cfb9ced0
Remove incorrect return statement
...
This prevented conflicts between some tokens from being recorded
properly. In the case of JavaScript, it prevented tree-sitter from
recognizing the conflict between the forward slash operator and the
regex token, allowing regexes to be merged into parse states containing
'/' incorrectly.
Refs tree-sitter/tree-sitter-javascript#71
2018-04-17 17:14:36 -07:00
Max Brunsfeld
f00d2ade46
Remove unused function
2018-04-09 19:37:53 -07:00
Max Brunsfeld
b0b8279c14
Preallocate tree arrays when popping from the stack
2018-04-09 18:14:17 -07:00
Max Brunsfeld
3672a8ad87
Remove unused tree method
2018-04-09 12:29:22 -07:00
Max Brunsfeld
33820253e8
Make stack_print_dot_graph function take a language as an argument
2018-04-09 12:29:22 -07:00
Max Brunsfeld
379a2fd121
Incrementally build a tree of skipped tokens
...
Rather than pushing them to the stack individually
2018-04-09 12:29:22 -07:00
Max Brunsfeld
a79a8c216f
Include each node count and error cost in stack dot graphs
2018-04-06 16:10:36 -07:00
Max Brunsfeld
87098760de
🎨
2018-04-06 13:51:31 -07:00
Max Brunsfeld
94ed1b6964
Make array_splice take an array, not a pointer and length
2018-04-06 13:29:43 -07:00
Max Brunsfeld
09be0b6ef5
Store trees' children in TreeArrays, not w/ separate pointer and length
2018-04-06 13:26:18 -07:00
Max Brunsfeld
a6cf2e87e7
Fix halt_on_error tests
2018-04-06 13:26:18 -07:00
Max Brunsfeld
34349f9cbb
Put back limit on error handling based on accepted tree count
2018-04-06 13:26:18 -07:00
Max Brunsfeld
0ec7e5ce42
Remove ts_stack_force_merge function
2018-04-06 13:26:18 -07:00
Max Brunsfeld
1d9d6f37ad
Introduce an error cost per error instance to favor fewer errors
2018-04-06 13:26:18 -07:00
Max Brunsfeld
80f856cef5
Maintain a total node count on every tree
...
This simplifies (and fixes bugs in) the parse stack's tracking of its
total node count since the last error, which is needed for error
recovery.
2018-04-06 13:26:18 -07:00
Max Brunsfeld
f3bbf045b7
Avoid unnecessary stack node retain and release on every push
2018-04-06 13:26:18 -07:00
Max Brunsfeld
e59558c83b
Allow stack versions to be temporarily paused
...
This way, when detecting an error, we can defer the decision about
whether to bail or recover until all stack versions are processed.
2018-04-06 13:26:18 -07:00
Max Brunsfeld
1109a565fc
Merge pull request #159 from Pike/test-escape-brackets
...
Tests for issue 158
2018-04-06 13:19:36 -07:00