make.tokcase 450 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/sh
  2. cat <<'--EOT--'
  3. #include "Lpars.h"
  4. char *
  5. symbol2str(tok)
  6. int tok;
  7. {
  8. static char buf[2] = { '\0', '\0' };
  9. if (040 <= tok && tok < 0177) {
  10. buf[0] = tok;
  11. buf[1] = '\0';
  12. return buf;
  13. }
  14. switch (tok) {
  15. --EOT--
  16. sed '
  17. /{[A-Z]/!d
  18. s/.*{\(.*\),.*\(".*"\).*$/ case \1 :\
  19. return \2;/
  20. '
  21. cat <<'--EOT--'
  22. case '\n':
  23. case '\f':
  24. case '\v':
  25. case '\r':
  26. case '\t':
  27. buf[0] = tok;
  28. return buf;
  29. default:
  30. return "bad token";
  31. }
  32. }
  33. --EOT--