#!/bin/bash output_path=lib/binding_rust/bindings.rs header_path='lib/include/tree_sitter/api.h' bindgen \ --no-layout-tests \ --whitelist-type '^TS.*' \ --whitelist-function '^ts_.*' \ --opaque-type FILE \ --distrust-clang-mangling \ $header_path > $output_path echo "" >> $output_path defines=( TREE_SITTER_LANGUAGE_VERSION TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION ) for define in ${defines[@]}; do define_value=$(egrep "#define $define (.*)" $header_path | cut -d' ' -f3) echo "pub const $define: usize = $define_value;" >> $output_path done