Skip to content

Commit

Permalink
Clean up rust binding
Browse files Browse the repository at this point in the history
  • Loading branch information
maxbrunsfeld committed Feb 23, 2024
1 parent 466fa11 commit 3b12920
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 55 deletions.
42 changes: 6 additions & 36 deletions bindings/rust/build.rs
Original file line number Diff line number Diff line change
@@ -1,40 +1,10 @@
fn main() {
let src_dir = std::path::Path::new("src");

let mut c_config = cc::Build::new();
c_config.include(&src_dir);
c_config
cc::Build::new()
.include("src")
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable")
.flag_if_supported("-Wno-trigraphs");
let parser_path = src_dir.join("parser.c");
c_config.file(&parser_path);

// If your language uses an external scanner written in C,
// then include this block of code:

/*
let scanner_path = src_dir.join("scanner.c");
c_config.file(&scanner_path);
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
*/

c_config.compile("parser");
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());

// If your language uses an external scanner written in C++,
// then include this block of code:

/*
let mut cpp_config = cc::Build::new();
cpp_config.cpp(true);
cpp_config.include(&src_dir);
cpp_config
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable");
let scanner_path = src_dir.join("scanner.cc");
cpp_config.file(&scanner_path);
cpp_config.compile("scanner");
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
*/
.flag_if_supported("-Wno-trigraphs")
.file("src/parser.c")
.compile("parser");
println!("cargo:rerun-if-changed=src/parser.c");
}
25 changes: 6 additions & 19 deletions bindings/rust/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//! ```
//! let code = "";
//! let mut parser = tree_sitter::Parser::new();
//! parser.set_language(tree_sitter_json::language()).expect("Error loading json grammar");
//! parser.set_language(&tree_sitter_json::language()).expect("error loading json grammar");
//! let tree = parser.parse(code, None).unwrap();
//! ```
//!
Expand All @@ -15,16 +15,14 @@
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
//! [tree-sitter]: https://tree-sitter.github.io/

use tree_sitter::Language;

extern "C" {
fn tree_sitter_json() -> Language;
}

/// Get the tree-sitter [Language][] for this grammar.
///
/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
pub fn language() -> Language {
pub fn language() -> tree_sitter::Language {
extern "C" {
fn tree_sitter_json() -> tree_sitter::Language;
}

unsafe { tree_sitter_json() }
}

Expand All @@ -38,14 +36,3 @@ pub const HIGHLIGHT_QUERY: &'static str = include_str!("../../queries/highlights
// pub const INJECTIONS_QUERY: &'static str = include_str!("../../queries/injections.scm");
// pub const LOCALS_QUERY: &'static str = include_str!("../../queries/locals.scm");
// pub const TAGS_QUERY: &'static str = include_str!("../../queries/tags.scm");

#[cfg(test)]
mod tests {
#[test]
fn test_can_load_grammar() {
let mut parser = tree_sitter::Parser::new();
parser
.set_language(super::language())
.expect("Error loading json language");
}
}

0 comments on commit 3b12920

Please sign in to comment.