aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/rc/code.c
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-06-19 14:44:54 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-06-19 14:44:54 -0700
commit91c673b37782d4cd90e5cf9a8e4491723e6c04bf (patch)
tree0c334edf4729283b08cd95ae577f890b089f26fc /sys/cmd/rc/code.c
parent765ff8b3423599396d0aa33885e2495ad86dbb19 (diff)
fix: many small bug fixes with parser and lexer
Diffstat (limited to 'sys/cmd/rc/code.c')
-rw-r--r--sys/cmd/rc/code.c52
1 files changed, 26 insertions, 26 deletions
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;
}