[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: lpeg-list and nesting/recursion
- From: Wesley Smith <wesley.hoke@...>
- Date: Sat, 27 Mar 2010 21:05:46 +0100
I'm testing out some ideas using lpeg-list and was wondering how one
could express a recursive search through nested tables. Using lpeg to
search through a string is pretty straightforward using
(patt + P(1))^0
This works equally well for lists, but doesn't work at all for nested
lists. For example, I was trying to see how to generalize this
pattern:
local patt = L"one" * L(L"one" * L(L"one"))
It matches this:
local code = {"one", {"one", {"one"}, }, }
Now let's say I have:
local code = {"something", {"something", {"one"}, }, }
How can I express a recursive search through nested tables to find the
list containing "one"? My first attempt was:
(patt + L( (patt + P(1))^1 ) + P(1))^0
This only goes one level deep and I need it to exhaustively recurse.
Any ideas on how to do this?
thanks,
wes