regenerate-parsers.bash 694 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env bash
  2. set -e
  3. forced=1
  4. if [[ "${1}" = "make" ]]; then
  5. forced=0
  6. fi
  7. pushd "${BASH_SOURCE%/*}/../../Source/LexerParser" > /dev/null
  8. for parser in \
  9. DependsJava \
  10. Expr \
  11. Fortran
  12. do
  13. in_file=cm${parser}Parser.y
  14. cxx_file=cm${parser}Parser.cxx
  15. h_file=cm${parser}ParserTokens.h
  16. prefix=cm${parser}_yy
  17. if [[ (${in_file} -nt ${cxx_file}) || (${in_file} -nt ${h_file}) || (${forced} -gt 0) ]]; then
  18. echo "Generating Parser ${parser}"
  19. bison --name-prefix=${prefix} --defines=${h_file} -o${cxx_file} ${in_file}
  20. else
  21. echo "Skipped generating Parser ${parser}"
  22. fi
  23. done
  24. popd > /dev/null