Commit graph

3050 commits

Author SHA1 Message Date
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
94ca4dc8e0
Merge pull request #334 from tree-sitter/small-parse-states
Reduce parsers' static memory footprint by storing "small" parse states more compactly
2019-08-29 20:30:51 -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
c5fc9d7dcb Remove existing static library in build-lib script 2019-08-29 14:30:45 -07:00
Max Brunsfeld
0955c5b3d7 Handle named nodes aliased as anonymous nodes
Fixes #401
2019-08-29 14:28:44 -07:00
Max Brunsfeld
b3ab2e07a2 binding_rust: Generalize the interface to callback-based parse methods
Fixes #386
2019-08-29 10:39:51 -07:00
Max Brunsfeld
09b46b87dd Remove unnecessary blank lines from parse command output on error 2019-08-28 15:29:44 -07:00
Max Brunsfeld
a3ce4a4282 Remove some unnecessary global symbols from the library 2019-08-28 11:17:29 -07:00
Tuấn-Anh Nguyễn
f0999d7ac0 Make Rust functions return ExactSizeIterator instead of just Iterator (#438)
* Add CBufferIter::size_hint

* Make Rust functions return ExactSizeIterator instead of just Iterator

* Fix wrong CBufferIter::size_hint
2019-08-28 09:28:47 -07:00
Tuấn-Anh Nguyễn
d96ba09391 Make Tree::changed_ranges return an Iterator instead of a Vec (#437)
* Make Tree::changed_ranges return an Iterator instead of a Vec

* Remove CBufferIter.free parameter
2019-08-26 19:36:16 -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
Tuấn-Anh Nguyễn
a073fc403a Add some missing APIs in Rust binding (#435) 2019-08-24 14:28:58 -07:00
Gregor
105b0ba52c Add build instruction to rust binding README (#432)
Fixes #431
2019-08-21 11:59:37 -07:00
Max Brunsfeld
aace0970d8 Tweak formatting, add comments 2019-08-19 17:31:35 -07:00
Max Brunsfeld
ef87ed6130 Check once for cancellation at the beginning of a parse 2019-08-19 17:31:35 -07:00
Max Brunsfeld
ec7756faa0 Add repo URL to Cargo.toml files 2019-08-19 17:31:35 -07:00
Max Brunsfeld
8e3ff6376f Upgrade rand, dirs 2019-08-19 17:31:35 -07:00
Rob Donnelly
9ba5f25594 Ignore hidden files in grammar test directories (#430)
This fixes "stream did not contain valid UTF-8" error due to
`tree-sitter test` attempting to Vim's parse hidden binary swap files.
2019-08-19 09:03:12 -07:00
Rob Donnelly
123dcfaec5 Fix compile on older versions of GCC and CLANG (#427)
Older versions of GCC (<4.9) and LLVM (<3.6) do not have __atomic_load_n
which is part of the C11 standard.  Fix by falling back to
__sync_fetch_and_add with a value of 0 when __atomic_load_n is not
available.

Fixes #423

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2019-08-15 09:50:58 -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
84c3bf1dd9 Make scripts work when repo path contains spaces 2019-08-12 15:13:41 -07:00
Max Brunsfeld
5f369a5870 Fix another empty array literal for MSVC compatibility 2019-08-12 15:13:41 -07:00
Matthew Krupcale
276d3cb5ad tree-sitter-cli: build: add support for git submodules (#422)
The .git file can contain a reference to the actual git directory as is commonly the case for a submodule[1]. When this is the case, read the .git file to discover the actual git directory.

 * cli/build.rs: Read the .git file to discover the git directory

[1] https://git-scm.com/docs/gitrepository-layout
2019-08-12 14:11:59 -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
4d63697036 cli: Fix loading of parsers with no tree-sitter section in package.json 2019-08-11 09:21:49 -07:00
Max Brunsfeld
0dff46865c web-ui: Fix content-type of library wasm 2019-08-10 13:00:55 -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
8cdc903d0f Print emcc version after installing emscripten 2019-08-08 10:56:48 -07:00
Max Brunsfeld
85de177524 Pin emscripten to 1.38.40 for macOS CI
See https://github.com/emscripten-core/emscripten/pull/9143
2019-08-08 10:23:17 -07:00
Max Brunsfeld
52126a6606 Update JS test to reflect typescript grammar changes 2019-08-08 10:23:17 -07:00
Rob Donnelly
b1a4cc044d Fix Rust bindings example (#415)
`Parser::parse` returns `Option<&Tree>`.  An `unwrap()` or similar is required to get the actual `Tree`.
2019-08-08 08:35:23 -07:00
Max Brunsfeld
93f7de03e2 cli: Handle multi-parser repos, content-regex property
Prompted by tree-sitter/tree-sitter-typescript#68
2019-08-07 17:41:45 -07:00
Max Brunsfeld
7005d8b9d9 Avoid printing names of all skipped tests in benchmark script 2019-08-06 12:46:46 -07:00
Simon Repp
8657054e4b Add tree-sitter-eno to available completed parsers (#413) 2019-08-05 14:19:29 -07:00
Max Brunsfeld
8083ae6602 benchmark: Parse each sample a configurable number of times
Refs #343
2019-08-02 12:04:31 -07:00
Max Brunsfeld
0afbc31789 Automatically skip BOM characters at beginnings of files
Refs tree-sitter/tree-sitter-python#48
2019-08-02 12:03:04 -07:00
zimbatm
15629f1231 index.md: add the tree-sitter-nix parser (#403) 2019-08-01 15:34:05 -07:00
Simon Repp
ee253e340b Mention differing alias behavior based on argument types in the docs (#405)
* Fix broken link to named-vs-anonymous section in unit tests section

* Mention differing alias behavior based on argument types in the docs
2019-08-01 15:30:50 -07:00
Max Brunsfeld
9848ceb3e2 wasm: Fix infinite loop in Node.text when tree and text are out-of-sync 2019-07-31 13:55:15 -07:00
Max Brunsfeld
9e1649d9f8 node-types: Fix children descriptors' multiple and required properties 2019-07-30 12:07:11 -07:00
Max Brunsfeld
3714e330d3 wasm: 0.15.9 2019-07-29 17:19:52 -07:00