diff options
Diffstat (limited to 'test.lua')
-rwxr-xr-x | test.lua | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -1032,6 +1032,17 @@ local function id (s, i, ...) | |||
1032 | return true, ... | 1032 | return true, ... |
1033 | end | 1033 | end |
1034 | 1034 | ||
1035 | do -- run-time capture in an end predicate (should discard its value) | ||
1036 | local x = 0 | ||
1037 | function foo (s, i) | ||
1038 | x = x + 1 | ||
1039 | return true, x | ||
1040 | end | ||
1041 | |||
1042 | local p = #(m.Cmt("", foo) * "xx") * m.Cmt("", foo) | ||
1043 | assert(p:match("xx") == 2) | ||
1044 | end | ||
1045 | |||
1035 | assert(m.Cmt(m.Cs((m.Cmt(m.S'abc' / { a = 'x', c = 'y' }, id) + | 1046 | assert(m.Cmt(m.Cs((m.Cmt(m.S'abc' / { a = 'x', c = 'y' }, id) + |
1036 | m.R'09'^1 / string.char + | 1047 | m.R'09'^1 / string.char + |
1037 | m.P(1))^0), id):match"acb98+68c" == "xyb\98+\68y") | 1048 | m.P(1))^0), id):match"acb98+68c" == "xyb\98+\68y") |