🔗 LPEG Cheat Sheet
I once felt that every time I think LPEG is the solution to my problem I spend so much time trying to learn it that I lose focus from the actual problem.
The concept is admirable, though, so for once I decided to struggle through and actually get the job done using it. I learned a few tricks along the way, so I decided I should write them down (because I know I’ll certainly need them in the future).
These assume the one-letter functions are loaded into locals (e.g. P = lpeg.P
).
Match a pattern exactly n times
local function X(p,n) return n == 1 and p or p * X(p,n-1) end
Match anything not in a set
(1 - S"abc") -- [^abc]
Match a string converting backslash escape sequences
-- match backslash and capture following char, -- then convert match to captured char local escape = (P"\" * C(1)) / "%1" -- match anything but backslashes and spaces, or escapes -- turn everything into a capture, replacing inner captures local pathname = Cs( ( (1 - S"\ ") + escape ) ^ 1 )
Capture a number as a number
local num = (R"09" ^ 1) / tonumber
Follow
🐘 Mastodon ▪ RSS (English), RSS (português), RSS (todos / all)
Last 10 entries
- There are two very different things called "package managers"
- Last day at Kong
- A Special Hand
- How to change the nmtui background color
- Receita de Best Pancakes
- That time I almost added Tetris to htop
- Receita de Orange Chicken
- Receita de frango empanado no panko
- Receita de cebola caramelizada
- Receita rápida de crepe