summaryrefslogtreecommitdiff
path: root/sys/src/libregexp/regcomp.c
diff options
context:
space:
mode:
authorstanley lieber <stanley.lieber@gmail.com>2016-05-02 14:48:11 -0400
committerstanley lieber <stanley.lieber@gmail.com>2016-05-02 14:48:11 -0400
commit9c01b9a9580effc1b379e5ae04264c49f5849a15 (patch)
tree4990afd89e3bdc48776b94b930b00a9151bfa216 /sys/src/libregexp/regcomp.c
parent9ccbf1dcb15a69dbe21a6767c137537f3a5863af (diff)
libregexp/regcomp.c: fix parser for e2 production (thanks, spew)
Diffstat (limited to 'sys/src/libregexp/regcomp.c')
-rw-r--r--sys/src/libregexp/regcomp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/src/libregexp/regcomp.c b/sys/src/libregexp/regcomp.c
index c937ee5c9..b54c77597 100644
--- a/sys/src/libregexp/regcomp.c
+++ b/sys/src/libregexp/regcomp.c
@@ -78,14 +78,14 @@ e2(Parselex *plex)
Renode *n;
n = e3(plex);
- if(lex(plex) == LREP) {
+ while(lex(plex) == LREP) {
switch(plex->rune) {
case L'*':
- return node(plex, TSTAR, n, nil);
+ n = node(plex, TSTAR, n, nil);
case L'+':
- return node(plex, TPLUS, n, nil);
+ n = node(plex, TPLUS, n, nil);
case L'?':
- return node(plex, TQUES, n, nil);
+ n = node(plex, TQUES, n, nil);
}
}
plex->peek = 1;