Max Brunsfeld
2430733ee8
Avoid iterating hashmaps in places where order matters
2019-08-29 15:26:05 -07:00
Max Brunsfeld
f371507d39
Move TokenSet to rules module
2019-08-29 15:25:45 -07:00
Max Brunsfeld
5e04daf483
Avoid non-deterministic set iteration order when handling conflicts
2019-08-13 15:57:42 -07:00
Max Brunsfeld
56ce4e5d50
Upgrade rsass, remove hashbrown
2019-08-13 10:08:58 -07:00
Max Brunsfeld
5f369a5870
Fix another empty array literal for MSVC compatibility
2019-08-12 15:13:41 -07:00
Max Brunsfeld
f4740a1beb
Make properties generation aware of which nodes are leaves
2019-07-22 09:30:05 -07:00
Max Brunsfeld
0a3f2131c8
Move state splitting algorithm into its own file
2019-07-19 12:39:52 -07:00
Max Brunsfeld
f85ce2fbfa
Remove state-ids-to-log flag
2019-07-18 16:06:13 -07:00
Max Brunsfeld
a9ca6ff73c
Fix non-deterministic ordering of lex states
2019-07-03 16:34:06 -07:00
Max Brunsfeld
223a656fc8
Fix another bug in lex state merging
...
Reuse more logic for lex and parse state merging algorithms
2019-06-21 13:12:09 -07:00
Max Brunsfeld
dfd012d13d
Merge pull request #367 from tree-sitter/node-type-children
...
Include info about children w/o fields in node-types.json
2019-06-20 14:06:27 -07:00
Max Brunsfeld
70dc79b412
Merge lex states more liberally
2019-06-20 14:05:15 -07:00
Max Brunsfeld
fe6a69a626
Sort lex states
2019-06-20 13:01:28 -07:00
Max Brunsfeld
5b38ff5f78
Loosen lex state equality check to catch some spurious duplicates
2019-06-20 09:57:38 -07:00
Max Brunsfeld
ee1d4d6b2c
Fix handling of inlined rules in node-types generation
2019-06-19 15:30:48 -07:00
Max Brunsfeld
f7d25a5934
Fix missed opportunities to merge parse states
2019-06-06 15:29:22 -07:00
Max Brunsfeld
d274e81d0d
Overhaul CLI error handling to allow multiple levels of context
2019-05-30 16:52:55 -07:00
Max Brunsfeld
9674df0c54
Avoid introducing certain auxiliary repeat rules in hidden rules
2019-05-15 12:36:54 -07:00
Max Brunsfeld
6490b1e4f2
Fix non-deterministic conflict message order
2019-03-29 17:36:19 -07:00
Max Brunsfeld
a133afe9ac
Clean up ParseItem::cmp
2019-03-29 12:49:51 -07:00
Max Brunsfeld
9bdac0e693
CLI: Account for field names when comparing parse items
2019-03-29 12:13:24 -07:00
Max Brunsfeld
eb96dd6ddb
node types: Preserve all supertypes in field type lists
2019-03-27 16:32:02 -07:00
Max Brunsfeld
e9afdd72b4
node-types: Fix incorrect named value for subclasses
2019-03-26 15:27:07 -07:00
Max Brunsfeld
6c65d74810
Restructure node-types.json output
2019-03-26 13:43:10 -07:00
Max Brunsfeld
b79bd8693b
Start work on handling node supertypes
2019-03-26 11:51:02 -07:00
Max Brunsfeld
56309a1c28
Generate node-fields.json file
2019-02-12 11:06:18 -08:00
Max Brunsfeld
e579e09569
Ensure interpretations are in a predictable order in conflict messages
2019-02-08 17:11:44 -08:00
Max Brunsfeld
79d90f0d3e
Restore naming of alias sequence lengths
...
Fields aren't stored in sequences now, so the max length
is back to being just for aliases.
2019-02-08 16:14:18 -08:00
Max Brunsfeld
51a9f14f7d
Ensure symbols are written in a predictable order in conflict messages
2019-02-08 15:16:56 -08:00
Max Brunsfeld
1d1674811c
Fully implement ts_node_child_by_field_id
2019-02-08 15:16:56 -08:00
Max Brunsfeld
18a13b457d
Get basic field API working
2019-02-08 15:16:56 -08:00
Max Brunsfeld
108ca989ea
Start work on including child refs in generated parsers
2019-02-08 15:16:56 -08:00
Max Brunsfeld
9b8bf8dfe2
cli: Compute fragile tokens *after* merging compatibile parse states
...
Previously, we failed to mark as fragile some tokens that *should* be
fragile because of tokens that were introduced during parse state
merging.
2019-02-06 16:18:49 -08:00
Max Brunsfeld
4cac85fec4
Add benchmark script
...
* Structure `cli` crate as both a library and an executable, so that
benchmarks can import code from the crate.
* Import macros in the Rust 2018 style.
2019-02-01 15:17:35 -08:00
Max Brunsfeld
e305012b31
Loosen keyword identification criteria slightly
2019-01-21 15:33:43 -08:00
Max Brunsfeld
f6cdd5e3d4
Loosen criteria for identifying conflict-free tokens for error recovery
2019-01-20 16:58:31 -08:00
Max Brunsfeld
ff41f05a20
Fix computation of following tokens
2019-01-18 15:16:20 -08:00
Max Brunsfeld
ed195de8b6
rustfmt
2019-01-17 17:16:04 -08:00
Max Brunsfeld
c27f776d41
Fix word token index issue in a different way
...
Refs https://github.com/tree-sitter/tree-sitter/issues/258
2019-01-17 13:18:59 -08:00
Max Brunsfeld
bb5dedfb1e
Fix another token conflict detection bug
2019-01-17 12:44:35 -08:00
Max Brunsfeld
9f7079c9c5
Ensure that the word token has a low numerical index
...
Fixes https://github.com/tree-sitter/tree-sitter/issues/258
2019-01-17 12:44:14 -08:00
Max Brunsfeld
d903371709
Remove noisy logging
2019-01-17 10:07:58 -08:00
Max Brunsfeld
e4b9d9dfa9
Fix token conflict detection bugs
2019-01-16 20:57:31 -08:00
Max Brunsfeld
d23a03bdf1
Represent ParseItemSet as a sorted Vec, not a BTreeMap
2019-01-15 16:37:54 -08:00
Max Brunsfeld
ceff3936ef
Unify logic for handling tokens that match separators into one place
2019-01-15 16:10:52 -08:00
Max Brunsfeld
d8ab36b2a5
Fix bugs in handling tokens that overlap with separators
2019-01-15 13:21:48 -08:00
Max Brunsfeld
6592fdd24c
Fix parser generation error messages
2019-01-11 17:26:45 -08:00
Max Brunsfeld
e64f7a64a1
Start work on running test corpus tests
2019-01-11 13:31:06 -08:00
Max Brunsfeld
2e8b2ab8fb
Give strings more implicit precedence than immediate tokens
2019-01-09 09:59:46 -08:00
Max Brunsfeld
6972a8e3e8
Add logging when deciding not to merge parse states
2019-01-09 09:58:45 -08:00