diff options
author | Hans Hagen <pragma@wxs.nl> | 2020-11-23 19:48:34 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2020-11-23 19:48:34 +0100 |
commit | 18499e46a49b8ccf4346686d1cf626ada33935b8 (patch) | |
tree | bd0ae7b601b323e20954c10c07598637d9403e00 /tex/context/base/mkiv/mlib-lua.lmt | |
parent | 4b089e589d39346a66a27d04f9857fe16e4b7b41 (diff) | |
download | context-18499e46a49b8ccf4346686d1cf626ada33935b8.tar.gz |
2020-11-23 18:39:00
Diffstat (limited to 'tex/context/base/mkiv/mlib-lua.lmt')
-rw-r--r-- | tex/context/base/mkiv/mlib-lua.lmt | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/tex/context/base/mkiv/mlib-lua.lmt b/tex/context/base/mkiv/mlib-lua.lmt deleted file mode 100644 index 8721ed60c..000000000 --- a/tex/context/base/mkiv/mlib-lua.lmt +++ /dev/null @@ -1,168 +0,0 @@ -if not modules then modules = { } end modules ['mlib-lua'] = { - version = 1.001, - comment = "companion to mlib-ctx.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files", -} - -local type = type -local insert, remove = table.insert, table.remove - -local scan = mp.scan -local inject = mp.inject - -local currentmpx = nil -local stack = { } - -local scan_next = mplib.scan_next -local scan_expression = mplib.scan_expression -local scan_token = mplib.scan_token -local scan_symbol = mplib.scan_symbol -local scan_numeric = mplib.scan_numeric -local scan_integer = mplib.scan_integer -local scan_boolean = mplib.scan_boolean -local scan_string = mplib.scan_string -local scan_pair = mplib.scan_pair -local scan_color = mplib.scan_color -local scan_cmykcolor = mplib.scan_cmykcolor -local scan_transform = mplib.scan_transform -local scan_path = mplib.scan_path -local scan_pen = mplib.scan_pen - -scan.next = function(k) return scan_next (currentmpx,k) end -scan.expression = function(k) return scan_expression(currentmpx,k) end -scan.token = function(k) return scan_token (currentmpx,k) end -scan.symbol = function(k,e) return scan_symbol (currentmpx,k,e) end -scan.numeric = function() return scan_numeric (currentmpx) end -scan.integer = function() return scan_integer (currentmpx) end -scan.boolean = function() return scan_boolean (currentmpx) end -scan.string = function() return scan_string (currentmpx) end -scan.pair = function(t) return scan_pair (currentmpx,t) end -scan.color = function(t) return scan_color (currentmpx,t) end -scan.cmykcolor = function(t) return scan_cmykcolor (currentmpx,t) end -scan.transform = function(t) return scan_transform (currentmpx,t) end -scan.path = function(t) return scan_path (currentmpx,t) end -scan.pen = function(t) return scan_pen (currentmpx,t) end - -local solvepath = mplib.solvepath -local getstatus = mplib.getstatus - -mp.solve = function(...) - return solvepath(currentmpx,...) -end - -local inject_path = mplib.inject_path -local inject_numeric = mplib.inject_numeric -local inject_pair = mplib.inject_pair -local inject_boolean = mplib.inject_boolean -local inject_integer = mplib.inject_integer -local inject_string = mplib.inject_string -local inject_color = mplib.inject_color -local inject_cmykcolor = mplib.inject_cmykcolor -local inject_transform = mplib.inject_transform -local inject_whatever = mplib.inject_whatever - -------.path = function(t,cycle,curled) return inject_path (currentmpx,t,cycle,curled) end -inject.numeric = function(n) return inject_numeric (currentmpx,n) end -inject.pair = function(x,y) return inject_pair (currentmpx,x,y) end -inject.boolean = function(b) return inject_boolean (currentmpx,b) end -inject.integer = function(i) return inject_integer (currentmpx,i) end -inject.string = function(s) return inject_string (currentmpx,s) end -inject.color = function(r,g,b) return inject_color (currentmpx,r,g,b) end -inject.cmykcolor = function(c,m,y,k) return inject_cmykcolor(currentmpx,c,m,y,k) end -inject.transform = function(x,y,xx,xy,yx,yy) return inject_transform(currentmpx,x,y,xx,xy,yx,yy) end -inject.whatever = function(...) return inject_whatever (currentmpx,...) end - -local function same(p,n) - local f = p[1] - local l = p[n] - local nf = #f - local nl = #l - if nf == nl then - for i=1,nf do - if f[i] ~= l[i] then - return false - end - end - return true - end - return false -end - --- local p = mp.scan.path() --- mp.inject.path(p,true,true) - -function inject.path(p,close,connector) - local curled = false - local n = #p - if p.close or p.cycle then - close = true - end - if n > 1 then - -- [ ../true | --/false | nil/auto ] - if connector == nil or connector == "auto" then - connector = #p[1] > 2 - end - if connector == false or connector == "--" then - curled = true - elseif connector == true or connector == ".." then - if close and not same(p,n) then - p[n+1] = p[1] - end - end - end - return inject_path(currentmpx,p,close,curled) -end - --- bonus: - -scan .number = scan .numeric -inject.number = inject.numeric - -table.setmetatablecall(inject,function(t,...) - inject_whatever(currentmpx,...) -end) - --- experiment - -function mp.autoinject(m) - local t = type(m) - if t == "table" then - local n = #t - if n == 2 then - inject_pair(currentmpx,m) - elseif n == 3 then - inject_color(currentmpx,m) - elseif n == 4 then - inject_cmykcolor(currentmpx,m) - elseif n == 6 then - inject_transform(currentmpx,m) - end - elseif t == "number" then - inject_numeric(currentmpx,m) - elseif t == "string" then - inject_string(currentmpx,m) - elseif t == "boolean" then - inject_boolean(currentmpx,m) - end -end - -function metapost.pushscriptrunner(mpx) - insert(stack,mpx) - currentmpx = mpx -end - -function metapost.popscriptrunner() - currentmpx = remove(stack,mpx) -end - -function metapost.currentmpx() - return currentmpx -end - --- mplib.getstates(): zero is "normal" - -function metapost.currentmpxstatus() - return getstatus(currentmpx) or 0 -end |