From 5966ab2ca2632c5bed9815def1add4859beececa Mon Sep 17 00:00:00 2001 From: Toby Goodwin Date: Fri, 9 Feb 2018 06:34:34 +0000 Subject: wip --- tree.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'tree.c') diff --git a/tree.c b/tree.c index 60b42e3..54c2013 100644 --- a/tree.c +++ b/tree.c @@ -26,11 +26,11 @@ extern Node *mk(int /*nodetype*/ t,...) { break; case nBang: case nNowait: case nCount: case nFlat: case nRmfn: case nSubshell: - case nVar: case nCase: + case nVar: case nCase: case nIfnot: n = nalloc(offsetof(Node, u[1])); n->u[0].p = va_arg(ap, Node *); break; - case nAndalso: case nAssign: case nBackq: case nBody: case nBrace: case nConcat: + case nAndalso: case nAssign: case nBackq: case nBody: case nBrace: case nConcat: case nElse: case nEpilog: case nIf: case nNewfn: case nCbody: case nOrelse: case nPre: case nArgs: case nSwitch: case nMatch: case nVarsub: case nWhile: case nLappend: @@ -60,6 +60,14 @@ extern Node *mk(int /*nodetype*/ t,...) { break; } n->type = t; + if (t == nBody && + n->u[1].p->type == nIfnot) { + if (n->u[0].p->type == nIf) { + fprint(2, "here i am!\n"); + } else + rc_error("`if not' must follow `if'"); + + } va_end(ap); return n; } -- cgit v1.2.3