mult-prm.mkxl /size: 5855 b    last modification: 2023-12-21 09:44
1%D \module
2%D   [       file=mult-prm,
3%D        version=2011.09.18, % actually older
4%D          title=\CONTEXT\ Multilingual Macros,
5%D       subtitle=Primitives,
6%D         author=Hans Hagen,
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is therefore
11%C copyrighted by \PRAGMA. See mreadme.pdf for details.
12
13%D This file is only a helper for generating files that can be used in an
14%D editor for syntax highlighting.
15
16% local all = table.load("mult-prm.lua")
17% local tex = table.tohash(all.tex)
18% for k, v in next, all do
19%     if k ~= "tex" then
20%         local h = table.tohash(v)
21%         for k, v in next, h do
22%             tex[k] = nil
23%         end
24%         all[k] = table.sortedkeys(h)
25%     end
26% end
27% all.tex = table.sortedkeys(tex)
28% print((string.gsub(table.serialize(all,true),' "','\n  "')))
29
30\startluacode
31
32    context.starttext()
33
34    local missing = {
35        tex = {
36            -- todo: differenced between luatex and luametatex
37        },
38        etex = {
39            -- todo: differenced between luatex and luametatex
40        },
41        luatex = {
42            -- todo: differenced between luatex and luametatex
43            "lastchkinteger",
44            "ifchkinteger",
45        },
46        pdftex = { -- maybe not complete
47            "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing",
48            "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit",
49            "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate",
50            "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode",
51            "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink",
52            "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand",
53            "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma",
54            "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin",
55            "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename",
56            "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor",
57            "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts",
58            "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate",
59            "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink",
60            "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages",
61            "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral",
62            "pdfmapfile", "pdfmapline", "pdfmajorversion", "pdfminorversion", "pdfnames",
63            "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfrecompress",
64            "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr",
65            "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources",
66            "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode",
67            "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen",
68            "pdfrandomseed", "pdfrefobj", "pdfrefxform", "pdfrefximage",
69            "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos",
70            "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread",
71            "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner",
72            "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin",
73            "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate",
74            "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr",
75            "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage",
76            "pdfomitcidset", "pdfomitcharset", "pdfomitinfodict",
77        },
78        aleph = { -- we don't bother
79            "Alephminorversion", "Alephrevision", "Alephversion",
80        },
81        omega = { -- we don't bother
82            "Omegaminorversion", "Omegarevision", "Omegaversion",
83        },
84        xetex = { -- we don't bother
85            "XeTeXversion",
86        },
87     -- plain = {
88     --     "TeX",
89     --     "bgroup", "egroup", "endgraf", "space", "empty", "null",
90     --     "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newhelp", "newread", "newwrite", "newfam", "newlanguage", "newinsert", "newif",
91     --     "maxdimen", "magstephalf", "magstep",
92     --     "frenchspacing", "nonfrenchspacing", "normalbaselines", "obeylines", "obeyspaces", "raggedright", "ttraggedright",
93     --     "thinspace", "negthinspace", "enspace", "enskip", "quad", "qquad",
94     --     "smallskip", "medskip", "bigskip", "removelastskip", "topglue", "vglue", "hglue",
95     --     "break", "nobreak", "allowbreak", "filbreak", "goodbreak", "smallbreak", "medbreak", "bigbreak",
96     --     "line", "leftline", "rightline", "centerline", "rlap", "llap", "underbar", "strutbox", "strut",
97     --     "cases", "matrix", "pmatrix", "bordermatrix", "eqalign", "displaylines", "eqalignno", "leqalignno",
98     --     "pageno", "folio", "tracingall", "showhyphens", "fmtname", "fmtversion",
99     --     "hphantom", "vphantom", "phantom", "smash",
100     -- },
101    }
102
103    local primitives = {
104        tex    = table.sorted( table.merged( missing.tex   , tex.extraprimitives("core","tex") ) ),
105        etex   = table.sorted( table.merged( missing.etex  , tex.extraprimitives("etex") ) ),
106        pdftex = table.sorted( table.merged( missing.pdftex, { } ) ),
107        luatex = table.sorted( table.merged( missing.luatex, tex.extraprimitives("luatex") ) ),
108        aleph  = table.sorted( table.merged( missing.aleph , { } ) ),
109        omega  = table.sorted( table.merged( missing.omega , { } ) ),
110        xetex  = table.sorted( table.merged( missing.xetex , { } ) ),
111    }
112
113 -- table.remove(primitives.tex,1) -- get rid of \-
114
115    io.savedata("mult-prm.lua",table.serialize(primitives,true,{ reduce = true, inline = false }))
116
117    context.stoptext()
118
119\stopluacode
120