set -eu
dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
error() {
echo "Error: $1" 1>&2
}
usage() {
echo "Usage: $0 [-h|--help] EXAMPLE_FILE"
}
py_pkg="tree-sitter-python@0.20.1"
py_dir="$dir/.$py_pkg"
if [ ! -e "$py_dir" ]; then
echo "Missing Python grammar. Run bootstrap script to install."
exit 1
fi
while [ $# -gt 0 ]; do
arg="$1"
shift 1
case "$arg" in
-h|--help)
usage
exit 0
;;
*)
example_file="$arg"
if [ $# -gt 0 ]; then
error "Too many positional arguments provided."
usage 1>&2
exit 1
fi
;;
esac
done
if [ ! -e "$example_file" ]; then
error "Missing file $example_file."
exit 1
fi
cargo -q run --features=cli -- parse --grammar "$py_dir" "$example_file"