2022-02-27 08:12:30 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
allow underline in variable names
diff --git a/src/template.lua b/src/template.lua index 75c7f31..ae5e32c 100644 --- a/src/template.lua +++ b/src/template.lua @@ -34,7 +34,7 @@ local function render_block(lines, first, last, env) while line_num <= last do local line = lines[line_num] if line:match("%%%s*(%w+).*") == "set" then - local var, expr = line:match("%%%s*set%s+(%w+)%s*=%s*(.+)") + local var, expr = line:match("%%%s*set%s+([%w_]+)%s*=%s*(.+)") assert(var and expr) env[var] = eval(expr, env) line_num = line_num + 1 @@ -57,7 +57,7 @@ local function render_block(lines, first, last, env) result = result .. render_block(lines, line_num+1, block_end-1, env) end elseif block_type == "for" then - local var, expr = line:match("%%%s*for%s+(%w+)%s+in%s+(.+)%s+do") + local var, expr = line:match("%%%s*for%s+([%w_]+)%s+in%s+(.+)%s+do") assert(var and expr) for i, v in ipairs(eval(expr, env)) do env[var] = v