BSD 4_3 release
[unix-history] / usr / src / ucb / dbx / languages.c
index 0f730ba..48eb4c0 100644 (file)
@@ -1,6 +1,14 @@
-/* Copyright (c) 1982 Regents of the University of California */
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+#ifndef lint
+static char sccsid[] = "@(#)languages.c        5.1 (Berkeley) 5/31/85";
+#endif not lint
 
 
-static char sccsid[] = "@(#)languages.c 1.3 5/18/83";
+static char rcsid[] = "$Header: languages.c,v 1.5 84/12/26 10:39:49 linton Exp $";
 
 /*
  * Language management.
 
 /*
  * Language management.
@@ -10,22 +18,29 @@ static char sccsid[] = "@(#)languages.c 1.3 5/18/83";
 #include "languages.h"
 #include "c.h"
 #include "pascal.h"
 #include "languages.h"
 #include "c.h"
 #include "pascal.h"
+#include "modula-2.h"
 #include "asm.h"
 
 #ifndef public
 #include "asm.h"
 
 #ifndef public
+
 typedef struct Language *Language;
 
 typedef enum {
 typedef struct Language *Language;
 
 typedef enum {
-    L_PRINTDECL, L_PRINTVAL, L_TYPEMATCH, L_BUILDAREF, L_EVALAREF
+    L_PRINTDECL, L_PRINTVAL, L_TYPEMATCH, L_BUILDAREF, L_EVALAREF,
+    L_MODINIT, L_HASMODULES, L_PASSADDR,
+    L_ENDOP
 } LanguageOp;
 
 typedef LanguageOperation();
 } LanguageOp;
 
 typedef LanguageOperation();
+
+Language primlang;
+
 #endif
 
 struct Language {
     String name;
     String suffix;
 #endif
 
 struct Language {
     String name;
     String suffix;
-    LanguageOperation *op[10];
+    LanguageOperation *op[20];
     Language next;
 };
 
     Language next;
 };
 
@@ -40,9 +55,11 @@ private Language head;
 
 public language_init()
 {
 
 public language_init()
 {
+    primlang = language_define("$builtin symbols", ".?");
     c_init();
     fortran_init();
     pascal_init();
     c_init();
     fortran_init();
     pascal_init();
+    modula2_init();
     asm_init();
 }
 
     asm_init();
 }
 
@@ -89,7 +106,7 @@ LanguageOp op;
 LanguageOperation *operation;
 {
     checkref(lang);
 LanguageOperation *operation;
 {
     checkref(lang);
-    assert(ord(op) <= ord(L_EVALAREF));
+    assert(ord(op) < ord(L_ENDOP));
     lang->op[ord(op)] = operation;
 }
 
     lang->op[ord(op)] = operation;
 }