Ika
1b033fdfa4
feat(cli): support snapshot testing with --update flag
...
This PR adds an `--update` flag to the `tree-sitter test` command, which adds the ability to replace the _expected_ output in the corpus.txt with the _actual_ output produced by the parser, that is, we can now simply use this `--update` flag to write all the corresponding parser output back to the corpus.txt, and we just need to check the output without typing its actual sexp.
- use the same output format as `tree-sitter parse`, except there won't be any position information printed.
- the corpus.txt won't be touched if there's no difference between the _expected_ output and the _actual_ output in that file.
- if there're differences between _expected_ and _actual_, only the test case that is different will be replaced, the rest test cases will stay as-is. (All the delimiters `===`/`---` will be normalized as 80-column long, though.)
- this flag also works with `--filter` flag.
2019-09-01 23:52:39 +08:00
Ika
4b0489e2f3
fix: allow lowercase unicode escape ( #440 )
2019-08-31 23:30:33 -07:00
Max Brunsfeld
3b10999808
Add TOML and YAML to the web playground
2019-08-31 12:29:52 -07:00
Max Brunsfeld
4870fe28a8
Merge pull request #439 from ikatyang/ikatyang-patch-1
...
docs: add YAML/TOML parser
2019-08-31 12:10:39 -07:00
Ika
2cf2293b1f
docs: add YAML/TOML parser
2019-09-01 02:30:11 +08:00
Max Brunsfeld
5882bcf531
Add TypeScript parser to the playground
2019-08-30 22:20:53 -07:00
Max Brunsfeld
3ac0ff2a11
Fix error in build-lib script
2019-08-30 22:07:32 -07:00
Max Brunsfeld
7685b7861c
0.15.8
2019-08-30 21:22:46 -07:00
Max Brunsfeld
fd80d60ae8
web playground: don't include editor.getValue() call in parse time
2019-08-30 21:06:57 -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
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