diff options
author | Sergio Queiroz <sqmedeiros@gmail.com> | 2017-07-06 16:01:44 -0300 |
---|---|---|
committer | Sergio Queiroz <sqmedeiros@gmail.com> | 2017-07-06 16:01:44 -0300 |
commit | e2a8e1c789a7a769c83a66d6fd2f191b0e465cba (patch) | |
tree | e2aecc3d439e44db98439c26cf23625da1bedb3f /lpvm.c | |
parent | a36fe71ac0271d9013f76d9342f9a2fca40f64fc (diff) | |
download | lpeglabel-e2a8e1c789a7a769c83a66d6fd2f191b0e465cba.tar.gz lpeglabel-e2a8e1c789a7a769c83a66d6fd2f191b0e465cba.tar.bz2 lpeglabel-e2a8e1c789a7a769c83a66d6fd2f191b0e465cba.zip |
Reintroducing the labeled ordered choice (tests without it passed)
Diffstat (limited to 'lpvm.c')
-rw-r--r-- | lpvm.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -277,6 +277,17 @@ const char *match (lua_State *L, const char *o, const char *s, const char *e, | |||
277 | p += 2; | 277 | p += 2; |
278 | continue; | 278 | continue; |
279 | } | 279 | } |
280 | case ILabChoice: { /* labeled failure */ | ||
281 | if (stack == stacklimit) | ||
282 | stack = doublestack(L, &stacklimit, ptop); | ||
283 | stack->p = p + getoffset(p); | ||
284 | stack->s = s; | ||
285 | stack->ls = (const Labelset *) ((p + 2)->buff); | ||
286 | stack->caplevel = captop; | ||
287 | stack++; | ||
288 | p += (CHARSETINSTSIZE - 1) + 2; | ||
289 | continue; | ||
290 | } | ||
280 | case IRecov: { /* labeled failure */ | 291 | case IRecov: { /* labeled failure */ |
281 | if (stack == stacklimit) | 292 | if (stack == stacklimit) |
282 | stack = doublestack(L, &stacklimit, ptop); | 293 | stack = doublestack(L, &stacklimit, ptop); |