From 2265ed4109cb4cee9ee1d5df0e9cf629923ce1cd Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 23 Mar 2023 18:25:06 +0000 Subject: [PATCH] [Minor] Add a simple function to strip Lua comments --- lualib/lua_util.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lualib/lua_util.lua b/lualib/lua_util.lua index b4707c4bd..ea193a975 100644 --- a/lualib/lua_util.lua +++ b/lualib/lua_util.lua @@ -1532,6 +1532,30 @@ end exports.dns_timeout_augmentation = dns_timeout_augmentation +---[[[ +--- @function lua_util.strip_lua_comments(lua_code) +-- Strips single-line and multi-line comments from a given Lua code string and removes +-- any extra spaces or newlines. +-- +-- @param lua_code The Lua code string to strip comments from. +-- @return The resulting Lua code string with comments and extra spaces removed. +-- +---]]] +local function strip_lua_comments(lua_code) + -- Remove single-line comments + lua_code = lua_code:gsub("%-%-[^\r\n]*", "") + + -- Remove multi-line comments + lua_code = lua_code:gsub("%-%-%[%[.-%]%]", "") + + -- Remove extra spaces and newlines + lua_code = lua_code:gsub("%s+", " ") + + return lua_code +end + +exports.strip_lua_comments = strip_lua_comments + -- Defines symbols priorities for common usage in prefilters/postfilters exports.symbols_priorities = { top = 10, -- Symbols must be executed first (or last), such as settings -- 2.39.5