[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: lpeg v0.4
- From: roberto@... (Roberto Ierusalimschy)
- Date: Fri, 19 Jan 2007 14:41:29 -0200
> Is there any sort of "null pattern" I could initialize encodedEntity
> and decodedEntity to (i.e. nullpattern + pattern == pattern) so I
> wouldn't need the if block in the for loop?
I guess you could do both encodedEntity and decodedEntity using query
captures. More or less like this:
local encodedEntity, decodedEntity
local entities = {amp="&", lt="<", gt=">", apos=[[']], quot=[["]]}
decodedEntity = "&" * lpeg.C(letter^1) * ";" / entities
local s, t = "", {}
for name, char in pairs(entities) do
t[char] = "&" .. name .. ";"; s = s .. char
end
encodedEntity = lpeg.S(s) / t
> Also, is that #lpeg.P("&") in xmlTextDecode good practice or
> unnecessary? Any other comments about how I'm doing this?
Usually, I think the less lpeg.P we use the better.
-- Roberto