Line 9: |
Line 9: |
| local Combat2 = require("Module:Combat2") | | local Combat2 = require("Module:Combat2") |
| | | |
| + | local frame = nil |
| local args = nil | | local args = nil |
| local ship = nil | | local ship = nil |
| local target = nil | | local target = nil |
| local shipCapabilities = {} | | local shipCapabilities = {} |
− | local frame = nil
| |
| | | |
| local debug = {} | | local debug = {} |
| | | |
− | function debugLog(s) | + | function debugLog(k, v) |
− | table.insert(debug, s) | + | table.insert(debug, (k or "?") .. " = " .. (v or "?")) |
| end | | end |
| | | |
Line 236: |
Line 236: |
| end | | end |
| | | |
− | local special_functions = {
| + | function interpret_args() |
− | apply = function(args_)
| + | debugLog("#args", #args) |
− | local frame_ = frame:getParent()
| + | local values = {} |
− | local template = args_[2]
| + | repeat |
− | local values = {}
| + | for _, arg in ipairs(args) do |
− | for i = 3, #args_ do | + | debugLog("arg", arg) |
− | table.insert(values, format{ | + | local value = interpret_arg(arg) |
− | '{{${template}|${arg}}}',
| + | debugLog("value", value) |
− | template = template, | + | if value then |
− | arg = args_[i]
| + | table.insert(values, value) |
− | }) | + | end |
| end | | end |
− | return frame_:preprocess(table.concat(values, args.concat or ""))
| + | until not sequence or sequence_position > #sequence |
− | end
| + | debugLog("#values", #values) |
− | }
| + | return table.concat(values, args.concat or "") .. debugString() |
− | | |
− | function interpret_args(args_)
| |
− | args = args_
| |
− | local special_function = special_functions[args[1]]
| |
− | if special_function then | |
− | return special_function(args)
| |
− | else
| |
− | local values = {}
| |
− | debugLog("#args = " .. #args)
| |
− | repeat
| |
− | for _, arg in ipairs(args_) do
| |
− | debugLog("arg = " .. (arg or ""))
| |
− | local value = interpret_arg(arg)
| |
− | if value then
| |
− | debugLog("value = " .. (value or ""))
| |
− | table.insert(values, value)
| |
− | end
| |
− | end
| |
− | until not sequence or sequence_position > #sequence
| |
− | return table.concat(values, args.concat or "") .. debugString()
| |
− | end
| |
| end | | end |
| | | |
Line 278: |
Line 257: |
| function Calc.format(frame_, args_) | | function Calc.format(frame_, args_) |
| frame = frame_ | | frame = frame_ |
− | return interpret_args(args_ or Utils.getTemplateArgs(frame_).explicit) | + | args = args_ or Utils.getTemplateArgs(frame).explicit |
| + | return interpret_args() |
| end | | end |
| | | |
Line 303: |
Line 283: |
| "?cl1", | | "?cl1", |
| "?cl2", | | "?cl2", |
| + | "", |
| + | "", |
| + | "", |
| "", | | "", |
| "-", | | "-", |
Line 317: |
Line 300: |
| ) | | ) |
| end | | end |
| + | -- print(p.test()) |
| | | |
| return Calc | | return Calc |