summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/syst-aux.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/syst-aux.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/syst-aux.lua229
1 files changed, 0 insertions, 229 deletions
diff --git a/Master/texmf-dist/tex/context/base/syst-aux.lua b/Master/texmf-dist/tex/context/base/syst-aux.lua
deleted file mode 100644
index fff9bbb4c16..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-aux.lua
+++ /dev/null
@@ -1,229 +0,0 @@
-if not modules then modules = { } end modules ['syst-aux'] = {
- version = 1.001,
- comment = "companion to syst-aux.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- slower than lpeg:
---
--- utfmatch(str,"(.?)(.*)$")
--- utf.sub(str,1,1)
-
-local tonumber = tonumber
-local utfsub = utf.sub
-local P, S, R, C, Cc, Cs, Carg, lpegmatch = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.Carg, lpeg.match
-
-local context = context
-local implement = interfaces.implement
-local formatters = string.formatters
-local setcatcode = tex.setcatcode
-local utf8character = lpeg.patterns.utf8character
-local settings_to_array = utilities.parsers.settings_to_array
-local setmacro = interfaces.setmacro
-
-local pattern = C(utf8character^-1) * C(P(1)^0)
-
-implement {
- name = "getfirstcharacter",
- arguments = "string",
- actions = function(str)
- local first, rest = lpegmatch(pattern,str)
- setmacro("firstcharacter",first)
- setmacro("remainingcharacters",rest)
- end
-}
-
-implement {
- name = "thefirstcharacter",
- arguments = "string",
- actions = function(str)
- local first, rest = lpegmatch(pattern,str)
- context(first)
- end
-}
-
-implement {
- name = "theremainingcharacters",
- arguments = "string",
- actions = function(str)
- local first, rest = lpegmatch(pattern,str)
- context(rest)
- end
-}
-
-local pattern = C(utf8character^-1)
-local ctx_doifelse = commands.doifelse
-
-implement {
- name = "doifelsefirstchar",
- arguments = { "string", "string" },
- actions = function(str,chr)
- ctx_doifelse(lpegmatch(pattern,str) == chr)
- end
-}
-
-implement {
- name = "getsubstring",
- arguments = { "string", "string", "string" },
- actions = function(str,first,last)
- context(utfsub(str,tonumber(first),tonumber(last)))
- end
-}
-
--- function commands.addtocommalist(list,item)
--- if list == "" then
--- context(item)
--- else
--- context("%s,%s",list,item) -- using tex.print is some 10% faster
--- end
--- end
---
--- function commands.removefromcommalist(list,item)
--- if list == "" then
--- context(item)
--- else
--- -- okay, using a proper lpeg is probably faster
--- -- we could also check for #l = 1
--- local l = settings_to_array(list)
--- local t, n = { }
--- for i=1,#l do
--- if l[i] ~= item then
--- n = n + 1
--- t[n] = item
--- end
--- end
--- if n == 0 then
--- context(item)
--- else
--- context(concat(list,","))
--- end
--- end
--- end
-
-local pattern = (C((1-P("%"))^1) * Carg(1)) / function(n,d)
- return formatters["%.0fsp"](d * tonumber(n)/100) end * P("%") * P(-1) -- .0 ?
-
--- percentageof("10%",65536*10)
-
-implement {
- name = "percentageof",
- arguments = { "string", "dimen" },
- actions = function(str,dim)
- context(lpegmatch(pattern,str,1,dim) or str)
- end
-}
-
--- \gdef\setpercentdimen#1#2%
--- {#1=\ctxcommand{percentageof("#2",\number#1)}\relax}
-
-local spaces = P(" ")^0 / ""
-local nohash = 1 - P("#")
-local digit = R("09")
-local double = P("##") / "#"
-local single = P("#")
-local sentinel = spaces * (nohash^1 / "\\%0")
-local sargument = (single * digit)^1
-local dargument = (double * digit)^1
-
-local usespaces = nil
-local texpreamble = nil
-
-local pattern = Cs( -- ^-1
- ( P("spaces") / function() usespaces = true return "" end )^0
- * spaces
- * ( P("nospaces") / function() usespaces = false return "" end )^0
- * spaces
- * ( P("global") / "\\global" )^0
- * spaces
- * ( P("unexpanded") / "\\unexpanded" )^0
- * spaces
- * Cc("\\expandafter\\")
- * spaces
- * ( P("expanded") / "e" )^0
- * spaces
- * ( P((1-S(" #"))^1) / "def\\csname %0\\endcsname" )
- * spaces
- * (
- -- (double * digit)^1 * sentinel^-1 * double^-1
- -- + (single * digit)^1 * sentinel^-1 * single^-1
- ( P("[") * dargument * P("]") + dargument)^1 * sentinel^-1 * double^-1
- + ( P("[") * sargument * P("]") + sargument)^1 * sentinel^-1 * single^-1
- + sentinel^-1 * (double+single)^-1
- )
-)
-
-local ctx_dostarttexdefinition = context.dostarttexdefinition
-
-local function texdefinition_one(str)
- usespaces = nil
- texpreamble = lpegmatch(pattern,str)
- if usespaces == true then
- setcatcode(32,10) -- space
- setcatcode(13, 5) -- endofline
- elseif usespaces == false then
- setcatcode(32, 9) -- ignore
- setcatcode(13, 9) -- ignore
- else
- -- this is default
- -- setcatcode(32,10) -- space
- -- setcatcode(13, 9) -- ignore
- end
- ctx_dostarttexdefinition()
-end
-
-local function texdefinition_two()
- context(texpreamble)
-end
-
-implement { name = "texdefinition_one", actions = texdefinition_one, scope = "private", arguments = "string" }
-implement { name = "texdefinition_two", actions = texdefinition_two, scope = "private" }
-
-implement { name = "upper", arguments = "string", actions = { utf.upper, context } }
-implement { name = "lower", arguments = "string", actions = { utf.lower, context } }
-implement { name = "strip", arguments = "string", actions = { string.strip, context } } -- or utf.strip
-
-implement {
- name = "converteddimen",
- arguments = { "dimen", "string" },
- actions = function(dimen,unit)
- context(number.todimen(dimen,unit or "pt","%0.5f")) -- no unit appended (%F)
- end
-}
-
--- where, not really the best spot for this:
-
-implement {
- name = "immediatemessage",
- arguments = { "'message'", "string" },
- actions = logs.status
-}
-
-implement {
- name = "resettimer",
- actions = function()
- statistics.resettiming("whatever")
- statistics.starttiming("whatever")
- end
-}
-
-implement {
- name = "elapsedtime",
- actions = function()
- statistics.stoptiming("whatever")
- context(statistics.elapsedtime("whatever"))
- end
-}
-
-local accuracy = table.setmetatableindex(function(t,k)
- local v = formatters["%0." ..k .. "f"]
- t[k] = v
- return v
-end)
-
-implement {
- name = "rounded",
- arguments = "integer",
- actions = function(n,m) context(accuracy[n](m)) end
-}