From 13efe91101a11f41caf6321a8b2fbdd96ef9927a Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Tue, 27 Jul 2021 16:41:12 +0000 Subject: remove clausenr from terms, and put it into goals instead. Next up is implementing the control constructs in C, since they misbehave right now due to the new changes --- misc.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'misc.c') diff --git a/misc.c b/misc.c index bf7010f..91396bd 100644 --- a/misc.c +++ b/misc.c @@ -8,22 +8,17 @@ static uvlong varnr = 0; Term * -copyterm(Term *orig, uvlong *clausenr) +copyterm(Term *orig) { Term *new = gmalloc(sizeof(Term)); memcpy(new, orig, sizeof(Term)); new->next = nil; new->children = nil; - if(clausenr) - new->clausenr = *clausenr; - else - new->clausenr = orig->clausenr; - if(orig->tag == CompoundTerm){ Term *child; for(child = orig->children; child != nil; child = child->next) - new->children = appendterm(new->children, copyterm(child, clausenr)); + new->children = appendterm(new->children, copyterm(child)); } return new; } @@ -67,6 +62,14 @@ addvarnr(Term *t, uvlong offset) } } +void +renametermvars(Term *t) +{ + uvlong minvar = smallestvar(t); + uvlong offset = varnr - minvar; + addvarnr(t, offset); +} + void renameclausevars(Clause *c) { @@ -108,7 +111,6 @@ mkterm(int tag) t->next = nil; t->children = nil; t->text = nil; - t->clausenr = 0; t->inparens = 0; t->varnr = 0; return t; @@ -191,7 +193,7 @@ mklist(Term *elems) if(elems == nil) return mkatom(L"[]"); else{ - Term *t = copyterm(elems, nil); + Term *t = copyterm(elems); t->next = mklist(elems->next); return mkcompound(L".", 2, t); } @@ -201,9 +203,9 @@ Clause * copyclause(Clause *orig, uvlong *clausenr) { Clause *new = gmalloc(sizeof(Clause)); - new->head = copyterm(orig->head, clausenr); + new->head = copyterm(orig->head); if(orig->body) - new->body = copyterm(orig->body, clausenr); + new->body = copyterm(orig->body); else new->body = nil; if(clausenr) -- cgit v1.2.3