From 314f3fa00c5d1b6609b72dc36ea64efc7edf77d1 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 30 May 2019 12:00:12 -0700 Subject: [PATCH] generate-fixtures: handle language repos that contain multiple grammars Refs tree-sitter/tree-sitter-typescript#68 --- script/generate-fixtures | 17 +++++++++++------ script/generate-fixtures.cmd | 27 +++++++++------------------ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/script/generate-fixtures b/script/generate-fixtures index 6296d8ab..40f6c5d9 100755 --- a/script/generate-fixtures +++ b/script/generate-fixtures @@ -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 diff --git a/script/generate-fixtures.cmd b/script/generate-fixtures.cmd index b307409e..f0003c50 100644 --- a/script/generate-fixtures.cmd +++ b/script/generate-fixtures.cmd @@ -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