From 91c673b37782d4cd90e5cf9a8e4491723e6c04bf Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Fri, 19 Jun 2020 14:44:54 -0700 Subject: fix: many small bug fixes with parser and lexer --- sys/cmd/rc/code.c | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'sys/cmd/rc/code.c') diff --git a/sys/cmd/rc/code.c b/sys/cmd/rc/code.c index f38dd43..9aa1037 100644 --- a/sys/cmd/rc/code.c +++ b/sys/cmd/rc/code.c @@ -36,7 +36,7 @@ stuffdot(Code *p) a = p - code.buf; if (code.ip <= p || p < code.buf) panic("bad address %d in stuffdot", a); - codebuf[a].i = code.ip-code.buf; + code.buf[a].i = code.ip-code.buf; } static @@ -63,7 +63,7 @@ rcc(Tree *t, int eflag) rcc(c0, eflag); emitf(Xqdol); break; - case Asub: + case Tsub: emitf(Xmark); rcc(c0, eflag); emitf(Xmark); @@ -101,31 +101,31 @@ rcc(Tree *t, int eflag) } else emits(fnstr(c0)); break; - case Aandand: + case Tandand: rcc(c0, 0); emitf(Xtrue); p = emiti(0); rcc(c1, eflag); stuffdot(p); break; - case Aargs: + case Targs: rcc(c1, eflag); rcc(c0, eflag); break; - case Kbang: + case Tbang: rcc(c0, eflag); emitf(Xbang); break; - case Aparen: - case Abrace: + case Tparen: + case Tbrace: rcc(c0, eflag); break; - case Acount: + case Tcount: emitf(Xmark); rcc(c0, eflag); emitf(Xcount); break; - case Kfunc: + case Tfunc: emitf(Xmark); rcc(c0, eflag); if(c1){ @@ -140,7 +140,7 @@ rcc(Tree *t, int eflag) else emitf(Xdelfn); break; - case Kif: + case Tif: rcc(c0, 0); emitf(Xif); p = emiti(0); @@ -148,7 +148,7 @@ rcc(Tree *t, int eflag) emitf(Xwastrue); stuffdot(p); break; - case Kelse: + case Telse: if(!runq->iflast) error("`else' does not follow `if(...)'"); emitf(Xelse); @@ -156,24 +156,24 @@ rcc(Tree *t, int eflag) rcc(c0, eflag); stuffdot(p); break; - case Aoror: + case Toror: rcc(c0, 0); emitf(Xfalse); p = emiti(0); rcc(c1, eflag); stuffdot(p); break; - case Aparen: + case Tparen: rcc(c0, eflag); break; - case Asimple: + case Tsimple: emitf(Xmark); rcc(c0, eflag); emitf(Xsimple); if(eflag) emitf(Xeflag); break; - case Ksubsh: + case Tsubshell: emitf(Xsubshell); if(havefork){ p = emiti(0); @@ -185,10 +185,10 @@ rcc(Tree *t, int eflag) if(eflag) emitf(Xeflag); break; - case Kswitch: + case Tswitch: codeswitch(t, eflag); break; - case Ktwiddle: + case Ttwiddle: emitf(Xmark); rcc(c1, eflag); emitf(Xmark); @@ -209,11 +209,11 @@ rcc(Tree *t, int eflag) emiti(q); stuffdot(p); break; - case Awords: + case Twords: rcc(c1, eflag); rcc(c0, eflag); break; - case Kfor: + case Tfor: emitf(Xmark); if(c1){ rcc(c1, eflag); @@ -237,12 +237,12 @@ rcc(Tree *t, int eflag) stuffdot(q); emitf(Xunlocal); break; - case Aword: + case Tword: emitf(Xword); emits(strdup(t->str)); break; - case Adup: - if(t->rtype==Adupfd){ + case Tdup: + if(t->rtype==Tdupfd){ emitf(Xdup); emiti(t->fd0); emiti(t->fd1); @@ -254,7 +254,7 @@ rcc(Tree *t, int eflag) rcc(c1, eflag); emitf(Xpopredir); break; - case Apipefd: + case Tpipefd: emitf(Xpipefd); emiti(t->rtype); if(havefork){ @@ -266,7 +266,7 @@ rcc(Tree *t, int eflag) emits(fnstr(c0)); } break; - case Aredir: + case Tredir: emitf(Xmark); rcc(c0, eflag); emitf(Xglob); @@ -315,7 +315,7 @@ rcc(Tree *t, int eflag) } t = tt; /* so tests below will work */ break; - case Apipe: + case Tpipe: emitf(Xpipe); emiti(t->fd0); emiti(t->fd1); @@ -335,7 +335,7 @@ rcc(Tree *t, int eflag) emitf(Xpipewait); break; } - if(t->type!=Kelse && t->type!=';') + if(t->type!=Telse && t->type!=';') runq->iflast = t->type==IF; else if(c0) runq->iflast = c0->type==IF; } -- cgit v1.2.1