From 8ddb51ac8249b852baafe033838ed22cdb5c0b08 Mon Sep 17 00:00:00 2001 From: Wilfred Hughes Date: Mon, 16 Aug 2021 22:00:16 -0700 Subject: [PATCH] Hook up tree-sitter-ocaml --- build.rs | 12 +++++++----- src/sitter.rs | 4 ++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/build.rs b/build.rs index c4709d903..86c4ce116 100644 --- a/build.rs +++ b/build.rs @@ -14,16 +14,13 @@ fn build(package_name: &str, package_dir: &str, extra_files: &[&str]) { } } - dbg!(&c_files); - dbg!(&cpp_files); - if !cpp_files.is_empty() { let mut cpp_build = cc::Build::new(); - cpp_build.include(&dir).cpp(true); + cpp_build.include(&dir).cpp(true).flag_if_supported("-std=c++14"); for file in cpp_files { cpp_build.file(dir.join(file)); } - cpp_build.compile(package_name); + cpp_build.compile(&format!("{}-cpp", package_name)); } let mut build = cc::Build::new(); @@ -48,6 +45,11 @@ fn main() { &["scanner.c"], ); build("tree-sitter-json", "vendor/tree-sitter-json/src", &[]); + build( + "tree-sitter-ocaml", + "vendor/tree-sitter-ocaml/ocaml/src", + &["scanner.cc"], + ); build( "tree-sitter-rust", "vendor/tree-sitter-rust/src", diff --git a/src/sitter.rs b/src/sitter.rs index ae6cd2393..67c745109 100644 --- a/src/sitter.rs +++ b/src/sitter.rs @@ -11,6 +11,7 @@ extern "C" { fn tree_sitter_go() -> Language; fn tree_sitter_javascript() -> Language; fn tree_sitter_json() -> Language; + fn tree_sitter_ocaml() -> Language; fn tree_sitter_rust() -> Language; } @@ -22,6 +23,7 @@ pub fn supported(extension: &OsStr) -> bool { || extension == "js" || extension == "jsx" || extension == "json" + || extension == "ml" } pub fn parse<'a>( @@ -43,6 +45,8 @@ pub fn parse<'a>( unsafe { tree_sitter_json() } } else if extension == "js" || extension == "jsx" { unsafe { tree_sitter_javascript() } + } else if extension == "ml" { + unsafe { tree_sitter_ocaml() } } else { panic!("Unknown extension for tree-sitter parsers.") };