diff options
author | Sérgio Queiroz <sqmedeiros@gmail.com> | 2017-12-08 10:11:50 -0300 |
---|---|---|
committer | Sérgio Queiroz <sqmedeiros@gmail.com> | 2017-12-08 10:11:50 -0300 |
commit | 5ffef3da93ad53069d2510a75b11ecbb1b6e8aa7 (patch) | |
tree | e98c59a9e0aae891638eca25a25558d933fdf44f /examples/farthest.lua | |
parent | 030df9b4a4f4dc3a2cc5775e032f83e92d3c0097 (diff) | |
download | lpeglabel-5ffef3da93ad53069d2510a75b11ecbb1b6e8aa7.tar.gz lpeglabel-5ffef3da93ad53069d2510a75b11ecbb1b6e8aa7.tar.bz2 lpeglabel-5ffef3da93ad53069d2510a75b11ecbb1b6e8aa7.zip |
Updating the examples since lpeglabel now returns an error position instead of a string and p^lab is syntatic sugar
Diffstat (limited to 'examples/farthest.lua')
-rw-r--r-- | examples/farthest.lua | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/examples/farthest.lua b/examples/farthest.lua index 692390f..9cbe03d 100644 --- a/examples/farthest.lua +++ b/examples/farthest.lua | |||
@@ -1,14 +1,27 @@ | |||
1 | local m = require'lpeglabel' | 1 | local m = require'lpeglabel' |
2 | 2 | ||
3 | function matchPrint(p, s) | 3 | function matchPrint(p, s) |
4 | local r, lab, sfail = p:match(s) | 4 | local r, lab, errpos = p:match(s) |
5 | print("r: ", r, "lab: ", lab, "sfail: ", sfail) | 5 | print("r: ", r, "lab: ", lab, "errpos: ", errpos) |
6 | end | ||
7 | |||
8 | function getSub (s, i) | ||
9 | if i then return s:sub(i) else return nil end | ||
10 | end | ||
11 | |||
12 | function matchPrint2(p, s) | ||
13 | local r, lab, ifail = p:match(s) | ||
14 | print("r: ", r, "lab: ", lab, "sfail: ", getSub(s, ifail)) | ||
6 | end | 15 | end |
7 | 16 | ||
8 | local p = m.P"a"^0 * m.P"b" + m.P"c" | 17 | local p = m.P"a"^0 * m.P"b" + m.P"c" |
9 | matchPrint(p, "abc") --> r: 3 lab: nil sfail: nil | 18 | matchPrint(p, "abc") --> r: 3 lab: nil errpos: nil |
10 | matchPrint(p, "c") --> r: 2 lab: nil sfail: nil | 19 | matchPrint(p, "c") --> r: 2 lab: nil errpos: nil |
11 | matchPrint(p, "aac") --> r: nil lab: 0 sfail: c | 20 | matchPrint(p, "aac") --> r: nil lab: 0 errpos: 3 |
12 | matchPrint(p, "xxc") --> r: nil lab: 0 sfail: xxc | 21 | matchPrint(p, "xxc") --> r: nil lab: 0 errpos: 1 |
13 | 22 | ||
14 | 23 | ||
24 | matchPrint2(p, "abc") --> r: 3 lab: nil sfail: nil | ||
25 | matchPrint2(p, "c") --> r: 2 lab: nil sfail: nil | ||
26 | matchPrint2(p, "aac") --> r: nil lab: 0 sfail: c | ||
27 | matchPrint2(p, "xxc") --> r: nil lab: 0 sfail: xxc | ||