diff options
Diffstat (limited to 'tex/context/base/mkiv/syst-mac.lmt')
-rw-r--r-- | tex/context/base/mkiv/syst-mac.lmt | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/tex/context/base/mkiv/syst-mac.lmt b/tex/context/base/mkiv/syst-mac.lmt deleted file mode 100644 index 410a49f8b..000000000 --- a/tex/context/base/mkiv/syst-mac.lmt +++ /dev/null @@ -1,117 +0,0 @@ -if not modules then modules = { } end modules ['syst-mac'] = { - 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" -} - --- This is kind of tricky and might not work for all csnames but as long as we use --- it in a controlled way, we're okay. The engine implementation might be changed --- a bit (no need to go through strings, but fetching a cs index and passing that --- back also takes time). - --- Another approach is to have the predefined stack operate use private stacks and --- then the pop doesn't need the cs. But ... we then also need to store stuff in --- the format so that complicates maters more than I'm willing to do. - -local insert, remove = table.insert, table.remove - -local push_macro = token.push_macro -local pop_macro = token.pop_macro -local scan_csname = token.scan_csname -local create_token = token.create -local gobble_token = token.gobble - -local context = context -local implement = interfaces.implement - -local report = logs.reporter("system","macrostack") - -local stack = table.setmetatableindex("table") - -local function pushmacro(name,global) - local s = push_macro(name,global) - if s then - insert(stack[name],s) - else - report("no macro %a to push",name) - insert(stack[name],false) - end -end - -local function popmacro(name) - local s = remove(stack[name]) - if s then - pop_macro(s) - else - report("no macro %a to pop",name) - end -end - -tokens.pushmacro = pushmacro -tokens.popmacro = popmacro - -implement { - name = "localpushmacro", - public = true, - protected = true, - actions = function() - pushmacro(scan_csname()) - end -} - -implement { - name = "globalpushmacro", - public = true, - protected = true, - actions = function() - pushmacro(scan_csname(),true) - end -} - -implement { - name = "localpopmacro", - public = true, - protected = true, - actions = function() - popmacro(scan_csname()) - end -} - -implement { - name = "globalpopmacro", - public = true, - protected = true, - actions = function() - popmacro(scan_csname()) - end -} - -implement { - name = "showmacrostack", - public = true, - protected = true, - actions = function() - local n = scan_csname() - local s = stack[n] - local m = #s - report("%s : %i stack slots used",n,m) - for i=1,m do - report("% 3i %S",i,s[i]) - end - end -} - -implement { - name = "gobblenested", - public = true, - protected = true, - arguments = "3 strings", - actions = function(start,stop,command) - gobble_token(create_token(start),create_token(stop)) - if command then - context[command]() - end - end -} |