aboutsummaryrefslogtreecommitdiff
path: root/examples/farthest.lua
blob: 0dc82622b1157b0863ea0437b2eb313e1bda9bff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
local m = require'lpeglabel'

function matchPrint(p, s)
	local r, lab, errpos = p:match(s)
	print("r: ", r, "lab: ", lab, "errpos: ", errpos)
end

function getSub (s, i)
	if i then return s:sub(i) else return nil end
end

function matchPrint2(p, s)
	local r, lab, ifail = p:match(s)
	print("r: ", r, "lab: ", lab, "sfail: ", getSub(s, ifail))
end

local p = m.P"a"^0 * m.P"b" + m.P"c"
matchPrint(p, "abc")  --> r: 3	  lab: nil   errpos: nil
matchPrint(p, "c")    --> r: 2	  lab: nil   errpos: nil
matchPrint(p, "aac")  --> r: nil	lab: fail  errpos: 3
matchPrint(p, "xxc")  --> r: nil	lab: fail  errpos: 1


matchPrint2(p, "abc")  --> r: 3	   lab: nil   sfail: nil
matchPrint2(p, "c")    --> r: 2	   lab: nil   sfail: nil
matchPrint2(p, "aac")  --> r: nil	 lab: fail  sfail: c
matchPrint2(p, "xxc")  --> r: nil	 lab: fail  sfail: xxc