generate_files 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. set -e
  3. PHP_CMD=( php )
  4. FLEX_CMD=( flex )
  5. BISON_CMD=( bison )
  6. OUT_DIR="generated/"
  7. function bproto() {
  8. local input="$1"
  9. local name="$2"
  10. "${PHP_CMD[@]}" bproto_generator/bproto.php --input-file "${input}" --output-dir "${OUT_DIR}" --name "bproto_${name}"
  11. }
  12. function do_flex() {
  13. local input="$1"
  14. local name="$2"
  15. "${FLEX_CMD[@]}" -o "${OUT_DIR}/flex_${name}.c" --header-file="${OUT_DIR}/flex_${name}.h" "${input}"
  16. "${PHP_CMD[@]}" fix_flex.php "${OUT_DIR}/flex_${name}.c"
  17. "${PHP_CMD[@]}" fix_flex.php "${OUT_DIR}/flex_${name}.h"
  18. }
  19. function do_bison() {
  20. local input="$1"
  21. local name="$2"
  22. "${BISON_CMD[@]}" -d -o "${OUT_DIR}/bison_${name}.c" "${input}"
  23. }
  24. function do_lemon() {
  25. local input="$1"
  26. local name=$(basename "${input}")
  27. (
  28. cd generated &&
  29. rm -f "${name}" &&
  30. cp ../"${input}" "${name}" &&
  31. ../lemon/lemon "${name}"
  32. )
  33. }
  34. mkdir -p generated
  35. bproto tests/bproto_test.bproto bproto_test
  36. bproto protocol/msgproto.bproto msgproto
  37. bproto protocol/addr.bproto addr
  38. do_flex predicate/BPredicate.l BPredicate
  39. do_bison predicate/BPredicate.y BPredicate
  40. "${PHP_CMD[@]}" blog_generator/blog.php --input-file blog_channels.txt --output-dir "${OUT_DIR}"
  41. do_lemon ncd/NCDConfigParser_parse.y
  42. do_lemon ncd/NCDValueParser_parse.y