diff options
Diffstat (limited to 'scripts/context/lua/mtxrun.lua')
| -rw-r--r-- | scripts/context/lua/mtxrun.lua | 28 | 
1 files changed, 23 insertions, 5 deletions
| diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 226c6c32c..93110ad46 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -8570,6 +8570,12 @@ local lp_or      = P("|")  / " or "  local lp_and     = P("&")  / " and "  local lp_builtin = P ( +        P("text")         / "(ll.dt[1] or '')" + -- fragile +        P("content")      / "ll.dt" + +    --  P("name")         / "(ll.ns~='' and ll.ns..':'..ll.tg)" + +        P("name")         / "((ll.ns~='' and ll.ns..':'..ll.tg) or ll.tg)" + +        P("tag")          / "ll.tg" + +        P("position")     / "l" + -- is element in finalizer          P("firstindex")   / "1" +          P("lastindex")    / "(#ll.__p__.dt or 1)" +          P("firstelement") / "1" + @@ -8577,15 +8583,10 @@ local lp_builtin = P (          P("first")        / "1" +          P("last")         / "#list" +          P("rootposition") / "order" + -        P("position")     / "l" + -- is element in finalizer          P("order")        / "order" +          P("element")      / "(ll.ei or 1)" +          P("index")        / "(ll.ni or 1)" +          P("match")        / "(ll.mi or 1)" + -        P("text")         / "(ll.dt[1] or '')" + -    --  P("name")         / "(ll.ns~='' and ll.ns..':'..ll.tg)" + -        P("name")         / "((ll.ns~='' and ll.ns..':'..ll.tg) or ll.tg)" + -        P("tag")          / "ll.tg" +          P("ns")           / "ll.ns"      ) * ((spaces * P("(") * spaces * P(")"))/"") @@ -9165,6 +9166,23 @@ expressions.lower     = lower  expressions.number    = tonumber  expressions.boolean   = toboolean +function expressions.contains(str,pattern) +    local t = type(str) +    if t == "string" then +        if find(str,pattern) then +            return true +        end +    elseif t == "table" then +        for i=1,#str do +            local d = str[i] +            if type(d) == "string" and find(d,pattern) then +                return true +            end +        end +    end +    return false +end +  -- user interface  local function traverse(root,pattern,handle) | 
