diff options
Diffstat (limited to 'testlabel.lua')
-rw-r--r-- | testlabel.lua | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/testlabel.lua b/testlabel.lua index 7461206..d60bb54 100644 --- a/testlabel.lua +++ b/testlabel.lua | |||
@@ -237,12 +237,39 @@ assert(r == nil and l == 'fail' and poserr == 1) | |||
237 | 237 | ||
238 | p = #(m.P"a" * m.T(1)) | 238 | p = #(m.P"a" * m.T(1)) |
239 | r, l, poserr = p:match("abc") | 239 | r, l, poserr = p:match("abc") |
240 | assert(r == nil and l == 'fail' and poserr == 1) | 240 | assert(r == nil and l == 'fail' and poserr == 2) |
241 | 241 | ||
242 | p = #(m.P"a" * m.P'a') | 242 | p = #(m.P"a" * m.P'a') |
243 | r, l, poserr = p:match("abc") | 243 | r, l, poserr = p:match("abc") |
244 | assert(r == nil and l == 'fail' and poserr == 1) | 244 | assert(r == nil and l == 'fail' and poserr == 2) |
245 | 245 | ||
246 | p = m.P'a' * #m.P('a') | ||
247 | r, l, poserr = p:match("abc") | ||
248 | assert(r == nil and l == 'fail' and poserr == 2) | ||
249 | |||
250 | p = m.P'a' * #m.P('ba') | ||
251 | r, l, poserr = p:match("abc") | ||
252 | assert(r == nil and l == 'fail' and poserr == 3) | ||
253 | |||
254 | p = m.P'a' * -m.P('b') | ||
255 | r, l, poserr = p:match("abc") | ||
256 | assert(r == nil and l == 'fail' and poserr == 2) | ||
257 | |||
258 | p = m.P'a' * -m.P('bc') | ||
259 | r, l, poserr = p:match("abc") | ||
260 | assert(r == nil and l == 'fail' and poserr == 4) | ||
261 | |||
262 | p = m.P'a' * #m.T('a') | ||
263 | r, l, poserr = p:match("abc") | ||
264 | assert(r == nil and l == 'fail' and poserr == 2) | ||
265 | |||
266 | p = m.P'a' * #(m.P'b' * m.T('a')) | ||
267 | r, l, poserr = p:match("abc") | ||
268 | assert(r == nil and l == 'fail' and poserr == 3) | ||
269 | |||
270 | p = m.P'a' * (m.P'b' * m.T('a')) | ||
271 | r, l, poserr = p:match("abc") | ||
272 | assert(r == nil and l == 'a' and poserr == 3) | ||
246 | 273 | ||
247 | p = -(-m.T(1)) | 274 | p = -(-m.T(1)) |
248 | r, l, poserr = p:match("bbc") | 275 | r, l, poserr = p:match("bbc") |
@@ -295,7 +322,7 @@ p = m.P{ | |||
295 | ["22"] = m.T(15) | 322 | ["22"] = m.T(15) |
296 | } | 323 | } |
297 | r, l, poserr = p:match("abc") | 324 | r, l, poserr = p:match("abc") |
298 | assert(r == nil and l == 'fail' and poserr == 1) | 325 | assert(r == nil and l == 'fail' and poserr == 2) |
299 | 326 | ||
300 | 327 | ||
301 | -- tests related to repetition | 328 | -- tests related to repetition |