[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Lua to LPEG?
- From: Peter Cawley <lua@...>
- Date: Tue, 21 Jun 2011 11:04:29 +0100
On Tue, Jun 21, 2011 at 10:04 AM, steve donovan
> On Tue, Jun 21, 2011 at 10:46 AM, David Given <email@example.com> wrote:
>> Well, for a start it would allow more complex parsers to be made easily
>> from simple Lua patterns, which are much easier to write than lpeg
>> parsers, such as...
> Ah, I see - the results of lpeg.L are now available in other lpeg
> contexts, etc. So alternation becomes '+' and so forth.
> It would be nice to be able to say lpeg.L "(foo|bar)", however. '|'
> becomes magic of course.
> Certainly it would help those (such as myself) who are fluent in Lua
> patterns but still struggle to express things in LPeg.
> steve d.
There is one slightly cheeky way to embed Lua patterns in LPeg:
local function adjust(_, x, ...)
if x then
return x + 1, ...
local function patternToLPeg(p)
p = "^".. p:gsub("$$", "$%%$")
return require"lpeg".Cmt(0, function(s, i) return
adjust(string.find(s, p, i)) end)