aboutsummaryrefslogtreecommitdiff
path: root/src/interp/database.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/database.boot')
-rw-r--r--src/interp/database.boot15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/interp/database.boot b/src/interp/database.boot
index 58abfb6b..7f6849a3 100644
--- a/src/interp/database.boot
+++ b/src/interp/database.boot
@@ -782,3 +782,18 @@ squeezeAll: %List %Code -> %List %Code
squeezeAll x ==
[SQUEEZE t for t in x]
+makeInitialDB [form,kind,abbrev,srcfile] ==
+ db := makeDB form.op
+ dbConstructorForm(db) := form
+ dbConstructorKind(db) := kind
+ dbAbbreviation(db) := abbrev
+ property(abbrev,'ABBREVIATIONFOR) := form.op
+ dbSourceFile(db) := srcfile
+ setAutoLoadProperty form.op
+
+populateDBFromFile path ==
+ try
+ dbfile := inputTextFile path
+ while (entry := readExpr dbfile) ~= %nothing repeat
+ makeInitialDB entry
+ finally closeStream dbfile