aboutsummaryrefslogtreecommitdiffstats
path: root/test/lua/pat2pcre.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/lua/pat2pcre.lua')
-rw-r--r--test/lua/pat2pcre.lua87
1 files changed, 0 insertions, 87 deletions
diff --git a/test/lua/pat2pcre.lua b/test/lua/pat2pcre.lua
deleted file mode 100644
index 2d60a443b2..0000000000
--- a/test/lua/pat2pcre.lua
+++ /dev/null
@@ -1,87 +0,0 @@
--- See Copyright Notice in the file lrexlib.h
-
--- Convert Lua regex pattern to its PCRE equivalent.
-
-local t_esc = {
- a = "[:alpha:]",
- A = "[:^alpha:]",
- c = "[:cntrl:]",
- C = "[:^cntrl:]",
- d = "[:digit:]",
- D = "[:^digit:]",
- l = "[:lower:]",
- L = "[:^lower:]",
- p = "[:punct:]",
- P = "[:^punct:]",
- s = "[:space:]",
- S = "[:^space:]",
- u = "[:upper:]",
- U = "[:^upper:]",
- w = "[:alnum:]",
- W = "[:^alnum:]",
- x = "[:xdigit:]",
- X = "[:^xdigit:]",
- z = "\\x00",
- Z = "\\x01-\\xFF",
-}
-
-local function rep_normal (ch)
- assert (ch ~= "b", "\"%b\" subpattern is not supported")
- assert (ch ~= "0", "invalid capture index")
- local v = t_esc[ch]
- return v and ("[" .. v .. "]") or ("\\" .. ch)
-end
-
-local function rep_charclass (ch)
- return t_esc[ch] or ("\\" .. ch)
-end
-
-function pat2pcre (s)
- local ind = 0
-
- local function getc ()
- ind = ind + 1
- return string.sub (s, ind, ind)
- end
-
- local function getnum ()
- local num = string.match (s, "^\\(%d%d?%d?)", ind)
- if num then
- ind = ind + #num
- return string.format ("\\x%02X", num)
- end
- end
-
- local out, state = "", "normal"
- while ind < #s do
- local ch = getc ()
- if state == "normal" then
- if ch == "%" then
- out = out .. rep_normal (getc ())
- elseif ch == "-" then
- out = out .. "*?"
- elseif ch == "." then
- out = out .. "\\C"
- elseif ch == "[" then
- out = out .. ch
- state = "charclass"
- else
- local num = getnum ()
- out = num and (out .. num) or (out .. ch)
- end
- elseif state == "charclass" then
- if ch == "%" then
- out = out .. rep_charclass (getc ())
- elseif ch == "]" then
- out = out .. ch
- state = "normal"
- else
- local num = getnum ()
- out = num and (out .. num) or (out .. ch)
- end
- end
- end
- return out
-end
-
-return pat2pcre