Pristine Ack-5.5
[Ack-5.5.git] / util / grind / langdep.cc
1 /* $Id: langdep.cc,v 1.8 1994/06/24 11:00:09 ceriel Exp $ */
2
3 #include "langdep.h"
4
5 struct langlist {
6   struct langlist       *l_next;
7   struct langdep        *l_lang;
8   char                  *l_suff;
9 };
10
11 /* STATICALLOCDEF "langlist" 5 */
12
13 static struct langlist *list;
14
15 struct langdep  *currlang;
16
17 static void
18 add_language(suff, lang)
19   char  *suff;
20   struct langdep *lang;
21 {
22   struct langlist *p = new_langlist();
23
24   p->l_next = list;
25   p->l_suff = suff;
26   p->l_lang = lang;
27   list = p;
28 }
29
30 init_languages()
31 {
32   add_language(".p", pascal_dep);
33   add_language(".mod", m2_dep);
34   add_language(".c", c_dep);
35 }
36
37 find_language(suff)
38   char  *suff;
39 {
40   register struct langlist *p = list;
41
42   if (! suff) {
43         currlang = c_dep;
44         return;
45   }
46   while (p) {
47         currlang = p->l_lang;
48         if (! strcmp(p->l_suff, suff)) break;
49         p = p->l_next;
50   }
51   if (! currlang) {
52         currlang = c_dep;
53   }
54 }