#!/bin/sh set -eu tool_directory=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) tree_sitter=${TREE_SITTER:-"$tool_directory/node_modules/.bin/tree-sitter"} cache_directory=${TMPDIR:-/tmp}/tree-sitter-lscript-cache cd "$tool_directory" XDG_CACHE_HOME="$cache_directory" "$tree_sitter" parse \ -p . --quiet --stat "$tool_directory"/test/fixtures/valid/*.ls unexpected_success=0 for fixture in "$tool_directory"/test/fixtures/invalid/*.ls; do if XDG_CACHE_HOME="$cache_directory" "$tree_sitter" parse \ -p . --quiet "$fixture" >/dev/null 2>&1; then case "$(basename -- "$fixture")" in adjacent_equal_minus.ls|bang_inequality.ls|repeated_result.ls) ;; *) echo "invalid fixture parsed without recovery errors: $fixture" >&2 unexpected_success=1 ;; esac fi done if [ "$unexpected_success" -ne 0 ]; then exit 1 fi echo "Known recovery exceptions: adjacent_equal_minus, bang_inequality, repeated_result"