From c61f7ad5fba9d1c8a62008b8bd3fd87f1310bf4e Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Thu, 22 Oct 2015 22:09:54 +0200 Subject: add negation --- lr.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lr.c') diff --git a/lr.c b/lr.c index b7c8d1b..8db5916 100644 --- a/lr.c +++ b/lr.c @@ -164,6 +164,8 @@ parse_op() return 0; } +struct expr *parse_cmp(); + struct expr * parse_inner() { @@ -171,6 +173,12 @@ parse_inner() struct expr *e = malloc (sizeof (struct expr)); e->op = EXPR_PRUNE; return e; + } else if (token("!")) { + struct expr *e = parse_cmp(); + struct expr *not = malloc (sizeof (struct expr)); + not->op = EXPR_NOT; + not->a.expr = e; + return not; } else return 0; // TODO negation -- cgit 1.4.1