[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Any LPEG tutorial for laymen ?
- From: Andrew Starks <andrew.starks@...>
- Date: Wed, 25 Sep 2013 01:45:56 -0500
On Wed, Sep 25, 2013 at 12:28 AM, Sean Conner <sean@conman.org> wrote:
> line = SP^0 * word * SP^1 * word * SP^1 * word
This is an excellent answer. One small change might be to assign the
captures to a map, so that you have three variables, as you do in
REXX. My change:
Ct = lpeg.Ct --capture table, which puts one or more matches into a table.
Cg = lpeg.Cg --capture group, which is used for back captures and to
label items in a capture table.
--here I replace the original line assignment with:
line = Ct(SP^0 * Cg(word, "userid") * SP^1 * Cg(word, "connid") * SP^1
* Cg(word,"state"))
--the pretty print becomes:
function parse(text)
for i, v in pairs(line:match(text)) do
print(i,v)
end
end