1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
return {
tex = {
"btex", "etex", "verbatimtex",
},
shortcuts = {
"..", "...", "--", "---", "&", "\\",
},
primitives = { -- to be checked
"charcode", "day", "linecap", "linejoin", "miterlimit", "month", "pausing",
"prologues", "showstopping", "time", "tracingcapsules", "tracingchoices", "mpprocset",
"tracingcommands", "tracingequations", "tracinglostchars",
"tracingmacros", "tracingonline", "tracingoutput", "tracingrestores",
"tracingspecs", "tracingstats", "tracingtitles", "truecorners",
"warningcheck", "year",
"false", "nullpicture", "pencircle", "penspec", "true",
"and", "angle", "arclength", "arctime", "ASCII", "boolean", "bot",
"char", "color", "cosd", "cycle", "decimal", "directiontime", "floor", "fontsize",
"hex", "infont", "intersectiontimes", "known", "length", "llcorner",
"lrcorner", "makepath", "makepen", "mexp", "mlog", "normaldeviate", "not",
"numeric", "oct", "odd", "or", "path", "pair", "pen", "penoffset", "picture", "point",
"postcontrol", "precontrol", "reverse", "rotated", "scaled",
"shifted", "sind", "slanted", "sqrt", "str", "string", "subpath", "substring",
"transform", "transformed", "ulcorner", "uniformdeviate", "unknown",
"urcorner", "xpart", "xscaled", "xxpart", "xypart", "ypart", "yscaled", "yxpart",
"yypart", "zscaled",
"addto", "clip", "input", "interim", "let", "newinternal", "save", "setbounds",
"shipout", "show", "showdependencies", "showtoken", "showvariable",
"special",
"begingroup", "endgroup", "of", "curl", "tension", "and", "controls",
"interpath", "on", "off",
"def", "vardef", "enddef", "expr", "suffix", "text", "primary", "secondary",
"tertiary", "primarydef", "secondarydef", "tertiarydef",
"randomseed", "also", "contour", "doublepath",
"withcolor", "withcmykcolor", "withpen",
"dashed",
"envelope",
"if", "else", "elseif", "fi", "for", "endfor", "forever", "exitif", "within",
"forsuffixes", "step", "until",
"charlist", "extensible", "fontdimen", "headerbyte", "kern", "ligtable",
"boundarychar", "chardp", "charext", "charht", "charic", "charwd", "designsize",
"fontmaking", "charexists",
"cullit", "currenttransform", "gfcorners", "grayfont", "hround",
"imagerules", "lowres_fix", "nodisplays", "notransforms", "openit",
"displaying", "currentwindow", "screen_rows", "screen_cols",
"pixels_per_inch", "cull", "display", "openwindow", "numspecial",
"totalweight", "autorounding", "fillin", "proofing", "tracingpens",
"xoffset", "chardx", "granularity", "smoothing", "turningcheck", "yoffset",
"chardy", "hppp", "tracingedges", "vppp",
"extra_beginfig", "extra_endfig", "mpxbreak",
"endinput",
"message", "delimiters", "turningnumber", "errmessage",
"readstring", "scantokens", "end", "outer", "inner", "write", "to", "readfrom",
"withprescript", "withpostscript",
"top", "bot", "lft", "rt", "ulft", "urt", "llft", "lrt",
--
"redpart", "greenpart", "bluepart",
"cyanpart", "magentapart", "yellowpart",
"blackpart",
"prescriptpart", "postscriptpart",
"rgbcolor", "cmykcolor", -- "greycolor", "graycolor",
"colormodel", "graypart", "greypart", "greycolor", "graycolor",
"dashpart", "penpart",
-- "colorpart",
"stroked", "filled", "textual", "clipped", "bounded", "pathpart",
"expandafter",
"minute", "hour",
"outputformat", "outputtemplate", "filenametemplate", "fontmapfile", "fontmapline",
"fontpart", "fontsize", "glyph", "restoreclipcolor", "troffmode",
--
"runscript", "maketext",
},
commands = {
"upto", "downto",
"beginfig", "endfig",
"beginglyph", "endglyph", -- actually a mult-fun one
"rotatedaround", "reflectedabout",
"arrowhead",
"currentpen", "currentpicture", "cuttings",
"defaultfont", "extra_beginfig", "extra_endfig",
"down",
"evenly", "fullcircle", "halfcircle", "identity", "in", "left",
"pensquare", "penrazor", "penspec",
"origin", "quartercircle", "right",
"unitsquare", "up", "withdots",
"abs", "bbox", "ceiling", "center", "cutafter", "cutbefore", "dir",
"directionpoint", "div", "dotprod", "intersectionpoint", "inverse", "mod",
"round", "unitvector", "whatever",
"cutdraw", "draw", "drawarrow", "drawdblarrow", "fill", "filldraw", "drawdot",
"loggingall", "interact", "tracingall", "tracingnone",
"pickup",
"undraw", "unfill", "unfilldraw",
"buildcycle", "dashpattern", "decr", "dotlabel", "dotlabels", "drawoptions",
"incr", "label", "labels", "max", "min", "thelabel", "z",
"beginchar", "blacker", "capsule_end", "change_width",
"define_blacker_pixels", "define_corrected_pixels",
"define_good_x_pixels", "define_good_y_pixels",
"define_horizontal_corrected_pixels", "define_pixels",
"define_whole_blacker_pixels", "define_whole_pixels",
"define_whole_vertical_blacker_pixels",
"define_whole_vertical_pixels", "endchar", "extra_beginchar",
"extra_endchar", "extra_setup", "font_coding_scheme",
"clearxy", "clearit", "clearpen", "shipit",
"font_extra_space",
"exitunless",
"relax", "hide", "gobble", "gobbled", "stop",
"blankpicture",
"counterclockwise", "tensepath", "takepower", "direction",
"softjoin", -- "magstep",
"makelabel", -- "laboff",
"rotatedabout", "flex", "superellipse", "image",
"nullpen", "savepen", "clearpen", "penpos", "penlabels", -- "clear_pen_memory",
"range", "thru",
"z", "laboff",
"bye",
--
"red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "background",
--
"mm", "pt", "dd", "bp", "cm", "pc", "cc", "in",
--
"triplet", "quadruplet",
},
internals = { -- we need to remove duplicates above
--
"mitered", "rounded", "beveled", "butt", "squared",
"eps", "epsilon", "infinity",
"bboxmargin",
"ahlength", "ahangle",
"labeloffset", "dotlabeldiam",
"defaultpen", "defaultscale",
"join_radius",
"charscale", -- actually a mult-fun one
--
"ditto", "EOF", -- maybe also down etc
--
"pen_lft", "pen_rt", "pen_top", "pen_bot", -- "pen_count_",
},
metafont = {
-- :: =: =:| =:|> |=: |=:> |=:| |=:|> |=:|>> ||:
"autorounding", "beginchar", "blacker", "boundarychar", "capsule_def",
"capsule_end", "change_width", "chardp", "chardx", "chardy", "charexists",
"charext", "charht", "charic", "charlist", "charwd", "cull", "cullit",
"currenttransform", "currentwindow", "define_blacker_pixels",
"define_corrected_pixels", "define_good_x_pixels", "define_good_y_pixels",
"define_horizontal_corrected_pixels", "define_pixels",
"define_whole_blacker_pixels", "define_whole_pixels",
"define_whole_vertical_blacker_pixels", "define_whole_vertical_pixels",
"designsize", "display", "displaying", "endchar", "extensible", "extra_beginchar",
"extra_endchar", "extra_setup", "fillin", "font_coding_scheme",
"font_extra_space", "font_identifier", "font_normal_shrink",
"font_normal_space", "font_normal_stretch", "font_quad", "font_size",
"font_slant", "font_x_height", "fontdimen", "fontmaking", "gfcorners",
"granularity", "grayfont", "headerbyte", "hppp", "hround", "imagerules",
"italcorr", "kern", "labelfont", "ligtable", "lowres_fix", "makebox",
"makegrid", "maketicks", "mode_def", "mode_setup", "nodisplays",
"notransforms", "numspecial", "o_correction", "openit", "openwindow",
"pixels_per_inch", "proofing", "proofoffset", "proofrule", "proofrulethickness",
"rulepen", "screenchars", "screenrule", "screenstrokes", "screen_cols", "screen_rows",
"showit", "slantfont", "smode", "smoothing", "titlefont", "totalweight",
"tracingedges", "tracingpens", "turningcheck", "unitpixel", "vppp", "vround",
"xoffset", "yoffset",
},
disabled = {
"verbatimtex", "troffmode"
}
}
|