langdep.cc 793 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* $Id$ */
  2. #include "langdep.h"
  3. struct langlist {
  4. struct langlist *l_next;
  5. struct langdep *l_lang;
  6. char *l_suff;
  7. };
  8. /* STATICALLOCDEF "langlist" 5 */
  9. static struct langlist *list;
  10. struct langdep *currlang;
  11. static void
  12. add_language(suff, lang)
  13. char *suff;
  14. struct langdep *lang;
  15. {
  16. struct langlist *p = new_langlist();
  17. p->l_next = list;
  18. p->l_suff = suff;
  19. p->l_lang = lang;
  20. list = p;
  21. }
  22. init_languages()
  23. {
  24. add_language(".p", pascal_dep);
  25. add_language(".mod", m2_dep);
  26. add_language(".c", c_dep);
  27. }
  28. find_language(suff)
  29. char *suff;
  30. {
  31. register struct langlist *p = list;
  32. if (! suff) {
  33. currlang = c_dep;
  34. return;
  35. }
  36. while (p) {
  37. currlang = p->l_lang;
  38. if (! strcmp(p->l_suff, suff)) break;
  39. p = p->l_next;
  40. }
  41. if (! currlang) {
  42. currlang = c_dep;
  43. }
  44. }