diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-06-30 20:51:02 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-06-30 20:51:02 +0000 |
commit | ff418c798b580204f6fea5512adc36835f8b7efa (patch) | |
tree | 71c24b829c2a037653e302adb680f4237fc2a6bb /parser.c | |
parent | a8b1fadd149126e9c8d3081a56d206812211f1e6 (diff) |
Add comparison predicates
Diffstat (limited to 'parser.c')
-rw-r--r-- | parser.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -264,7 +264,7 @@ parseoperators(Term *list) for(i = 0, t = list; i < length; i++){ Operator *op = getoperator(t->text); - if(op && t->tag == AtomTok){ + if(op && t->tag == AtomTerm){ infos[i].type = op->type; infos[i].level = op->level; }else{ @@ -292,7 +292,10 @@ parseoperators(Term *list) } if(index == -1){ - print("Can't parse, list contains no operators"); + print("Can't parse, list of length %d contains no operators: ", length); + for(i = 0; i < length; i++) + print("%S(%d) ", prettyprint(terms[i]), infos[i].level); + print("\n"); syntaxerror("parseoperators"); } @@ -439,6 +442,7 @@ nexttoken(void) replaypeek = -1; } +SkipWhite: /* Skip whitespace */ while(isspacerune(peek)) peek = Bgetrune(parsein); @@ -447,7 +451,7 @@ nexttoken(void) if(peek == L'%'){ while(peek != L'\n') peek = Bgetrune(parsein); - peek = Bgetrune(parsein); + goto SkipWhite; } /* Variables */ |