summaryrefslogtreecommitdiff
path: root/parser.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2021-06-29 17:58:18 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2021-06-29 17:58:18 +0000
commit64a411ede2df42eea0e6905a4985a3e54057c677 (patch)
tree91dd1d06b06bbe76ffa0c6fd5b604a3a71964469 /parser.c
parent6ae2e2bb7bebdc3f4d450f1ddc6c69a02c3f4998 (diff)
Parse terms in parenthesis correctly
Diffstat (limited to 'parser.c')
-rw-r--r--parser.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/parser.c b/parser.c
index fc77905..c4d860e 100644
--- a/parser.c
+++ b/parser.c
@@ -171,6 +171,11 @@ term(void)
case CurlyBracketLeftTok:
result = curlybracketterm();
break;
+ case ParenLeftTok:
+ match(ParenLeftTok);
+ result = fullterm(ParenRightTok, nil, nil);
+ match(ParenRightTok);
+ break;
default:
print("Cant parse term of token type %d\n", lookahead.tag);
syntaxerror("term");
@@ -245,7 +250,7 @@ parseoperators(Term *list)
for(i = 0, t = list; i < length; i++){
Operator *op = getoperator(t->text);
- if(op){
+ if(op && t->tag == AtomTok){
infos[i].type = op->type;
infos[i].level = op->level;
}else{