diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-16 00:42:49 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-07-16 00:42:49 +0000 |
commit | 1c8789198373a52da9e80dc9b2b1ee2b67af61c4 (patch) | |
tree | 980040a8d1828a85428b175eef9f6a4106248309 /garbage.c | |
parent | 2a77288e28f2725b5621c239d2393d49f61993e8 (diff) |
Make operators local to each module, and implement some more correct prettyprint code, used by write_term
Diffstat (limited to 'garbage.c')
-rw-r--r-- | garbage.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -27,6 +27,7 @@ static void markpredicates(Predicate *); static void markclauses(Clause *); static void markterm(Term *); static void markbindings(Binding *); +static void markoperators(Operator *); static Allocation *allocationtab[TableSize]; @@ -128,9 +129,12 @@ static void markmodules(void) { Module *m; + int i; for(m = modules; m != nil; m = m->next){ mark(m); markpredicates(m->predicates); + for(i = 0; i < PrecedenceLevels; i++) + markoperators(m->operators[i]); } } @@ -196,4 +200,12 @@ markbindings(Binding *bindings) mark(b); markterm(b->value); } +} + +static void +markoperators(Operator *ops) +{ + Operator *op; + for(op = ops; op != nil; op = op->next) + mark(op); }
\ No newline at end of file |