diff options
Diffstat (limited to 'parser.c')
-rw-r--r-- | parser.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -91,7 +91,6 @@ parse(int fd, Biobuf *bio, int querymode) }else parsein = bio; - initgoals = nil; initoperators(); nexttoken(); @@ -125,12 +124,10 @@ prologtext(int querymode) if(t->tag == CompoundTerm && runestrcmp(t->text, L":-") == 0 && t->arity == 1){ Term *body = t->children; print("Got directive: %S\n", prettyprint(body, 0, 0, 0)); - if(body->tag == CompoundTerm && body->arity == 1 && runestrcmp(body->text, L"initialization") == 0){ - Term *tmp = initgoals; - initgoals = body->children; - initgoals->next = tmp; - } - t = prologtext(querymode); + if(runestrcmp(body->text, L"module") == 0 && body->arity == 2) + t->next = prologtext(querymode); + else + t = prologtext(querymode); }else if(t->tag == CompoundTerm && runestrcmp(t->text, L":-") == 0 && t->arity == 2){ t->next = prologtext(querymode); }else if(t->tag == AtomTerm || t->tag == CompoundTerm){ @@ -391,6 +388,7 @@ initoperators(void) addoperator(700, Xfx, L">"); addoperator(700, Xfx, L">="); addoperator(700, Xfx, L"=.."); + addoperator(600, Xfy, L":"); addoperator(500, Yfx, L"+"); addoperator(400, Yfx, L"*"); addoperator(400, Yfx, L"/"); |