generate-fixtures: handle language repos that contain multiple grammars

Refs tree-sitter/tree-sitter-typescript#68
This commit is contained in:
Max Brunsfeld 2019-05-30 12:00:12 -07:00
parent da93e55f3a
commit 314f3fa00c
2 changed files with 20 additions and 24 deletions

View file

@ -4,19 +4,24 @@ set -e
cargo build --release
filter_grammar_name=$1
root_dir=$PWD
tree_sitter=${root_dir}/target/release/tree-sitter
grammars_dir=${root_dir}/test/fixtures/grammars
grammar_names=$(ls $grammars_dir)
grammar_files=$(find $grammars_dir -name grammar.js | grep -v node_modules)
if [[ "$#" > 0 ]]; then
grammar_names=($1)
fi
for grammar_file in $grammar_files; do
grammar_dir=$(dirname $grammar_file)
grammar_name=$(basename "$grammar_dir")
if [[ -n $filter_grammar_name && "$filter_grammar_name" != "$grammar_name" ]]; then
continue
fi
for grammar_name in $grammar_names; do
echo "Regenerating ${grammar_name} parser"
(
cd ${grammars_dir}/${grammar_name}
cd $grammar_dir
$tree_sitter generate src/grammar.json
)
done

View file

@ -1,22 +1,13 @@
@echo off
call:regenerate bash
call:regenerate c
call:regenerate cpp
call:regenerate embedded-template
call:regenerate go
call:regenerate html
call:regenerate javascript
call:regenerate json
call:regenerate python
call:regenerate rust
exit /B 0
setlocal EnableDelayedExpansion
set tree_sitter="%cd%\target\release\tree-sitter"
for /f "tokens=*" %%f in ('dir test\fixtures\grammars\grammar.js /b/s') do (
pushd "%%f\.."
echo Regenerating parser !cd!
%tree_sitter% generate src\grammar.json
popd
)
:regenerate
setlocal
set tree_sitter=%cd%\target\release\tree-sitter
set grammar_dir=test\fixtures\grammars\%~1
pushd %grammar_dir%
%tree_sitter% generate src\grammar.json
popd
exit /B 0