Commit graph

124 commits

Author SHA1 Message Date
Max Brunsfeld
0cceca7b4e Rename extra_tokens -> extra_symbols 2019-10-21 17:26:01 -07:00
Max Brunsfeld
fcaabea0cf Allow non-terminal extras 2019-10-21 16:08:59 -07:00
Max Brunsfeld
b79295e1a0 🔥 Everything related to property sheets 2019-10-17 11:00:31 -07:00
Max Brunsfeld
dc7997fdbb node-types: Rework the approach to computing multiple and required 2019-10-11 13:59:02 -07:00
Max Brunsfeld
fb7a5369fe Fix regression in node-types for rules with simple aliases 2019-10-02 14:11:21 -07:00
Max Brunsfeld
754cfd42bf Respect nodes' aliases when generating node types
Fixes #455
2019-10-02 13:59:00 -07:00
Max Brunsfeld
c9f46b8242 Fix false negative in token conflict detection
Co-Authored-By: Timothy Clem <timothy.clem@gmail.com>
2019-09-19 11:50:38 -07:00
Max Brunsfeld
69ab405325 In next ABI, group symbols by action in small parse state table
This is a more compact representation because in most states, many 
symbols share the same actions.
2019-08-30 20:29:55 -07:00
Max Brunsfeld
8037607583 Only generate the new parse table format if --next-abi flag is used 2019-08-29 17:37:33 -07:00
Max Brunsfeld
aeb2f895b4 Add --report-states flag for reporting state counts for each rule 2019-08-29 17:36:39 -07:00
Max Brunsfeld
82ff542d3b Appease MSVC by avoiding empty arrays 2019-08-29 17:31:44 -07:00
Max Brunsfeld
09a2755399 Store parse states with few lookahead symbols in a more compact way 2019-08-29 15:52:23 -07:00
Max Brunsfeld
48a883c1d4 Move external token state id computation out of render module 2019-08-29 15:48:22 -07:00
Max Brunsfeld
759c1d6e65 Reorder parse states by descending symbol count 2019-08-29 15:28:29 -07:00
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
d5b5d473ab Add missing comparisons to property item hash & equality impls
Fixes the inconsistent failurs of property sheet unit tests
2019-08-26 09:31:48 -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
13c0aa7dbb Avoid empty initializer list for ts_alias_sequences
Fixes a bug introduced in 68b089b41e
2019-08-12 14:11:40 -07:00
Max Brunsfeld
68b089b41e cli: Fix generation of parsers with fields but no aliases
Fixes #419
2019-08-11 09:22:30 -07:00
Max Brunsfeld
d78204b713 cli: Don't regenerate index.js if it already exists 2019-08-08 15:02:36 -07:00
Max Brunsfeld
9e1649d9f8 node-types: Fix children descriptors' multiple and required properties 2019-07-30 12:07:11 -07:00
Max Brunsfeld
a21d355ade Fix handling of potentially overlapping selectors in property sheets 2019-07-22 16:17:10 -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
e4873191d6 Refactor generated lex function to use fewer instructions per state 2019-06-20 09:57:38 -07:00
Max Brunsfeld
0ad4e147e2 Dedup types in children property of node-types 2019-06-19 15:35:53 -07:00
Max Brunsfeld
ee1d4d6b2c Fix handling of inlined rules in node-types generation 2019-06-19 15:30:48 -07:00
Max Brunsfeld
0a2b183bd0 Add a unit test for the children property in node-types 2019-06-17 13:24:13 -07:00
Max Brunsfeld
381cb09c64 Include info about children w/o fields in node-types.json 2019-06-17 11:35:06 -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
7d1aa10f73 Update generated binding.cc to use newer NAN APIs 2019-04-30 17:23:36 -07:00
Max Brunsfeld
1fc0525940 Start work on a WASM binding 2019-04-25 17:27:39 -07:00
Ervin Oro
e5584f82d3 Add test to verify regex unicode codepoints work 2019-04-09 21:55:49 +03:00
Ervin Oro
8c845f29e0 Allow hex characters in unicode code points 2019-04-09 20:37:36 +03:00
Max Brunsfeld
a1eee4a193 Catch missing precedence values in JS
Fixes #305
2019-04-05 13:04:12 -07:00
Max Brunsfeld
df76aef067 CLI: In lex function, merge branches with the same body 2019-04-04 16:02:50 -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