diff options
Diffstat (limited to 'tex/context/base/syst-lua.lua')
-rw-r--r-- | tex/context/base/syst-lua.lua | 246 |
1 files changed, 123 insertions, 123 deletions
diff --git a/tex/context/base/syst-lua.lua b/tex/context/base/syst-lua.lua index ef524c339..4795efe68 100644 --- a/tex/context/base/syst-lua.lua +++ b/tex/context/base/syst-lua.lua @@ -1,123 +1,123 @@ -if not modules then modules = { } end modules ['syst-lua'] = { - version = 1.001, - comment = "companion to syst-lua.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local format, find, match, rep = string.format, string.find, string.match, string.rep -local tonumber = tonumber -local S, lpegmatch, lpegtsplitat = lpeg.S, lpeg.match, lpeg.tsplitat - -local context = context - -commands = commands or { } - -function commands.writestatus(...) logs.status(...) end -- overloaded later - -local firstoftwoarguments = context.firstoftwoarguments -- context.constructcsonly("firstoftwoarguments" ) -local secondoftwoarguments = context.secondoftwoarguments -- context.constructcsonly("secondoftwoarguments") -local firstofoneargument = context.firstofoneargument -- context.constructcsonly("firstofoneargument" ) -local gobbleoneargument = context.gobbleoneargument -- context.constructcsonly("gobbleoneargument" ) - --- contextsprint(prtcatcodes,[[\ui_fo]]) -- firstofonearguments --- contextsprint(prtcatcodes,[[\ui_go]]) -- gobbleonearguments --- contextsprint(prtcatcodes,[[\ui_ft]]) -- firstoftwoarguments --- contextsprint(prtcatcodes,[[\ui_st]]) -- secondoftwoarguments - -function commands.doifelse(b) - if b then - firstoftwoarguments() - else - secondoftwoarguments() - end -end - -function commands.doif(b) - if b then - firstofoneargument() - else - gobbleoneargument() - end -end - -function commands.doifnot(b) - if b then - gobbleoneargument() - else - firstofoneargument() - end -end - -commands.testcase = commands.doifelse -- obsolete - -function commands.boolcase(b) - context(b and 1 or 0) -end - -function commands.doifelsespaces(str) - if find(str,"^ +$") then - firstoftwoarguments() - else - secondoftwoarguments() - end -end - -local s = lpegtsplitat(",") -local h = { } - -function commands.doifcommonelse(a,b) -- often the same test - local ha = h[a] - local hb = h[b] - if not ha then - ha = lpegmatch(s,a) - h[a] = ha - end - if not hb then - hb = lpegmatch(s,b) - h[b] = hb - end - local na = #ha - local nb = #hb - for i=1,na do - for j=1,nb do - if ha[i] == hb[j] then - firstoftwoarguments() - return - end - end - end - secondoftwoarguments() -end - -function commands.doifinsetelse(a,b) - local hb = h[b] - if not hb then hb = lpegmatch(s,b) h[b] = hb end - for i=1,#hb do - if a == hb[i] then - firstoftwoarguments() - return - end - end - secondoftwoarguments() -end - -local pattern = lpeg.patterns.validdimen - -function commands.doifdimenstringelse(str) - if lpegmatch(pattern,str) then - firstoftwoarguments() - else - secondoftwoarguments() - end -end - -function commands.firstinset(str) - local first = match(str,"^([^,]+),") - context(first or str) -end - -function commands.ntimes(str,n) - context(rep(str,n or 1)) -end +if not modules then modules = { } end modules ['syst-lua'] = {
+ version = 1.001,
+ comment = "companion to syst-lua.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, find, match, rep = string.format, string.find, string.match, string.rep
+local tonumber = tonumber
+local S, lpegmatch, lpegtsplitat = lpeg.S, lpeg.match, lpeg.tsplitat
+
+local context = context
+
+commands = commands or { }
+
+function commands.writestatus(...) logs.status(...) end -- overloaded later
+
+local firstoftwoarguments = context.firstoftwoarguments -- context.constructcsonly("firstoftwoarguments" )
+local secondoftwoarguments = context.secondoftwoarguments -- context.constructcsonly("secondoftwoarguments")
+local firstofoneargument = context.firstofoneargument -- context.constructcsonly("firstofoneargument" )
+local gobbleoneargument = context.gobbleoneargument -- context.constructcsonly("gobbleoneargument" )
+
+-- contextsprint(prtcatcodes,[[\ui_fo]]) -- firstofonearguments
+-- contextsprint(prtcatcodes,[[\ui_go]]) -- gobbleonearguments
+-- contextsprint(prtcatcodes,[[\ui_ft]]) -- firstoftwoarguments
+-- contextsprint(prtcatcodes,[[\ui_st]]) -- secondoftwoarguments
+
+function commands.doifelse(b)
+ if b then
+ firstoftwoarguments()
+ else
+ secondoftwoarguments()
+ end
+end
+
+function commands.doif(b)
+ if b then
+ firstofoneargument()
+ else
+ gobbleoneargument()
+ end
+end
+
+function commands.doifnot(b)
+ if b then
+ gobbleoneargument()
+ else
+ firstofoneargument()
+ end
+end
+
+commands.testcase = commands.doifelse -- obsolete
+
+function commands.boolcase(b)
+ context(b and 1 or 0)
+end
+
+function commands.doifelsespaces(str)
+ if find(str,"^ +$") then
+ firstoftwoarguments()
+ else
+ secondoftwoarguments()
+ end
+end
+
+local s = lpegtsplitat(",")
+local h = { }
+
+function commands.doifcommonelse(a,b) -- often the same test
+ local ha = h[a]
+ local hb = h[b]
+ if not ha then
+ ha = lpegmatch(s,a)
+ h[a] = ha
+ end
+ if not hb then
+ hb = lpegmatch(s,b)
+ h[b] = hb
+ end
+ local na = #ha
+ local nb = #hb
+ for i=1,na do
+ for j=1,nb do
+ if ha[i] == hb[j] then
+ firstoftwoarguments()
+ return
+ end
+ end
+ end
+ secondoftwoarguments()
+end
+
+function commands.doifinsetelse(a,b)
+ local hb = h[b]
+ if not hb then hb = lpegmatch(s,b) h[b] = hb end
+ for i=1,#hb do
+ if a == hb[i] then
+ firstoftwoarguments()
+ return
+ end
+ end
+ secondoftwoarguments()
+end
+
+local pattern = lpeg.patterns.validdimen
+
+function commands.doifdimenstringelse(str)
+ if lpegmatch(pattern,str) then
+ firstoftwoarguments()
+ else
+ secondoftwoarguments()
+ end
+end
+
+function commands.firstinset(str)
+ local first = match(str,"^([^,]+),")
+ context(first or str)
+end
+
+function commands.ntimes(str,n)
+ context(rep(str,n or 1))
+end
|