README.md: small fixes

To call .set_language on parser, it needs to be mut; also, the syntax
for the extern "C" blocks seemed to be a bit off.

Both now corresponds to what's in the tests.

Signed-off-by: Stephan Renatus <srenatus@chef.io>
This commit is contained in:
Stephan Renatus 2018-06-28 10:25:01 +02:00
parent 86c8206e35
commit 2eff3225ba

View file

@ -16,15 +16,15 @@ use tree_sitter::{Parser, Language};
// ...
let parser = Parser::new();
let mut parser = Parser::new();
```
Then assign a language to the parser. Tree-sitter languages consist of generated C code. To use them from rust, you must declare them as `extern "C"` functions and invoke them with `unsafe`:
```rust
extern "C" fn tree_sitter_c() -> Language;
extern "C" fn tree_sitter_rust() -> Language;
extern "C" fn tree_sitter_javascript() -> Language;
extern "C" { fn tree_sitter_c() -> Language; }
extern "C" { fn tree_sitter_rust() -> Language; }
extern "C" { fn tree_sitter_javascript() -> Language; }
let language = unsafe { tree_sitter_rust() };
parser.set_language(language).unwrap();