aboutsummaryrefslogtreecommitdiff
path: root/examples/farthest.lua
diff options
context:
space:
mode:
Diffstat (limited to 'examples/farthest.lua')
-rw-r--r--examples/farthest.lua25
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 @@
1local m = require'lpeglabel' 1local m = require'lpeglabel'
2 2
3function matchPrint(p, s) 3function 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)
6end
7
8function getSub (s, i)
9 if i then return s:sub(i) else return nil end
10end
11
12function matchPrint2(p, s)
13 local r, lab, ifail = p:match(s)
14 print("r: ", r, "lab: ", lab, "sfail: ", getSub(s, ifail))
6end 15end
7 16
8local p = m.P"a"^0 * m.P"b" + m.P"c" 17local p = m.P"a"^0 * m.P"b" + m.P"c"
9matchPrint(p, "abc") --> r: 3 lab: nil sfail: nil 18matchPrint(p, "abc") --> r: 3 lab: nil errpos: nil
10matchPrint(p, "c") --> r: 2 lab: nil sfail: nil 19matchPrint(p, "c") --> r: 2 lab: nil errpos: nil
11matchPrint(p, "aac") --> r: nil lab: 0 sfail: c 20matchPrint(p, "aac") --> r: nil lab: 0 errpos: 3
12matchPrint(p, "xxc") --> r: nil lab: 0 sfail: xxc 21matchPrint(p, "xxc") --> r: nil lab: 0 errpos: 1
13 22
14 23
24matchPrint2(p, "abc") --> r: 3 lab: nil sfail: nil
25matchPrint2(p, "c") --> r: 2 lab: nil sfail: nil
26matchPrint2(p, "aac") --> r: nil lab: 0 sfail: c
27matchPrint2(p, "xxc") --> r: nil lab: 0 sfail: xxc