Skip to main content

retex_engine/
primitives_gen.rs

1// @generated by tools/gen_primitives.py — do not edit.
2//! LuaTeX's primitive table: names, command codes, modifiers and groups.
3
4use crate::cmd::Cmd;
5
6/// The `tex.extraprimitives` group a primitive belongs to.
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
8pub enum Group {
9    /// Group `tex`.
10    Tex,
11    /// Group `core`.
12    Core,
13    /// Group `etex`.
14    Etex,
15    /// Group `luatex`.
16    Luatex,
17    /// Group `none`.
18    None,
19}
20
21/// A primitive: name, command, modifier and group.
22#[derive(Debug, Clone, Copy)]
23pub struct Primitive {
24    /// The control sequence name (without escape character).
25    pub name: &'static str,
26    /// The command code.
27    pub cmd: Cmd,
28    /// The modifier (`chr`), normalized for eqtb-addressing commands.
29    pub chr: u32,
30    /// The group it belongs to.
31    pub group: Group,
32}
33
34/// All LuaTeX primitives, sorted by name.
35pub static PRIMITIVES: &[Primitive] = &[
36    Primitive {
37        name: " ",
38        cmd: Cmd::ExSpace,
39        chr: 0,
40        group: Group::Tex,
41    },
42    Primitive {
43        name: "-",
44        cmd: Cmd::Discretionary,
45        chr: 1,
46        group: Group::Tex,
47    },
48    Primitive {
49        name: "/",
50        cmd: Cmd::ItalCorr,
51        chr: 0,
52        group: Group::Tex,
53    },
54    Primitive {
55        name: "Uchar",
56        cmd: Cmd::Convert,
57        chr: 12,
58        group: Group::Luatex,
59    },
60    Primitive {
61        name: "Udelcode",
62        cmd: Cmd::ExtdefDelCode,
63        chr: 0,
64        group: Group::Luatex,
65    },
66    Primitive {
67        name: "Udelcodenum",
68        cmd: Cmd::ExtdefDelCode,
69        chr: 1,
70        group: Group::Luatex,
71    },
72    Primitive {
73        name: "Udelimiter",
74        cmd: Cmd::DelimNum,
75        chr: 1,
76        group: Group::Luatex,
77    },
78    Primitive {
79        name: "Udelimiterover",
80        cmd: Cmd::Radical,
81        chr: 6,
82        group: Group::Luatex,
83    },
84    Primitive {
85        name: "Udelimiterunder",
86        cmd: Cmd::Radical,
87        chr: 5,
88        group: Group::Luatex,
89    },
90    Primitive {
91        name: "Uhextensible",
92        cmd: Cmd::Radical,
93        chr: 7,
94        group: Group::Luatex,
95    },
96    Primitive {
97        name: "Uleft",
98        cmd: Cmd::LeftRight,
99        chr: 11,
100        group: Group::Tex,
101    },
102    Primitive {
103        name: "Umathaccent",
104        cmd: Cmd::MathAccent,
105        chr: 1,
106        group: Group::Luatex,
107    },
108    Primitive {
109        name: "Umathaxis",
110        cmd: Cmd::SetMathParam,
111        chr: 1,
112        group: Group::Luatex,
113    },
114    Primitive {
115        name: "Umathbinbinspacing",
116        cmd: Cmd::SetMathParam,
117        chr: 67,
118        group: Group::Luatex,
119    },
120    Primitive {
121        name: "Umathbinclosespacing",
122        cmd: Cmd::SetMathParam,
123        chr: 70,
124        group: Group::Luatex,
125    },
126    Primitive {
127        name: "Umathbininnerspacing",
128        cmd: Cmd::SetMathParam,
129        chr: 72,
130        group: Group::Luatex,
131    },
132    Primitive {
133        name: "Umathbinopenspacing",
134        cmd: Cmd::SetMathParam,
135        chr: 69,
136        group: Group::Luatex,
137    },
138    Primitive {
139        name: "Umathbinopspacing",
140        cmd: Cmd::SetMathParam,
141        chr: 66,
142        group: Group::Luatex,
143    },
144    Primitive {
145        name: "Umathbinordspacing",
146        cmd: Cmd::SetMathParam,
147        chr: 65,
148        group: Group::Luatex,
149    },
150    Primitive {
151        name: "Umathbinpunctspacing",
152        cmd: Cmd::SetMathParam,
153        chr: 71,
154        group: Group::Luatex,
155    },
156    Primitive {
157        name: "Umathbinrelspacing",
158        cmd: Cmd::SetMathParam,
159        chr: 68,
160        group: Group::Luatex,
161    },
162    Primitive {
163        name: "Umathchar",
164        cmd: Cmd::MathCharNum,
165        chr: 1,
166        group: Group::Luatex,
167    },
168    Primitive {
169        name: "Umathcharclass",
170        cmd: Cmd::Convert,
171        chr: 20,
172        group: Group::Luatex,
173    },
174    Primitive {
175        name: "Umathchardef",
176        cmd: Cmd::ShorthandDef,
177        chr: 2,
178        group: Group::Luatex,
179    },
180    Primitive {
181        name: "Umathcharfam",
182        cmd: Cmd::Convert,
183        chr: 21,
184        group: Group::Luatex,
185    },
186    Primitive {
187        name: "Umathcharnum",
188        cmd: Cmd::MathCharNum,
189        chr: 2,
190        group: Group::Luatex,
191    },
192    Primitive {
193        name: "Umathcharnumdef",
194        cmd: Cmd::ShorthandDef,
195        chr: 9,
196        group: Group::Luatex,
197    },
198    Primitive {
199        name: "Umathcharslot",
200        cmd: Cmd::Convert,
201        chr: 22,
202        group: Group::Luatex,
203    },
204    Primitive {
205        name: "Umathclosebinspacing",
206        cmd: Cmd::SetMathParam,
207        chr: 91,
208        group: Group::Luatex,
209    },
210    Primitive {
211        name: "Umathcloseclosespacing",
212        cmd: Cmd::SetMathParam,
213        chr: 94,
214        group: Group::Luatex,
215    },
216    Primitive {
217        name: "Umathcloseinnerspacing",
218        cmd: Cmd::SetMathParam,
219        chr: 96,
220        group: Group::Luatex,
221    },
222    Primitive {
223        name: "Umathcloseopenspacing",
224        cmd: Cmd::SetMathParam,
225        chr: 93,
226        group: Group::Luatex,
227    },
228    Primitive {
229        name: "Umathcloseopspacing",
230        cmd: Cmd::SetMathParam,
231        chr: 90,
232        group: Group::Luatex,
233    },
234    Primitive {
235        name: "Umathcloseordspacing",
236        cmd: Cmd::SetMathParam,
237        chr: 89,
238        group: Group::Luatex,
239    },
240    Primitive {
241        name: "Umathclosepunctspacing",
242        cmd: Cmd::SetMathParam,
243        chr: 95,
244        group: Group::Luatex,
245    },
246    Primitive {
247        name: "Umathcloserelspacing",
248        cmd: Cmd::SetMathParam,
249        chr: 92,
250        group: Group::Luatex,
251    },
252    Primitive {
253        name: "Umathcode",
254        cmd: Cmd::ExtdefMathCode,
255        chr: 0,
256        group: Group::Luatex,
257    },
258    Primitive {
259        name: "Umathcodenum",
260        cmd: Cmd::ExtdefMathCode,
261        chr: 1,
262        group: Group::Luatex,
263    },
264    Primitive {
265        name: "Umathconnectoroverlapmin",
266        cmd: Cmd::SetMathParam,
267        chr: 48,
268        group: Group::Luatex,
269    },
270    Primitive {
271        name: "Umathfractiondelsize",
272        cmd: Cmd::SetMathParam,
273        chr: 23,
274        group: Group::Luatex,
275    },
276    Primitive {
277        name: "Umathfractiondenomdown",
278        cmd: Cmd::SetMathParam,
279        chr: 22,
280        group: Group::Luatex,
281    },
282    Primitive {
283        name: "Umathfractiondenomvgap",
284        cmd: Cmd::SetMathParam,
285        chr: 21,
286        group: Group::Luatex,
287    },
288    Primitive {
289        name: "Umathfractionnumup",
290        cmd: Cmd::SetMathParam,
291        chr: 20,
292        group: Group::Luatex,
293    },
294    Primitive {
295        name: "Umathfractionnumvgap",
296        cmd: Cmd::SetMathParam,
297        chr: 19,
298        group: Group::Luatex,
299    },
300    Primitive {
301        name: "Umathfractionrule",
302        cmd: Cmd::SetMathParam,
303        chr: 18,
304        group: Group::Luatex,
305    },
306    Primitive {
307        name: "Umathinnerbinspacing",
308        cmd: Cmd::SetMathParam,
309        chr: 107,
310        group: Group::Luatex,
311    },
312    Primitive {
313        name: "Umathinnerclosespacing",
314        cmd: Cmd::SetMathParam,
315        chr: 110,
316        group: Group::Luatex,
317    },
318    Primitive {
319        name: "Umathinnerinnerspacing",
320        cmd: Cmd::SetMathParam,
321        chr: 112,
322        group: Group::Luatex,
323    },
324    Primitive {
325        name: "Umathinneropenspacing",
326        cmd: Cmd::SetMathParam,
327        chr: 109,
328        group: Group::Luatex,
329    },
330    Primitive {
331        name: "Umathinneropspacing",
332        cmd: Cmd::SetMathParam,
333        chr: 106,
334        group: Group::Luatex,
335    },
336    Primitive {
337        name: "Umathinnerordspacing",
338        cmd: Cmd::SetMathParam,
339        chr: 105,
340        group: Group::Luatex,
341    },
342    Primitive {
343        name: "Umathinnerpunctspacing",
344        cmd: Cmd::SetMathParam,
345        chr: 111,
346        group: Group::Luatex,
347    },
348    Primitive {
349        name: "Umathinnerrelspacing",
350        cmd: Cmd::SetMathParam,
351        chr: 108,
352        group: Group::Luatex,
353    },
354    Primitive {
355        name: "Umathlimitabovebgap",
356        cmd: Cmd::SetMathParam,
357        chr: 27,
358        group: Group::Luatex,
359    },
360    Primitive {
361        name: "Umathlimitabovekern",
362        cmd: Cmd::SetMathParam,
363        chr: 28,
364        group: Group::Luatex,
365    },
366    Primitive {
367        name: "Umathlimitabovevgap",
368        cmd: Cmd::SetMathParam,
369        chr: 26,
370        group: Group::Luatex,
371    },
372    Primitive {
373        name: "Umathlimitbelowbgap",
374        cmd: Cmd::SetMathParam,
375        chr: 30,
376        group: Group::Luatex,
377    },
378    Primitive {
379        name: "Umathlimitbelowkern",
380        cmd: Cmd::SetMathParam,
381        chr: 31,
382        group: Group::Luatex,
383    },
384    Primitive {
385        name: "Umathlimitbelowvgap",
386        cmd: Cmd::SetMathParam,
387        chr: 29,
388        group: Group::Luatex,
389    },
390    Primitive {
391        name: "Umathnolimitsubfactor",
392        cmd: Cmd::SetMathParam,
393        chr: 32,
394        group: Group::Luatex,
395    },
396    Primitive {
397        name: "Umathnolimitsupfactor",
398        cmd: Cmd::SetMathParam,
399        chr: 33,
400        group: Group::Luatex,
401    },
402    Primitive {
403        name: "Umathopbinspacing",
404        cmd: Cmd::SetMathParam,
405        chr: 59,
406        group: Group::Luatex,
407    },
408    Primitive {
409        name: "Umathopclosespacing",
410        cmd: Cmd::SetMathParam,
411        chr: 62,
412        group: Group::Luatex,
413    },
414    Primitive {
415        name: "Umathopenbinspacing",
416        cmd: Cmd::SetMathParam,
417        chr: 83,
418        group: Group::Luatex,
419    },
420    Primitive {
421        name: "Umathopenclosespacing",
422        cmd: Cmd::SetMathParam,
423        chr: 86,
424        group: Group::Luatex,
425    },
426    Primitive {
427        name: "Umathopeninnerspacing",
428        cmd: Cmd::SetMathParam,
429        chr: 88,
430        group: Group::Luatex,
431    },
432    Primitive {
433        name: "Umathopenopenspacing",
434        cmd: Cmd::SetMathParam,
435        chr: 85,
436        group: Group::Luatex,
437    },
438    Primitive {
439        name: "Umathopenopspacing",
440        cmd: Cmd::SetMathParam,
441        chr: 82,
442        group: Group::Luatex,
443    },
444    Primitive {
445        name: "Umathopenordspacing",
446        cmd: Cmd::SetMathParam,
447        chr: 81,
448        group: Group::Luatex,
449    },
450    Primitive {
451        name: "Umathopenpunctspacing",
452        cmd: Cmd::SetMathParam,
453        chr: 87,
454        group: Group::Luatex,
455    },
456    Primitive {
457        name: "Umathopenrelspacing",
458        cmd: Cmd::SetMathParam,
459        chr: 84,
460        group: Group::Luatex,
461    },
462    Primitive {
463        name: "Umathoperatorsize",
464        cmd: Cmd::SetMathParam,
465        chr: 2,
466        group: Group::Luatex,
467    },
468    Primitive {
469        name: "Umathopinnerspacing",
470        cmd: Cmd::SetMathParam,
471        chr: 64,
472        group: Group::Luatex,
473    },
474    Primitive {
475        name: "Umathopopenspacing",
476        cmd: Cmd::SetMathParam,
477        chr: 61,
478        group: Group::Luatex,
479    },
480    Primitive {
481        name: "Umathopopspacing",
482        cmd: Cmd::SetMathParam,
483        chr: 58,
484        group: Group::Luatex,
485    },
486    Primitive {
487        name: "Umathopordspacing",
488        cmd: Cmd::SetMathParam,
489        chr: 57,
490        group: Group::Luatex,
491    },
492    Primitive {
493        name: "Umathoppunctspacing",
494        cmd: Cmd::SetMathParam,
495        chr: 63,
496        group: Group::Luatex,
497    },
498    Primitive {
499        name: "Umathoprelspacing",
500        cmd: Cmd::SetMathParam,
501        chr: 60,
502        group: Group::Luatex,
503    },
504    Primitive {
505        name: "Umathordbinspacing",
506        cmd: Cmd::SetMathParam,
507        chr: 51,
508        group: Group::Luatex,
509    },
510    Primitive {
511        name: "Umathordclosespacing",
512        cmd: Cmd::SetMathParam,
513        chr: 54,
514        group: Group::Luatex,
515    },
516    Primitive {
517        name: "Umathordinnerspacing",
518        cmd: Cmd::SetMathParam,
519        chr: 56,
520        group: Group::Luatex,
521    },
522    Primitive {
523        name: "Umathordopenspacing",
524        cmd: Cmd::SetMathParam,
525        chr: 53,
526        group: Group::Luatex,
527    },
528    Primitive {
529        name: "Umathordopspacing",
530        cmd: Cmd::SetMathParam,
531        chr: 50,
532        group: Group::Luatex,
533    },
534    Primitive {
535        name: "Umathordordspacing",
536        cmd: Cmd::SetMathParam,
537        chr: 49,
538        group: Group::Luatex,
539    },
540    Primitive {
541        name: "Umathordpunctspacing",
542        cmd: Cmd::SetMathParam,
543        chr: 55,
544        group: Group::Luatex,
545    },
546    Primitive {
547        name: "Umathordrelspacing",
548        cmd: Cmd::SetMathParam,
549        chr: 52,
550        group: Group::Luatex,
551    },
552    Primitive {
553        name: "Umathoverbarkern",
554        cmd: Cmd::SetMathParam,
555        chr: 3,
556        group: Group::Luatex,
557    },
558    Primitive {
559        name: "Umathoverbarrule",
560        cmd: Cmd::SetMathParam,
561        chr: 4,
562        group: Group::Luatex,
563    },
564    Primitive {
565        name: "Umathoverbarvgap",
566        cmd: Cmd::SetMathParam,
567        chr: 5,
568        group: Group::Luatex,
569    },
570    Primitive {
571        name: "Umathoverdelimiterbgap",
572        cmd: Cmd::SetMathParam,
573        chr: 37,
574        group: Group::Luatex,
575    },
576    Primitive {
577        name: "Umathoverdelimitervgap",
578        cmd: Cmd::SetMathParam,
579        chr: 36,
580        group: Group::Luatex,
581    },
582    Primitive {
583        name: "Umathpunctbinspacing",
584        cmd: Cmd::SetMathParam,
585        chr: 99,
586        group: Group::Luatex,
587    },
588    Primitive {
589        name: "Umathpunctclosespacing",
590        cmd: Cmd::SetMathParam,
591        chr: 102,
592        group: Group::Luatex,
593    },
594    Primitive {
595        name: "Umathpunctinnerspacing",
596        cmd: Cmd::SetMathParam,
597        chr: 104,
598        group: Group::Luatex,
599    },
600    Primitive {
601        name: "Umathpunctopenspacing",
602        cmd: Cmd::SetMathParam,
603        chr: 101,
604        group: Group::Luatex,
605    },
606    Primitive {
607        name: "Umathpunctopspacing",
608        cmd: Cmd::SetMathParam,
609        chr: 98,
610        group: Group::Luatex,
611    },
612    Primitive {
613        name: "Umathpunctordspacing",
614        cmd: Cmd::SetMathParam,
615        chr: 97,
616        group: Group::Luatex,
617    },
618    Primitive {
619        name: "Umathpunctpunctspacing",
620        cmd: Cmd::SetMathParam,
621        chr: 103,
622        group: Group::Luatex,
623    },
624    Primitive {
625        name: "Umathpunctrelspacing",
626        cmd: Cmd::SetMathParam,
627        chr: 100,
628        group: Group::Luatex,
629    },
630    Primitive {
631        name: "Umathquad",
632        cmd: Cmd::SetMathParam,
633        chr: 0,
634        group: Group::Luatex,
635    },
636    Primitive {
637        name: "Umathradicaldegreeafter",
638        cmd: Cmd::SetMathParam,
639        chr: 13,
640        group: Group::Luatex,
641    },
642    Primitive {
643        name: "Umathradicaldegreebefore",
644        cmd: Cmd::SetMathParam,
645        chr: 12,
646        group: Group::Luatex,
647    },
648    Primitive {
649        name: "Umathradicaldegreeraise",
650        cmd: Cmd::SetMathParam,
651        chr: 14,
652        group: Group::Luatex,
653    },
654    Primitive {
655        name: "Umathradicalkern",
656        cmd: Cmd::SetMathParam,
657        chr: 9,
658        group: Group::Luatex,
659    },
660    Primitive {
661        name: "Umathradicalrule",
662        cmd: Cmd::SetMathParam,
663        chr: 10,
664        group: Group::Luatex,
665    },
666    Primitive {
667        name: "Umathradicalvgap",
668        cmd: Cmd::SetMathParam,
669        chr: 11,
670        group: Group::Luatex,
671    },
672    Primitive {
673        name: "Umathrelbinspacing",
674        cmd: Cmd::SetMathParam,
675        chr: 75,
676        group: Group::Luatex,
677    },
678    Primitive {
679        name: "Umathrelclosespacing",
680        cmd: Cmd::SetMathParam,
681        chr: 78,
682        group: Group::Luatex,
683    },
684    Primitive {
685        name: "Umathrelinnerspacing",
686        cmd: Cmd::SetMathParam,
687        chr: 80,
688        group: Group::Luatex,
689    },
690    Primitive {
691        name: "Umathrelopenspacing",
692        cmd: Cmd::SetMathParam,
693        chr: 77,
694        group: Group::Luatex,
695    },
696    Primitive {
697        name: "Umathrelopspacing",
698        cmd: Cmd::SetMathParam,
699        chr: 74,
700        group: Group::Luatex,
701    },
702    Primitive {
703        name: "Umathrelordspacing",
704        cmd: Cmd::SetMathParam,
705        chr: 73,
706        group: Group::Luatex,
707    },
708    Primitive {
709        name: "Umathrelpunctspacing",
710        cmd: Cmd::SetMathParam,
711        chr: 79,
712        group: Group::Luatex,
713    },
714    Primitive {
715        name: "Umathrelrelspacing",
716        cmd: Cmd::SetMathParam,
717        chr: 76,
718        group: Group::Luatex,
719    },
720    Primitive {
721        name: "Umathskewedfractionhgap",
722        cmd: Cmd::SetMathParam,
723        chr: 24,
724        group: Group::Luatex,
725    },
726    Primitive {
727        name: "Umathskewedfractionvgap",
728        cmd: Cmd::SetMathParam,
729        chr: 25,
730        group: Group::Luatex,
731    },
732    Primitive {
733        name: "Umathspaceafterscript",
734        cmd: Cmd::SetMathParam,
735        chr: 47,
736        group: Group::Luatex,
737    },
738    Primitive {
739        name: "Umathstackdenomdown",
740        cmd: Cmd::SetMathParam,
741        chr: 17,
742        group: Group::Luatex,
743    },
744    Primitive {
745        name: "Umathstacknumup",
746        cmd: Cmd::SetMathParam,
747        chr: 16,
748        group: Group::Luatex,
749    },
750    Primitive {
751        name: "Umathstackvgap",
752        cmd: Cmd::SetMathParam,
753        chr: 15,
754        group: Group::Luatex,
755    },
756    Primitive {
757        name: "Umathsubshiftdown",
758        cmd: Cmd::SetMathParam,
759        chr: 40,
760        group: Group::Luatex,
761    },
762    Primitive {
763        name: "Umathsubshiftdrop",
764        cmd: Cmd::SetMathParam,
765        chr: 38,
766        group: Group::Luatex,
767    },
768    Primitive {
769        name: "Umathsubsupshiftdown",
770        cmd: Cmd::SetMathParam,
771        chr: 41,
772        group: Group::Luatex,
773    },
774    Primitive {
775        name: "Umathsubsupvgap",
776        cmd: Cmd::SetMathParam,
777        chr: 46,
778        group: Group::Luatex,
779    },
780    Primitive {
781        name: "Umathsubtopmax",
782        cmd: Cmd::SetMathParam,
783        chr: 42,
784        group: Group::Luatex,
785    },
786    Primitive {
787        name: "Umathsupbottommin",
788        cmd: Cmd::SetMathParam,
789        chr: 44,
790        group: Group::Luatex,
791    },
792    Primitive {
793        name: "Umathsupshiftdrop",
794        cmd: Cmd::SetMathParam,
795        chr: 39,
796        group: Group::Luatex,
797    },
798    Primitive {
799        name: "Umathsupshiftup",
800        cmd: Cmd::SetMathParam,
801        chr: 43,
802        group: Group::Luatex,
803    },
804    Primitive {
805        name: "Umathsupsubbottommax",
806        cmd: Cmd::SetMathParam,
807        chr: 45,
808        group: Group::Luatex,
809    },
810    Primitive {
811        name: "Umathunderbarkern",
812        cmd: Cmd::SetMathParam,
813        chr: 6,
814        group: Group::Luatex,
815    },
816    Primitive {
817        name: "Umathunderbarrule",
818        cmd: Cmd::SetMathParam,
819        chr: 7,
820        group: Group::Luatex,
821    },
822    Primitive {
823        name: "Umathunderbarvgap",
824        cmd: Cmd::SetMathParam,
825        chr: 8,
826        group: Group::Luatex,
827    },
828    Primitive {
829        name: "Umathunderdelimiterbgap",
830        cmd: Cmd::SetMathParam,
831        chr: 35,
832        group: Group::Luatex,
833    },
834    Primitive {
835        name: "Umathunderdelimitervgap",
836        cmd: Cmd::SetMathParam,
837        chr: 34,
838        group: Group::Luatex,
839    },
840    Primitive {
841        name: "Umiddle",
842        cmd: Cmd::LeftRight,
843        chr: 12,
844        group: Group::Tex,
845    },
846    Primitive {
847        name: "Unosubscript",
848        cmd: Cmd::NoSuperSubScript,
849        chr: 8,
850        group: Group::Luatex,
851    },
852    Primitive {
853        name: "Unosuperscript",
854        cmd: Cmd::NoSuperSubScript,
855        chr: 7,
856        group: Group::Luatex,
857    },
858    Primitive {
859        name: "Uoverdelimiter",
860        cmd: Cmd::Radical,
861        chr: 4,
862        group: Group::Luatex,
863    },
864    Primitive {
865        name: "Uradical",
866        cmd: Cmd::Radical,
867        chr: 1,
868        group: Group::Luatex,
869    },
870    Primitive {
871        name: "Uright",
872        cmd: Cmd::LeftRight,
873        chr: 13,
874        group: Group::Tex,
875    },
876    Primitive {
877        name: "Uroot",
878        cmd: Cmd::Radical,
879        chr: 2,
880        group: Group::Luatex,
881    },
882    Primitive {
883        name: "Uskewed",
884        cmd: Cmd::Above,
885        chr: 3,
886        group: Group::Luatex,
887    },
888    Primitive {
889        name: "Uskewedwithdelims",
890        cmd: Cmd::Above,
891        chr: 7,
892        group: Group::Luatex,
893    },
894    Primitive {
895        name: "Ustack",
896        cmd: Cmd::MathChoice,
897        chr: 1,
898        group: Group::Luatex,
899    },
900    Primitive {
901        name: "Ustartdisplaymath",
902        cmd: Cmd::MathShiftCs,
903        chr: 0,
904        group: Group::Luatex,
905    },
906    Primitive {
907        name: "Ustartmath",
908        cmd: Cmd::MathShiftCs,
909        chr: 2,
910        group: Group::Luatex,
911    },
912    Primitive {
913        name: "Ustopdisplaymath",
914        cmd: Cmd::MathShiftCs,
915        chr: 1,
916        group: Group::Luatex,
917    },
918    Primitive {
919        name: "Ustopmath",
920        cmd: Cmd::MathShiftCs,
921        chr: 3,
922        group: Group::Luatex,
923    },
924    Primitive {
925        name: "Usubscript",
926        cmd: Cmd::SuperSubScript,
927        chr: 8,
928        group: Group::Luatex,
929    },
930    Primitive {
931        name: "Usuperscript",
932        cmd: Cmd::SuperSubScript,
933        chr: 7,
934        group: Group::Luatex,
935    },
936    Primitive {
937        name: "Uunderdelimiter",
938        cmd: Cmd::Radical,
939        chr: 3,
940        group: Group::Luatex,
941    },
942    Primitive {
943        name: "Uvextensible",
944        cmd: Cmd::LeftRight,
945        chr: 14,
946        group: Group::Luatex,
947    },
948    Primitive {
949        name: "above",
950        cmd: Cmd::Above,
951        chr: 0,
952        group: Group::Tex,
953    },
954    Primitive {
955        name: "abovedisplayshortskip",
956        cmd: Cmd::AssignGlue,
957        chr: 5,
958        group: Group::Tex,
959    },
960    Primitive {
961        name: "abovedisplayskip",
962        cmd: Cmd::AssignGlue,
963        chr: 3,
964        group: Group::Tex,
965    },
966    Primitive {
967        name: "abovewithdelims",
968        cmd: Cmd::Above,
969        chr: 4,
970        group: Group::Tex,
971    },
972    Primitive {
973        name: "accent",
974        cmd: Cmd::Accent,
975        chr: 0,
976        group: Group::Tex,
977    },
978    Primitive {
979        name: "adjdemerits",
980        cmd: Cmd::AssignInt,
981        chr: 16,
982        group: Group::Tex,
983    },
984    Primitive {
985        name: "adjustspacing",
986        cmd: Cmd::AssignInt,
987        chr: 68,
988        group: Group::Luatex,
989    },
990    Primitive {
991        name: "advance",
992        cmd: Cmd::Advance,
993        chr: 0,
994        group: Group::Tex,
995    },
996    Primitive {
997        name: "afterassignment",
998        cmd: Cmd::AfterAssignment,
999        chr: 0,
1000        group: Group::Tex,
1001    },
1002    Primitive {
1003        name: "aftergroup",
1004        cmd: Cmd::AfterGroup,
1005        chr: 0,
1006        group: Group::Tex,
1007    },
1008    Primitive {
1009        name: "alignmark",
1010        cmd: Cmd::MacParam,
1011        chr: 1114113,
1012        group: Group::Luatex,
1013    },
1014    Primitive {
1015        name: "aligntab",
1016        cmd: Cmd::TabMark,
1017        chr: 1114113,
1018        group: Group::Luatex,
1019    },
1020    Primitive {
1021        name: "atop",
1022        cmd: Cmd::Above,
1023        chr: 2,
1024        group: Group::Tex,
1025    },
1026    Primitive {
1027        name: "atopwithdelims",
1028        cmd: Cmd::Above,
1029        chr: 6,
1030        group: Group::Tex,
1031    },
1032    Primitive {
1033        name: "attribute",
1034        cmd: Cmd::Register,
1035        chr: 1,
1036        group: Group::Luatex,
1037    },
1038    Primitive {
1039        name: "attributedef",
1040        cmd: Cmd::ShorthandDef,
1041        chr: 4,
1042        group: Group::Luatex,
1043    },
1044    Primitive {
1045        name: "automaticdiscretionary",
1046        cmd: Cmd::Discretionary,
1047        chr: 2,
1048        group: Group::Luatex,
1049    },
1050    Primitive {
1051        name: "automatichyphenmode",
1052        cmd: Cmd::AssignInt,
1053        chr: 103,
1054        group: Group::Luatex,
1055    },
1056    Primitive {
1057        name: "automatichyphenpenalty",
1058        cmd: Cmd::AssignInt,
1059        chr: 101,
1060        group: Group::Luatex,
1061    },
1062    Primitive {
1063        name: "badness",
1064        cmd: Cmd::LastItem,
1065        chr: 6,
1066        group: Group::Tex,
1067    },
1068    Primitive {
1069        name: "baselineskip",
1070        cmd: Cmd::AssignGlue,
1071        chr: 1,
1072        group: Group::Tex,
1073    },
1074    Primitive {
1075        name: "batchmode",
1076        cmd: Cmd::SetInteraction,
1077        chr: 0,
1078        group: Group::Tex,
1079    },
1080    Primitive {
1081        name: "begincsname",
1082        cmd: Cmd::CsName,
1083        chr: 2,
1084        group: Group::Luatex,
1085    },
1086    Primitive {
1087        name: "begingroup",
1088        cmd: Cmd::BeginGroup,
1089        chr: 0,
1090        group: Group::Tex,
1091    },
1092    Primitive {
1093        name: "belowdisplayshortskip",
1094        cmd: Cmd::AssignGlue,
1095        chr: 6,
1096        group: Group::Tex,
1097    },
1098    Primitive {
1099        name: "belowdisplayskip",
1100        cmd: Cmd::AssignGlue,
1101        chr: 4,
1102        group: Group::Tex,
1103    },
1104    Primitive {
1105        name: "binoppenalty",
1106        cmd: Cmd::AssignInt,
1107        chr: 9,
1108        group: Group::Tex,
1109    },
1110    Primitive {
1111        name: "bodydir",
1112        cmd: Cmd::AssignDir,
1113        chr: 1,
1114        group: Group::Luatex,
1115    },
1116    Primitive {
1117        name: "bodydirection",
1118        cmd: Cmd::AssignDirection,
1119        chr: 1,
1120        group: Group::Luatex,
1121    },
1122    Primitive {
1123        name: "botmark",
1124        cmd: Cmd::TopBotMark,
1125        chr: 2,
1126        group: Group::Tex,
1127    },
1128    Primitive {
1129        name: "botmarks",
1130        cmd: Cmd::TopBotMark,
1131        chr: 7,
1132        group: Group::Etex,
1133    },
1134    Primitive {
1135        name: "boundary",
1136        cmd: Cmd::Boundary,
1137        chr: 1,
1138        group: Group::Tex,
1139    },
1140    Primitive {
1141        name: "box",
1142        cmd: Cmd::MakeBox,
1143        chr: 0,
1144        group: Group::Tex,
1145    },
1146    Primitive {
1147        name: "boxdir",
1148        cmd: Cmd::AssignBoxDir,
1149        chr: 0,
1150        group: Group::Luatex,
1151    },
1152    Primitive {
1153        name: "boxdirection",
1154        cmd: Cmd::AssignBoxDirection,
1155        chr: 0,
1156        group: Group::Luatex,
1157    },
1158    Primitive {
1159        name: "boxmaxdepth",
1160        cmd: Cmd::AssignDimen,
1161        chr: 7,
1162        group: Group::Tex,
1163    },
1164    Primitive {
1165        name: "breakafterdirmode",
1166        cmd: Cmd::AssignInt,
1167        chr: 105,
1168        group: Group::Luatex,
1169    },
1170    Primitive {
1171        name: "brokenpenalty",
1172        cmd: Cmd::AssignInt,
1173        chr: 8,
1174        group: Group::Tex,
1175    },
1176    Primitive {
1177        name: "catcode",
1178        cmd: Cmd::DefCharCode,
1179        chr: 0,
1180        group: Group::Tex,
1181    },
1182    Primitive {
1183        name: "catcodetable",
1184        cmd: Cmd::AssignInt,
1185        chr: 63,
1186        group: Group::Luatex,
1187    },
1188    Primitive {
1189        name: "char",
1190        cmd: Cmd::CharNum,
1191        chr: 0,
1192        group: Group::Tex,
1193    },
1194    Primitive {
1195        name: "chardef",
1196        cmd: Cmd::ShorthandDef,
1197        chr: 0,
1198        group: Group::Tex,
1199    },
1200    Primitive {
1201        name: "cleaders",
1202        cmd: Cmd::LeaderShip,
1203        chr: 101,
1204        group: Group::Tex,
1205    },
1206    Primitive {
1207        name: "clearmarks",
1208        cmd: Cmd::Mark,
1209        chr: 1,
1210        group: Group::Luatex,
1211    },
1212    Primitive {
1213        name: "closein",
1214        cmd: Cmd::InStream,
1215        chr: 0,
1216        group: Group::Tex,
1217    },
1218    Primitive {
1219        name: "closeout",
1220        cmd: Cmd::Extension,
1221        chr: 2,
1222        group: Group::Tex,
1223    },
1224    Primitive {
1225        name: "clubpenalties",
1226        cmd: Cmd::SetEtexShape,
1227        chr: 1,
1228        group: Group::Etex,
1229    },
1230    Primitive {
1231        name: "clubpenalty",
1232        cmd: Cmd::AssignInt,
1233        chr: 5,
1234        group: Group::Tex,
1235    },
1236    Primitive {
1237        name: "compoundhyphenmode",
1238        cmd: Cmd::AssignInt,
1239        chr: 104,
1240        group: Group::Luatex,
1241    },
1242    Primitive {
1243        name: "copy",
1244        cmd: Cmd::MakeBox,
1245        chr: 1,
1246        group: Group::Tex,
1247    },
1248    Primitive {
1249        name: "copyfont",
1250        cmd: Cmd::CopyFont,
1251        chr: 0,
1252        group: Group::Luatex,
1253    },
1254    Primitive {
1255        name: "count",
1256        cmd: Cmd::Register,
1257        chr: 0,
1258        group: Group::Tex,
1259    },
1260    Primitive {
1261        name: "countdef",
1262        cmd: Cmd::ShorthandDef,
1263        chr: 3,
1264        group: Group::Tex,
1265    },
1266    Primitive {
1267        name: "cr",
1268        cmd: Cmd::CarRet,
1269        chr: 1114115,
1270        group: Group::Tex,
1271    },
1272    Primitive {
1273        name: "crampeddisplaystyle",
1274        cmd: Cmd::MathStyle,
1275        chr: 1,
1276        group: Group::Luatex,
1277    },
1278    Primitive {
1279        name: "crampedscriptscriptstyle",
1280        cmd: Cmd::MathStyle,
1281        chr: 7,
1282        group: Group::Luatex,
1283    },
1284    Primitive {
1285        name: "crampedscriptstyle",
1286        cmd: Cmd::MathStyle,
1287        chr: 5,
1288        group: Group::Luatex,
1289    },
1290    Primitive {
1291        name: "crampedtextstyle",
1292        cmd: Cmd::MathStyle,
1293        chr: 3,
1294        group: Group::Luatex,
1295    },
1296    Primitive {
1297        name: "crcr",
1298        cmd: Cmd::CarRet,
1299        chr: 1114116,
1300        group: Group::Tex,
1301    },
1302    Primitive {
1303        name: "csname",
1304        cmd: Cmd::CsName,
1305        chr: 0,
1306        group: Group::Tex,
1307    },
1308    Primitive {
1309        name: "csstring",
1310        cmd: Cmd::Convert,
1311        chr: 9,
1312        group: Group::Luatex,
1313    },
1314    Primitive {
1315        name: "currentgrouplevel",
1316        cmd: Cmd::LastItem,
1317        chr: 16,
1318        group: Group::Etex,
1319    },
1320    Primitive {
1321        name: "currentgrouptype",
1322        cmd: Cmd::LastItem,
1323        chr: 17,
1324        group: Group::Etex,
1325    },
1326    Primitive {
1327        name: "currentifbranch",
1328        cmd: Cmd::LastItem,
1329        chr: 20,
1330        group: Group::Etex,
1331    },
1332    Primitive {
1333        name: "currentiflevel",
1334        cmd: Cmd::LastItem,
1335        chr: 18,
1336        group: Group::Etex,
1337    },
1338    Primitive {
1339        name: "currentiftype",
1340        cmd: Cmd::LastItem,
1341        chr: 19,
1342        group: Group::Etex,
1343    },
1344    Primitive {
1345        name: "day",
1346        cmd: Cmd::AssignInt,
1347        chr: 21,
1348        group: Group::Tex,
1349    },
1350    Primitive {
1351        name: "deadcycles",
1352        cmd: Cmd::SetPageInt,
1353        chr: 0,
1354        group: Group::Tex,
1355    },
1356    Primitive {
1357        name: "def",
1358        cmd: Cmd::Def,
1359        chr: 0,
1360        group: Group::Tex,
1361    },
1362    Primitive {
1363        name: "defaulthyphenchar",
1364        cmd: Cmd::AssignInt,
1365        chr: 46,
1366        group: Group::Tex,
1367    },
1368    Primitive {
1369        name: "defaultskewchar",
1370        cmd: Cmd::AssignInt,
1371        chr: 47,
1372        group: Group::Tex,
1373    },
1374    Primitive {
1375        name: "deferred",
1376        cmd: Cmd::Extension,
1377        chr: 5,
1378        group: Group::Tex,
1379    },
1380    Primitive {
1381        name: "delcode",
1382        cmd: Cmd::DefDelCode,
1383        chr: 0,
1384        group: Group::Tex,
1385    },
1386    Primitive {
1387        name: "delimiter",
1388        cmd: Cmd::DelimNum,
1389        chr: 0,
1390        group: Group::Tex,
1391    },
1392    Primitive {
1393        name: "delimiterfactor",
1394        cmd: Cmd::AssignInt,
1395        chr: 18,
1396        group: Group::Tex,
1397    },
1398    Primitive {
1399        name: "delimitershortfall",
1400        cmd: Cmd::AssignDimen,
1401        chr: 10,
1402        group: Group::Tex,
1403    },
1404    Primitive {
1405        name: "detokenize",
1406        cmd: Cmd::The,
1407        chr: 5,
1408        group: Group::Etex,
1409    },
1410    Primitive {
1411        name: "dimen",
1412        cmd: Cmd::Register,
1413        chr: 2,
1414        group: Group::Tex,
1415    },
1416    Primitive {
1417        name: "dimendef",
1418        cmd: Cmd::ShorthandDef,
1419        chr: 5,
1420        group: Group::Tex,
1421    },
1422    Primitive {
1423        name: "dimexpr",
1424        cmd: Cmd::LastItem,
1425        chr: 38,
1426        group: Group::Etex,
1427    },
1428    Primitive {
1429        name: "directlua",
1430        cmd: Cmd::Convert,
1431        chr: 1,
1432        group: Group::Core,
1433    },
1434    Primitive {
1435        name: "discretionary",
1436        cmd: Cmd::Discretionary,
1437        chr: 0,
1438        group: Group::Tex,
1439    },
1440    Primitive {
1441        name: "discretionaryligaturemode",
1442        cmd: Cmd::AssignInt,
1443        chr: 120,
1444        group: Group::Luatex,
1445    },
1446    Primitive {
1447        name: "displayindent",
1448        cmd: Cmd::AssignDimen,
1449        chr: 15,
1450        group: Group::Tex,
1451    },
1452    Primitive {
1453        name: "displaylimits",
1454        cmd: Cmd::LimitSwitch,
1455        chr: 1,
1456        group: Group::Tex,
1457    },
1458    Primitive {
1459        name: "displaystyle",
1460        cmd: Cmd::MathStyle,
1461        chr: 0,
1462        group: Group::Tex,
1463    },
1464    Primitive {
1465        name: "displaywidowpenalties",
1466        cmd: Cmd::SetEtexShape,
1467        chr: 3,
1468        group: Group::Etex,
1469    },
1470    Primitive {
1471        name: "displaywidowpenalty",
1472        cmd: Cmd::AssignInt,
1473        chr: 7,
1474        group: Group::Tex,
1475    },
1476    Primitive {
1477        name: "displaywidth",
1478        cmd: Cmd::AssignDimen,
1479        chr: 14,
1480        group: Group::Tex,
1481    },
1482    Primitive {
1483        name: "divide",
1484        cmd: Cmd::Divide,
1485        chr: 0,
1486        group: Group::Tex,
1487    },
1488    Primitive {
1489        name: "doublehyphendemerits",
1490        cmd: Cmd::AssignInt,
1491        chr: 14,
1492        group: Group::Tex,
1493    },
1494    Primitive {
1495        name: "dp",
1496        cmd: Cmd::SetBoxDimen,
1497        chr: 3,
1498        group: Group::Tex,
1499    },
1500    Primitive {
1501        name: "draftmode",
1502        cmd: Cmd::AssignInt,
1503        chr: 71,
1504        group: Group::Luatex,
1505    },
1506    Primitive {
1507        name: "dump",
1508        cmd: Cmd::Stop,
1509        chr: 1,
1510        group: Group::Tex,
1511    },
1512    Primitive {
1513        name: "dviextension",
1514        cmd: Cmd::Extension,
1515        chr: 12,
1516        group: Group::Luatex,
1517    },
1518    Primitive {
1519        name: "dvifeedback",
1520        cmd: Cmd::Feedback,
1521        chr: 31,
1522        group: Group::Luatex,
1523    },
1524    Primitive {
1525        name: "dvivariable",
1526        cmd: Cmd::Variable,
1527        chr: 33,
1528        group: Group::Luatex,
1529    },
1530    Primitive {
1531        name: "eTeXVersion",
1532        cmd: Cmd::Convert,
1533        chr: 28,
1534        group: Group::Etex,
1535    },
1536    Primitive {
1537        name: "eTeXglueshrinkorder",
1538        cmd: Cmd::LastItem,
1539        chr: 24,
1540        group: Group::Luatex,
1541    },
1542    Primitive {
1543        name: "eTeXgluestretchorder",
1544        cmd: Cmd::LastItem,
1545        chr: 23,
1546        group: Group::Luatex,
1547    },
1548    Primitive {
1549        name: "eTeXminorversion",
1550        cmd: Cmd::LastItem,
1551        chr: 14,
1552        group: Group::Etex,
1553    },
1554    Primitive {
1555        name: "eTeXrevision",
1556        cmd: Cmd::Convert,
1557        chr: 29,
1558        group: Group::Etex,
1559    },
1560    Primitive {
1561        name: "eTeXversion",
1562        cmd: Cmd::LastItem,
1563        chr: 15,
1564        group: Group::Etex,
1565    },
1566    Primitive {
1567        name: "edef",
1568        cmd: Cmd::Def,
1569        chr: 2,
1570        group: Group::Tex,
1571    },
1572    Primitive {
1573        name: "efcode",
1574        cmd: Cmd::AssignFontInt,
1575        chr: 4,
1576        group: Group::Luatex,
1577    },
1578    Primitive {
1579        name: "else",
1580        cmd: Cmd::FiOrElse,
1581        chr: 3,
1582        group: Group::Tex,
1583    },
1584    Primitive {
1585        name: "emergencystretch",
1586        cmd: Cmd::AssignDimen,
1587        chr: 20,
1588        group: Group::Tex,
1589    },
1590    Primitive {
1591        name: "end",
1592        cmd: Cmd::Stop,
1593        chr: 0,
1594        group: Group::Tex,
1595    },
1596    Primitive {
1597        name: "endcsname",
1598        cmd: Cmd::EndCsName,
1599        chr: 0,
1600        group: Group::Tex,
1601    },
1602    Primitive {
1603        name: "endgroup",
1604        cmd: Cmd::EndGroup,
1605        chr: 0,
1606        group: Group::Tex,
1607    },
1608    Primitive {
1609        name: "endinput",
1610        cmd: Cmd::Input,
1611        chr: 1,
1612        group: Group::Tex,
1613    },
1614    Primitive {
1615        name: "endlinechar",
1616        cmd: Cmd::AssignInt,
1617        chr: 48,
1618        group: Group::Tex,
1619    },
1620    Primitive {
1621        name: "endlocalcontrol",
1622        cmd: Cmd::Extension,
1623        chr: 11,
1624        group: Group::Luatex,
1625    },
1626    Primitive {
1627        name: "eqno",
1628        cmd: Cmd::EqNo,
1629        chr: 0,
1630        group: Group::Tex,
1631    },
1632    Primitive {
1633        name: "errhelp",
1634        cmd: Cmd::AssignToks,
1635        chr: 8,
1636        group: Group::Tex,
1637    },
1638    Primitive {
1639        name: "errmessage",
1640        cmd: Cmd::Message,
1641        chr: 1,
1642        group: Group::Tex,
1643    },
1644    Primitive {
1645        name: "errorcontextlines",
1646        cmd: Cmd::AssignInt,
1647        chr: 54,
1648        group: Group::Tex,
1649    },
1650    Primitive {
1651        name: "errorstopmode",
1652        cmd: Cmd::SetInteraction,
1653        chr: 3,
1654        group: Group::Tex,
1655    },
1656    Primitive {
1657        name: "escapechar",
1658        cmd: Cmd::AssignInt,
1659        chr: 45,
1660        group: Group::Tex,
1661    },
1662    Primitive {
1663        name: "etoksapp",
1664        cmd: Cmd::Combinetoks,
1665        chr: 1,
1666        group: Group::Luatex,
1667    },
1668    Primitive {
1669        name: "etokspre",
1670        cmd: Cmd::Combinetoks,
1671        chr: 3,
1672        group: Group::Luatex,
1673    },
1674    Primitive {
1675        name: "everycr",
1676        cmd: Cmd::AssignToks,
1677        chr: 7,
1678        group: Group::Tex,
1679    },
1680    Primitive {
1681        name: "everydisplay",
1682        cmd: Cmd::AssignToks,
1683        chr: 3,
1684        group: Group::Tex,
1685    },
1686    Primitive {
1687        name: "everyeof",
1688        cmd: Cmd::AssignToks,
1689        chr: 9,
1690        group: Group::Etex,
1691    },
1692    Primitive {
1693        name: "everyhbox",
1694        cmd: Cmd::AssignToks,
1695        chr: 4,
1696        group: Group::Tex,
1697    },
1698    Primitive {
1699        name: "everyjob",
1700        cmd: Cmd::AssignToks,
1701        chr: 6,
1702        group: Group::Tex,
1703    },
1704    Primitive {
1705        name: "everymath",
1706        cmd: Cmd::AssignToks,
1707        chr: 2,
1708        group: Group::Tex,
1709    },
1710    Primitive {
1711        name: "everypar",
1712        cmd: Cmd::AssignToks,
1713        chr: 1,
1714        group: Group::Tex,
1715    },
1716    Primitive {
1717        name: "everyvbox",
1718        cmd: Cmd::AssignToks,
1719        chr: 5,
1720        group: Group::Tex,
1721    },
1722    Primitive {
1723        name: "exceptionpenalty",
1724        cmd: Cmd::AssignInt,
1725        chr: 106,
1726        group: Group::Luatex,
1727    },
1728    Primitive {
1729        name: "exhyphenchar",
1730        cmd: Cmd::AssignInt,
1731        chr: 66,
1732        group: Group::Tex,
1733    },
1734    Primitive {
1735        name: "exhyphenpenalty",
1736        cmd: Cmd::AssignInt,
1737        chr: 4,
1738        group: Group::Tex,
1739    },
1740    Primitive {
1741        name: "expandafter",
1742        cmd: Cmd::ExpandAfter,
1743        chr: 0,
1744        group: Group::Tex,
1745    },
1746    Primitive {
1747        name: "expanded",
1748        cmd: Cmd::Convert,
1749        chr: 4,
1750        group: Group::Luatex,
1751    },
1752    Primitive {
1753        name: "expandglyphsinfont",
1754        cmd: Cmd::Normal,
1755        chr: 6,
1756        group: Group::Luatex,
1757    },
1758    Primitive {
1759        name: "explicitdiscretionary",
1760        cmd: Cmd::Discretionary,
1761        chr: 1,
1762        group: Group::Luatex,
1763    },
1764    Primitive {
1765        name: "explicithyphenpenalty",
1766        cmd: Cmd::AssignInt,
1767        chr: 102,
1768        group: Group::Luatex,
1769    },
1770    Primitive {
1771        name: "fam",
1772        cmd: Cmd::AssignInt,
1773        chr: 44,
1774        group: Group::Tex,
1775    },
1776    Primitive {
1777        name: "fi",
1778        cmd: Cmd::FiOrElse,
1779        chr: 2,
1780        group: Group::Tex,
1781    },
1782    Primitive {
1783        name: "finalhyphendemerits",
1784        cmd: Cmd::AssignInt,
1785        chr: 15,
1786        group: Group::Tex,
1787    },
1788    Primitive {
1789        name: "firstmark",
1790        cmd: Cmd::TopBotMark,
1791        chr: 1,
1792        group: Group::Tex,
1793    },
1794    Primitive {
1795        name: "firstmarks",
1796        cmd: Cmd::TopBotMark,
1797        chr: 6,
1798        group: Group::Etex,
1799    },
1800    Primitive {
1801        name: "firstvalidlanguage",
1802        cmd: Cmd::AssignInt,
1803        chr: 96,
1804        group: Group::Tex,
1805    },
1806    Primitive {
1807        name: "fixupboxesmode",
1808        cmd: Cmd::AssignInt,
1809        chr: 117,
1810        group: Group::Luatex,
1811    },
1812    Primitive {
1813        name: "floatingpenalty",
1814        cmd: Cmd::AssignInt,
1815        chr: 42,
1816        group: Group::Tex,
1817    },
1818    Primitive {
1819        name: "font",
1820        cmd: Cmd::DefFont,
1821        chr: 0,
1822        group: Group::Tex,
1823    },
1824    Primitive {
1825        name: "fontchardp",
1826        cmd: Cmd::LastItem,
1827        chr: 27,
1828        group: Group::Etex,
1829    },
1830    Primitive {
1831        name: "fontcharht",
1832        cmd: Cmd::LastItem,
1833        chr: 26,
1834        group: Group::Etex,
1835    },
1836    Primitive {
1837        name: "fontcharic",
1838        cmd: Cmd::LastItem,
1839        chr: 28,
1840        group: Group::Etex,
1841    },
1842    Primitive {
1843        name: "fontcharwd",
1844        cmd: Cmd::LastItem,
1845        chr: 25,
1846        group: Group::Etex,
1847    },
1848    Primitive {
1849        name: "fontdimen",
1850        cmd: Cmd::AssignFontDimen,
1851        chr: 0,
1852        group: Group::Tex,
1853    },
1854    Primitive {
1855        name: "fontid",
1856        cmd: Cmd::Convert,
1857        chr: 14,
1858        group: Group::Luatex,
1859    },
1860    Primitive {
1861        name: "fontname",
1862        cmd: Cmd::Convert,
1863        chr: 15,
1864        group: Group::Tex,
1865    },
1866    Primitive {
1867        name: "formatname",
1868        cmd: Cmd::Convert,
1869        chr: 25,
1870        group: Group::Luatex,
1871    },
1872    Primitive {
1873        name: "futurelet",
1874        cmd: Cmd::Let,
1875        chr: 2,
1876        group: Group::Tex,
1877    },
1878    Primitive {
1879        name: "gdef",
1880        cmd: Cmd::Def,
1881        chr: 1,
1882        group: Group::Tex,
1883    },
1884    Primitive {
1885        name: "gleaders",
1886        cmd: Cmd::LeaderShip,
1887        chr: 103,
1888        group: Group::Luatex,
1889    },
1890    Primitive {
1891        name: "glet",
1892        cmd: Cmd::Let,
1893        chr: 0,
1894        group: Group::Tex,
1895    },
1896    Primitive {
1897        name: "global",
1898        cmd: Cmd::Prefix,
1899        chr: 4,
1900        group: Group::Tex,
1901    },
1902    Primitive {
1903        name: "globaldefs",
1904        cmd: Cmd::AssignInt,
1905        chr: 43,
1906        group: Group::Tex,
1907    },
1908    Primitive {
1909        name: "glueexpr",
1910        cmd: Cmd::LastItem,
1911        chr: 39,
1912        group: Group::Etex,
1913    },
1914    Primitive {
1915        name: "glueshrink",
1916        cmd: Cmd::LastItem,
1917        chr: 33,
1918        group: Group::Etex,
1919    },
1920    Primitive {
1921        name: "glueshrinkorder",
1922        cmd: Cmd::LastItem,
1923        chr: 22,
1924        group: Group::Etex,
1925    },
1926    Primitive {
1927        name: "gluestretch",
1928        cmd: Cmd::LastItem,
1929        chr: 32,
1930        group: Group::Etex,
1931    },
1932    Primitive {
1933        name: "gluestretchorder",
1934        cmd: Cmd::LastItem,
1935        chr: 21,
1936        group: Group::Etex,
1937    },
1938    Primitive {
1939        name: "gluetomu",
1940        cmd: Cmd::LastItem,
1941        chr: 35,
1942        group: Group::Etex,
1943    },
1944    Primitive {
1945        name: "glyphdimensionsmode",
1946        cmd: Cmd::AssignInt,
1947        chr: 118,
1948        group: Group::Luatex,
1949    },
1950    Primitive {
1951        name: "gtoksapp",
1952        cmd: Cmd::Combinetoks,
1953        chr: 4,
1954        group: Group::Luatex,
1955    },
1956    Primitive {
1957        name: "gtokspre",
1958        cmd: Cmd::Combinetoks,
1959        chr: 6,
1960        group: Group::Luatex,
1961    },
1962    Primitive {
1963        name: "halign",
1964        cmd: Cmd::Halign,
1965        chr: 0,
1966        group: Group::Tex,
1967    },
1968    Primitive {
1969        name: "hangafter",
1970        cmd: Cmd::AssignInt,
1971        chr: 41,
1972        group: Group::Tex,
1973    },
1974    Primitive {
1975        name: "hangindent",
1976        cmd: Cmd::AssignDimen,
1977        chr: 17,
1978        group: Group::Tex,
1979    },
1980    Primitive {
1981        name: "hbadness",
1982        cmd: Cmd::AssignInt,
1983        chr: 26,
1984        group: Group::Tex,
1985    },
1986    Primitive {
1987        name: "hbox",
1988        cmd: Cmd::MakeBox,
1989        chr: 141,
1990        group: Group::Tex,
1991    },
1992    Primitive {
1993        name: "hfil",
1994        cmd: Cmd::Hskip,
1995        chr: 0,
1996        group: Group::Tex,
1997    },
1998    Primitive {
1999        name: "hfill",
2000        cmd: Cmd::Hskip,
2001        chr: 1,
2002        group: Group::Tex,
2003    },
2004    Primitive {
2005        name: "hfilneg",
2006        cmd: Cmd::Hskip,
2007        chr: 3,
2008        group: Group::Tex,
2009    },
2010    Primitive {
2011        name: "hfuzz",
2012        cmd: Cmd::AssignDimen,
2013        chr: 8,
2014        group: Group::Tex,
2015    },
2016    Primitive {
2017        name: "hjcode",
2018        cmd: Cmd::HyphData,
2019        chr: 7,
2020        group: Group::Luatex,
2021    },
2022    Primitive {
2023        name: "hoffset",
2024        cmd: Cmd::AssignDimen,
2025        chr: 18,
2026        group: Group::Tex,
2027    },
2028    Primitive {
2029        name: "holdinginserts",
2030        cmd: Cmd::AssignInt,
2031        chr: 53,
2032        group: Group::Tex,
2033    },
2034    Primitive {
2035        name: "hpack",
2036        cmd: Cmd::MakeBox,
2037        chr: 6,
2038        group: Group::Tex,
2039    },
2040    Primitive {
2041        name: "hrule",
2042        cmd: Cmd::Hrule,
2043        chr: 0,
2044        group: Group::Tex,
2045    },
2046    Primitive {
2047        name: "hsize",
2048        cmd: Cmd::AssignDimen,
2049        chr: 3,
2050        group: Group::Tex,
2051    },
2052    Primitive {
2053        name: "hskip",
2054        cmd: Cmd::Hskip,
2055        chr: 4,
2056        group: Group::Tex,
2057    },
2058    Primitive {
2059        name: "hss",
2060        cmd: Cmd::Hskip,
2061        chr: 2,
2062        group: Group::Tex,
2063    },
2064    Primitive {
2065        name: "ht",
2066        cmd: Cmd::SetBoxDimen,
2067        chr: 4,
2068        group: Group::Tex,
2069    },
2070    Primitive {
2071        name: "hyphenation",
2072        cmd: Cmd::HyphData,
2073        chr: 0,
2074        group: Group::Tex,
2075    },
2076    Primitive {
2077        name: "hyphenationbounds",
2078        cmd: Cmd::AssignInt,
2079        chr: 97,
2080        group: Group::Luatex,
2081    },
2082    Primitive {
2083        name: "hyphenationmin",
2084        cmd: Cmd::HyphData,
2085        chr: 6,
2086        group: Group::Luatex,
2087    },
2088    Primitive {
2089        name: "hyphenchar",
2090        cmd: Cmd::AssignFontInt,
2091        chr: 0,
2092        group: Group::Tex,
2093    },
2094    Primitive {
2095        name: "hyphenpenalty",
2096        cmd: Cmd::AssignInt,
2097        chr: 3,
2098        group: Group::Tex,
2099    },
2100    Primitive {
2101        name: "hyphenpenaltymode",
2102        cmd: Cmd::AssignInt,
2103        chr: 100,
2104        group: Group::Luatex,
2105    },
2106    Primitive {
2107        name: "if",
2108        cmd: Cmd::IfTest,
2109        chr: 0,
2110        group: Group::Tex,
2111    },
2112    Primitive {
2113        name: "ifabsdim",
2114        cmd: Cmd::IfTest,
2115        chr: 23,
2116        group: Group::Luatex,
2117    },
2118    Primitive {
2119        name: "ifabsnum",
2120        cmd: Cmd::IfTest,
2121        chr: 22,
2122        group: Group::Luatex,
2123    },
2124    Primitive {
2125        name: "ifcase",
2126        cmd: Cmd::IfTest,
2127        chr: 16,
2128        group: Group::Tex,
2129    },
2130    Primitive {
2131        name: "ifcat",
2132        cmd: Cmd::IfTest,
2133        chr: 1,
2134        group: Group::Tex,
2135    },
2136    Primitive {
2137        name: "ifcondition",
2138        cmd: Cmd::IfTest,
2139        chr: 24,
2140        group: Group::Luatex,
2141    },
2142    Primitive {
2143        name: "ifcsname",
2144        cmd: Cmd::IfTest,
2145        chr: 18,
2146        group: Group::Etex,
2147    },
2148    Primitive {
2149        name: "ifdefined",
2150        cmd: Cmd::IfTest,
2151        chr: 17,
2152        group: Group::Etex,
2153    },
2154    Primitive {
2155        name: "ifdim",
2156        cmd: Cmd::IfTest,
2157        chr: 3,
2158        group: Group::Tex,
2159    },
2160    Primitive {
2161        name: "ifeof",
2162        cmd: Cmd::IfTest,
2163        chr: 13,
2164        group: Group::Tex,
2165    },
2166    Primitive {
2167        name: "iffalse",
2168        cmd: Cmd::IfTest,
2169        chr: 15,
2170        group: Group::Tex,
2171    },
2172    Primitive {
2173        name: "iffontchar",
2174        cmd: Cmd::IfTest,
2175        chr: 19,
2176        group: Group::Etex,
2177    },
2178    Primitive {
2179        name: "ifhbox",
2180        cmd: Cmd::IfTest,
2181        chr: 10,
2182        group: Group::Tex,
2183    },
2184    Primitive {
2185        name: "ifhmode",
2186        cmd: Cmd::IfTest,
2187        chr: 6,
2188        group: Group::Tex,
2189    },
2190    Primitive {
2191        name: "ifincsname",
2192        cmd: Cmd::IfTest,
2193        chr: 20,
2194        group: Group::Luatex,
2195    },
2196    Primitive {
2197        name: "ifinner",
2198        cmd: Cmd::IfTest,
2199        chr: 8,
2200        group: Group::Tex,
2201    },
2202    Primitive {
2203        name: "ifmmode",
2204        cmd: Cmd::IfTest,
2205        chr: 7,
2206        group: Group::Tex,
2207    },
2208    Primitive {
2209        name: "ifnum",
2210        cmd: Cmd::IfTest,
2211        chr: 2,
2212        group: Group::Tex,
2213    },
2214    Primitive {
2215        name: "ifodd",
2216        cmd: Cmd::IfTest,
2217        chr: 4,
2218        group: Group::Tex,
2219    },
2220    Primitive {
2221        name: "ifprimitive",
2222        cmd: Cmd::IfTest,
2223        chr: 21,
2224        group: Group::Luatex,
2225    },
2226    Primitive {
2227        name: "iftrue",
2228        cmd: Cmd::IfTest,
2229        chr: 14,
2230        group: Group::Tex,
2231    },
2232    Primitive {
2233        name: "ifvbox",
2234        cmd: Cmd::IfTest,
2235        chr: 11,
2236        group: Group::Tex,
2237    },
2238    Primitive {
2239        name: "ifvmode",
2240        cmd: Cmd::IfTest,
2241        chr: 5,
2242        group: Group::Tex,
2243    },
2244    Primitive {
2245        name: "ifvoid",
2246        cmd: Cmd::IfTest,
2247        chr: 9,
2248        group: Group::Tex,
2249    },
2250    Primitive {
2251        name: "ifx",
2252        cmd: Cmd::IfTest,
2253        chr: 12,
2254        group: Group::Tex,
2255    },
2256    Primitive {
2257        name: "ignoreligaturesinfont",
2258        cmd: Cmd::AssignFontInt,
2259        chr: 6,
2260        group: Group::Luatex,
2261    },
2262    Primitive {
2263        name: "ignoreprimitiveerror",
2264        cmd: Cmd::AssignInt,
2265        chr: 125,
2266        group: Group::Etex,
2267    },
2268    Primitive {
2269        name: "ignorespaces",
2270        cmd: Cmd::IgnoreSpaces,
2271        chr: 0,
2272        group: Group::Tex,
2273    },
2274    Primitive {
2275        name: "immediate",
2276        cmd: Cmd::Extension,
2277        chr: 4,
2278        group: Group::Tex,
2279    },
2280    Primitive {
2281        name: "immediateassigned",
2282        cmd: Cmd::Convert,
2283        chr: 6,
2284        group: Group::Luatex,
2285    },
2286    Primitive {
2287        name: "immediateassignment",
2288        cmd: Cmd::Convert,
2289        chr: 5,
2290        group: Group::Luatex,
2291    },
2292    Primitive {
2293        name: "indent",
2294        cmd: Cmd::StartPar,
2295        chr: 1,
2296        group: Group::Tex,
2297    },
2298    Primitive {
2299        name: "initcatcodetable",
2300        cmd: Cmd::Normal,
2301        chr: 1,
2302        group: Group::Luatex,
2303    },
2304    Primitive {
2305        name: "input",
2306        cmd: Cmd::Input,
2307        chr: 0,
2308        group: Group::Tex,
2309    },
2310    Primitive {
2311        name: "inputlineno",
2312        cmd: Cmd::LastItem,
2313        chr: 5,
2314        group: Group::Tex,
2315    },
2316    Primitive {
2317        name: "insert",
2318        cmd: Cmd::Insert,
2319        chr: 0,
2320        group: Group::Tex,
2321    },
2322    Primitive {
2323        name: "insertht",
2324        cmd: Cmd::Convert,
2325        chr: 23,
2326        group: Group::Luatex,
2327    },
2328    Primitive {
2329        name: "insertpenalties",
2330        cmd: Cmd::SetPageInt,
2331        chr: 1,
2332        group: Group::Tex,
2333    },
2334    Primitive {
2335        name: "interactionmode",
2336        cmd: Cmd::SetPageInt,
2337        chr: 2,
2338        group: Group::Etex,
2339    },
2340    Primitive {
2341        name: "interlinepenalties",
2342        cmd: Cmd::SetEtexShape,
2343        chr: 0,
2344        group: Group::Etex,
2345    },
2346    Primitive {
2347        name: "interlinepenalty",
2348        cmd: Cmd::AssignInt,
2349        chr: 13,
2350        group: Group::Tex,
2351    },
2352    Primitive {
2353        name: "jobname",
2354        cmd: Cmd::Convert,
2355        chr: 24,
2356        group: Group::Tex,
2357    },
2358    Primitive {
2359        name: "kern",
2360        cmd: Cmd::Kern,
2361        chr: 1,
2362        group: Group::Tex,
2363    },
2364    Primitive {
2365        name: "language",
2366        cmd: Cmd::AssignInt,
2367        chr: 50,
2368        group: Group::Tex,
2369    },
2370    Primitive {
2371        name: "lastbox",
2372        cmd: Cmd::MakeBox,
2373        chr: 2,
2374        group: Group::Tex,
2375    },
2376    Primitive {
2377        name: "lastkern",
2378        cmd: Cmd::LastItem,
2379        chr: 2,
2380        group: Group::Tex,
2381    },
2382    Primitive {
2383        name: "lastlinefit",
2384        cmd: Cmd::AssignInt,
2385        chr: 79,
2386        group: Group::Etex,
2387    },
2388    Primitive {
2389        name: "lastnamedcs",
2390        cmd: Cmd::CsName,
2391        chr: 1,
2392        group: Group::Luatex,
2393    },
2394    Primitive {
2395        name: "lastnodetype",
2396        cmd: Cmd::LastItem,
2397        chr: 4,
2398        group: Group::Etex,
2399    },
2400    Primitive {
2401        name: "lastpenalty",
2402        cmd: Cmd::LastItem,
2403        chr: 0,
2404        group: Group::Tex,
2405    },
2406    Primitive {
2407        name: "lastsavedboxresourceindex",
2408        cmd: Cmd::LastItem,
2409        chr: 7,
2410        group: Group::Luatex,
2411    },
2412    Primitive {
2413        name: "lastsavedimageresourceindex",
2414        cmd: Cmd::LastItem,
2415        chr: 8,
2416        group: Group::Luatex,
2417    },
2418    Primitive {
2419        name: "lastsavedimageresourcepages",
2420        cmd: Cmd::LastItem,
2421        chr: 9,
2422        group: Group::Luatex,
2423    },
2424    Primitive {
2425        name: "lastskip",
2426        cmd: Cmd::LastItem,
2427        chr: 3,
2428        group: Group::Tex,
2429    },
2430    Primitive {
2431        name: "lastxpos",
2432        cmd: Cmd::LastItem,
2433        chr: 10,
2434        group: Group::Luatex,
2435    },
2436    Primitive {
2437        name: "lastypos",
2438        cmd: Cmd::LastItem,
2439        chr: 11,
2440        group: Group::Luatex,
2441    },
2442    Primitive {
2443        name: "latelua",
2444        cmd: Cmd::Normal,
2445        chr: 4,
2446        group: Group::Luatex,
2447    },
2448    Primitive {
2449        name: "lateluafunction",
2450        cmd: Cmd::Normal,
2451        chr: 5,
2452        group: Group::Luatex,
2453    },
2454    Primitive {
2455        name: "lccode",
2456        cmd: Cmd::DefCharCode,
2457        chr: 1,
2458        group: Group::Tex,
2459    },
2460    Primitive {
2461        name: "leaders",
2462        cmd: Cmd::LeaderShip,
2463        chr: 100,
2464        group: Group::Tex,
2465    },
2466    Primitive {
2467        name: "left",
2468        cmd: Cmd::LeftRight,
2469        chr: 1,
2470        group: Group::Tex,
2471    },
2472    Primitive {
2473        name: "leftghost",
2474        cmd: Cmd::CharGhost,
2475        chr: 0,
2476        group: Group::Luatex,
2477    },
2478    Primitive {
2479        name: "lefthyphenmin",
2480        cmd: Cmd::AssignInt,
2481        chr: 51,
2482        group: Group::Tex,
2483    },
2484    Primitive {
2485        name: "leftmarginkern",
2486        cmd: Cmd::Convert,
2487        chr: 16,
2488        group: Group::Luatex,
2489    },
2490    Primitive {
2491        name: "leftskip",
2492        cmd: Cmd::AssignGlue,
2493        chr: 7,
2494        group: Group::Tex,
2495    },
2496    Primitive {
2497        name: "leqno",
2498        cmd: Cmd::EqNo,
2499        chr: 1,
2500        group: Group::Tex,
2501    },
2502    Primitive {
2503        name: "let",
2504        cmd: Cmd::Let,
2505        chr: 1,
2506        group: Group::Tex,
2507    },
2508    Primitive {
2509        name: "letcharcode",
2510        cmd: Cmd::Let,
2511        chr: 3,
2512        group: Group::Luatex,
2513    },
2514    Primitive {
2515        name: "letterspacefont",
2516        cmd: Cmd::LetterspaceFont,
2517        chr: 0,
2518        group: Group::Luatex,
2519    },
2520    Primitive {
2521        name: "limits",
2522        cmd: Cmd::LimitSwitch,
2523        chr: 2,
2524        group: Group::Tex,
2525    },
2526    Primitive {
2527        name: "linedir",
2528        cmd: Cmd::AssignDir,
2529        chr: 5,
2530        group: Group::Luatex,
2531    },
2532    Primitive {
2533        name: "linedirection",
2534        cmd: Cmd::AssignDirection,
2535        chr: 5,
2536        group: Group::Luatex,
2537    },
2538    Primitive {
2539        name: "linepenalty",
2540        cmd: Cmd::AssignInt,
2541        chr: 2,
2542        group: Group::Tex,
2543    },
2544    Primitive {
2545        name: "lineskip",
2546        cmd: Cmd::AssignGlue,
2547        chr: 0,
2548        group: Group::Tex,
2549    },
2550    Primitive {
2551        name: "lineskiplimit",
2552        cmd: Cmd::AssignDimen,
2553        chr: 2,
2554        group: Group::Tex,
2555    },
2556    Primitive {
2557        name: "localbrokenpenalty",
2558        cmd: Cmd::AssignInt,
2559        chr: 56,
2560        group: Group::Luatex,
2561    },
2562    Primitive {
2563        name: "localinterlinepenalty",
2564        cmd: Cmd::AssignInt,
2565        chr: 55,
2566        group: Group::Luatex,
2567    },
2568    Primitive {
2569        name: "localleftbox",
2570        cmd: Cmd::AssignLocalBox,
2571        chr: 0,
2572        group: Group::Luatex,
2573    },
2574    Primitive {
2575        name: "localrightbox",
2576        cmd: Cmd::AssignLocalBox,
2577        chr: 1,
2578        group: Group::Luatex,
2579    },
2580    Primitive {
2581        name: "long",
2582        cmd: Cmd::Prefix,
2583        chr: 1,
2584        group: Group::Tex,
2585    },
2586    Primitive {
2587        name: "looseness",
2588        cmd: Cmd::AssignInt,
2589        chr: 19,
2590        group: Group::Tex,
2591    },
2592    Primitive {
2593        name: "lower",
2594        cmd: Cmd::Vmove,
2595        chr: 0,
2596        group: Group::Tex,
2597    },
2598    Primitive {
2599        name: "lowercase",
2600        cmd: Cmd::CaseShift,
2601        chr: 333281,
2602        group: Group::Tex,
2603    },
2604    Primitive {
2605        name: "lpcode",
2606        cmd: Cmd::AssignFontInt,
2607        chr: 2,
2608        group: Group::Luatex,
2609    },
2610    Primitive {
2611        name: "luabytecode",
2612        cmd: Cmd::Convert,
2613        chr: 3,
2614        group: Group::Luatex,
2615    },
2616    Primitive {
2617        name: "luabytecodecall",
2618        cmd: Cmd::LuaBytecodeCall,
2619        chr: 0,
2620        group: Group::Luatex,
2621    },
2622    Primitive {
2623        name: "luacopyinputnodes",
2624        cmd: Cmd::AssignInt,
2625        chr: 115,
2626        group: Group::Luatex,
2627    },
2628    Primitive {
2629        name: "luadef",
2630        cmd: Cmd::DefLuaCall,
2631        chr: 0,
2632        group: Group::Luatex,
2633    },
2634    Primitive {
2635        name: "luaescapestring",
2636        cmd: Cmd::Convert,
2637        chr: 13,
2638        group: Group::Luatex,
2639    },
2640    Primitive {
2641        name: "luafunction",
2642        cmd: Cmd::Convert,
2643        chr: 2,
2644        group: Group::Luatex,
2645    },
2646    Primitive {
2647        name: "luafunctioncall",
2648        cmd: Cmd::LuaFunctionCall,
2649        chr: 0,
2650        group: Group::Luatex,
2651    },
2652    Primitive {
2653        name: "luatexbanner",
2654        cmd: Cmd::Convert,
2655        chr: 26,
2656        group: Group::Luatex,
2657    },
2658    Primitive {
2659        name: "luatexrevision",
2660        cmd: Cmd::Convert,
2661        chr: 27,
2662        group: Group::Luatex,
2663    },
2664    Primitive {
2665        name: "luatexversion",
2666        cmd: Cmd::LastItem,
2667        chr: 13,
2668        group: Group::Luatex,
2669    },
2670    Primitive {
2671        name: "mag",
2672        cmd: Cmd::AssignInt,
2673        chr: 17,
2674        group: Group::Tex,
2675    },
2676    Primitive {
2677        name: "mark",
2678        cmd: Cmd::Mark,
2679        chr: 0,
2680        group: Group::Tex,
2681    },
2682    Primitive {
2683        name: "marks",
2684        cmd: Cmd::Mark,
2685        chr: 5,
2686        group: Group::Etex,
2687    },
2688    Primitive {
2689        name: "mathaccent",
2690        cmd: Cmd::MathAccent,
2691        chr: 0,
2692        group: Group::Tex,
2693    },
2694    Primitive {
2695        name: "mathbin",
2696        cmd: Cmd::MathComp,
2697        chr: 4,
2698        group: Group::Tex,
2699    },
2700    Primitive {
2701        name: "mathchar",
2702        cmd: Cmd::MathCharNum,
2703        chr: 0,
2704        group: Group::Tex,
2705    },
2706    Primitive {
2707        name: "mathchardef",
2708        cmd: Cmd::ShorthandDef,
2709        chr: 1,
2710        group: Group::Tex,
2711    },
2712    Primitive {
2713        name: "mathchoice",
2714        cmd: Cmd::MathChoice,
2715        chr: 0,
2716        group: Group::Tex,
2717    },
2718    Primitive {
2719        name: "mathclose",
2720        cmd: Cmd::MathComp,
2721        chr: 7,
2722        group: Group::Tex,
2723    },
2724    Primitive {
2725        name: "mathcode",
2726        cmd: Cmd::DefCharCode,
2727        chr: 4,
2728        group: Group::Tex,
2729    },
2730    Primitive {
2731        name: "mathdefaultsmode",
2732        cmd: Cmd::AssignInt,
2733        chr: 119,
2734        group: Group::Luatex,
2735    },
2736    Primitive {
2737        name: "mathdelimitersmode",
2738        cmd: Cmd::AssignInt,
2739        chr: 110,
2740        group: Group::Luatex,
2741    },
2742    Primitive {
2743        name: "mathdir",
2744        cmd: Cmd::AssignDir,
2745        chr: 4,
2746        group: Group::Luatex,
2747    },
2748    Primitive {
2749        name: "mathdirection",
2750        cmd: Cmd::AssignDirection,
2751        chr: 4,
2752        group: Group::Luatex,
2753    },
2754    Primitive {
2755        name: "mathdisplayskipmode",
2756        cmd: Cmd::AssignInt,
2757        chr: 88,
2758        group: Group::Luatex,
2759    },
2760    Primitive {
2761        name: "mathemptydisplaymode",
2762        cmd: Cmd::AssignInt,
2763        chr: 126,
2764        group: Group::Luatex,
2765    },
2766    Primitive {
2767        name: "matheqdirmode",
2768        cmd: Cmd::AssignInt,
2769        chr: 123,
2770        group: Group::Luatex,
2771    },
2772    Primitive {
2773        name: "matheqnogapstep",
2774        cmd: Cmd::AssignInt,
2775        chr: 87,
2776        group: Group::Luatex,
2777    },
2778    Primitive {
2779        name: "mathflattenmode",
2780        cmd: Cmd::AssignInt,
2781        chr: 114,
2782        group: Group::Luatex,
2783    },
2784    Primitive {
2785        name: "mathinner",
2786        cmd: Cmd::MathComp,
2787        chr: 9,
2788        group: Group::Tex,
2789    },
2790    Primitive {
2791        name: "mathitalicsmode",
2792        cmd: Cmd::AssignInt,
2793        chr: 93,
2794        group: Group::Luatex,
2795    },
2796    Primitive {
2797        name: "mathnolimitsmode",
2798        cmd: Cmd::AssignInt,
2799        chr: 90,
2800        group: Group::Luatex,
2801    },
2802    Primitive {
2803        name: "mathop",
2804        cmd: Cmd::MathComp,
2805        chr: 1,
2806        group: Group::Tex,
2807    },
2808    Primitive {
2809        name: "mathopen",
2810        cmd: Cmd::MathComp,
2811        chr: 6,
2812        group: Group::Tex,
2813    },
2814    Primitive {
2815        name: "mathoption",
2816        cmd: Cmd::Option,
2817        chr: 127,
2818        group: Group::Luatex,
2819    },
2820    Primitive {
2821        name: "mathord",
2822        cmd: Cmd::MathComp,
2823        chr: 0,
2824        group: Group::Tex,
2825    },
2826    Primitive {
2827        name: "mathpenaltiesmode",
2828        cmd: Cmd::AssignInt,
2829        chr: 109,
2830        group: Group::Luatex,
2831    },
2832    Primitive {
2833        name: "mathpunct",
2834        cmd: Cmd::MathComp,
2835        chr: 8,
2836        group: Group::Tex,
2837    },
2838    Primitive {
2839        name: "mathrel",
2840        cmd: Cmd::MathComp,
2841        chr: 5,
2842        group: Group::Tex,
2843    },
2844    Primitive {
2845        name: "mathrulesfam",
2846        cmd: Cmd::AssignInt,
2847        chr: 92,
2848        group: Group::Luatex,
2849    },
2850    Primitive {
2851        name: "mathrulesmode",
2852        cmd: Cmd::AssignInt,
2853        chr: 91,
2854        group: Group::Luatex,
2855    },
2856    Primitive {
2857        name: "mathrulethicknessmode",
2858        cmd: Cmd::AssignInt,
2859        chr: 113,
2860        group: Group::Luatex,
2861    },
2862    Primitive {
2863        name: "mathscriptboxmode",
2864        cmd: Cmd::AssignInt,
2865        chr: 111,
2866        group: Group::Luatex,
2867    },
2868    Primitive {
2869        name: "mathscriptcharmode",
2870        cmd: Cmd::AssignInt,
2871        chr: 112,
2872        group: Group::Luatex,
2873    },
2874    Primitive {
2875        name: "mathscriptsmode",
2876        cmd: Cmd::AssignInt,
2877        chr: 89,
2878        group: Group::Luatex,
2879    },
2880    Primitive {
2881        name: "mathstyle",
2882        cmd: Cmd::Convert,
2883        chr: 7,
2884        group: Group::Luatex,
2885    },
2886    Primitive {
2887        name: "mathsurround",
2888        cmd: Cmd::AssignDimen,
2889        chr: 1,
2890        group: Group::Tex,
2891    },
2892    Primitive {
2893        name: "mathsurroundmode",
2894        cmd: Cmd::AssignInt,
2895        chr: 98,
2896        group: Group::Luatex,
2897    },
2898    Primitive {
2899        name: "mathsurroundskip",
2900        cmd: Cmd::AssignGlue,
2901        chr: 15,
2902        group: Group::Luatex,
2903    },
2904    Primitive {
2905        name: "maxdeadcycles",
2906        cmd: Cmd::AssignInt,
2907        chr: 40,
2908        group: Group::Tex,
2909    },
2910    Primitive {
2911        name: "maxdepth",
2912        cmd: Cmd::AssignDimen,
2913        chr: 5,
2914        group: Group::Tex,
2915    },
2916    Primitive {
2917        name: "meaning",
2918        cmd: Cmd::Convert,
2919        chr: 11,
2920        group: Group::Tex,
2921    },
2922    Primitive {
2923        name: "medmuskip",
2924        cmd: Cmd::AssignMuGlue,
2925        chr: 1,
2926        group: Group::Tex,
2927    },
2928    Primitive {
2929        name: "message",
2930        cmd: Cmd::Message,
2931        chr: 0,
2932        group: Group::Tex,
2933    },
2934    Primitive {
2935        name: "middle",
2936        cmd: Cmd::LeftRight,
2937        chr: 2,
2938        group: Group::Tex,
2939    },
2940    Primitive {
2941        name: "mkern",
2942        cmd: Cmd::Mkern,
2943        chr: 99,
2944        group: Group::Tex,
2945    },
2946    Primitive {
2947        name: "month",
2948        cmd: Cmd::AssignInt,
2949        chr: 22,
2950        group: Group::Tex,
2951    },
2952    Primitive {
2953        name: "moveleft",
2954        cmd: Cmd::Hmove,
2955        chr: 1,
2956        group: Group::Tex,
2957    },
2958    Primitive {
2959        name: "moveright",
2960        cmd: Cmd::Hmove,
2961        chr: 0,
2962        group: Group::Tex,
2963    },
2964    Primitive {
2965        name: "mskip",
2966        cmd: Cmd::Mskip,
2967        chr: 5,
2968        group: Group::Tex,
2969    },
2970    Primitive {
2971        name: "muexpr",
2972        cmd: Cmd::LastItem,
2973        chr: 40,
2974        group: Group::Etex,
2975    },
2976    Primitive {
2977        name: "multiply",
2978        cmd: Cmd::Multiply,
2979        chr: 0,
2980        group: Group::Tex,
2981    },
2982    Primitive {
2983        name: "muskip",
2984        cmd: Cmd::Register,
2985        chr: 4,
2986        group: Group::Tex,
2987    },
2988    Primitive {
2989        name: "muskipdef",
2990        cmd: Cmd::ShorthandDef,
2991        chr: 7,
2992        group: Group::Tex,
2993    },
2994    Primitive {
2995        name: "mutoglue",
2996        cmd: Cmd::LastItem,
2997        chr: 34,
2998        group: Group::Etex,
2999    },
3000    Primitive {
3001        name: "newlinechar",
3002        cmd: Cmd::AssignInt,
3003        chr: 49,
3004        group: Group::Tex,
3005    },
3006    Primitive {
3007        name: "noalign",
3008        cmd: Cmd::NoAlign,
3009        chr: 0,
3010        group: Group::Tex,
3011    },
3012    Primitive {
3013        name: "noboundary",
3014        cmd: Cmd::Boundary,
3015        chr: 0,
3016        group: Group::Tex,
3017    },
3018    Primitive {
3019        name: "noexpand",
3020        cmd: Cmd::NoExpand,
3021        chr: 0,
3022        group: Group::Tex,
3023    },
3024    Primitive {
3025        name: "nohrule",
3026        cmd: Cmd::Nohrule,
3027        chr: 0,
3028        group: Group::Luatex,
3029    },
3030    Primitive {
3031        name: "noindent",
3032        cmd: Cmd::StartPar,
3033        chr: 0,
3034        group: Group::Tex,
3035    },
3036    Primitive {
3037        name: "nokerns",
3038        cmd: Cmd::AssignInt,
3039        chr: 61,
3040        group: Group::Luatex,
3041    },
3042    Primitive {
3043        name: "noligs",
3044        cmd: Cmd::AssignInt,
3045        chr: 60,
3046        group: Group::Luatex,
3047    },
3048    Primitive {
3049        name: "nolimits",
3050        cmd: Cmd::LimitSwitch,
3051        chr: 3,
3052        group: Group::Tex,
3053    },
3054    Primitive {
3055        name: "nolocaldirs",
3056        cmd: Cmd::UndefinedCs,
3057        chr: 0,
3058        group: Group::None,
3059    },
3060    Primitive {
3061        name: "nolocalwhatsits",
3062        cmd: Cmd::UndefinedCs,
3063        chr: 0,
3064        group: Group::None,
3065    },
3066    Primitive {
3067        name: "nonscript",
3068        cmd: Cmd::NonScript,
3069        chr: 0,
3070        group: Group::Tex,
3071    },
3072    Primitive {
3073        name: "nonstopmode",
3074        cmd: Cmd::SetInteraction,
3075        chr: 1,
3076        group: Group::Tex,
3077    },
3078    Primitive {
3079        name: "normaldeviate",
3080        cmd: Cmd::Convert,
3081        chr: 19,
3082        group: Group::Luatex,
3083    },
3084    Primitive {
3085        name: "nospaces",
3086        cmd: Cmd::AssignInt,
3087        chr: 62,
3088        group: Group::Luatex,
3089    },
3090    Primitive {
3091        name: "novrule",
3092        cmd: Cmd::Novrule,
3093        chr: 0,
3094        group: Group::Luatex,
3095    },
3096    Primitive {
3097        name: "nulldelimiterspace",
3098        cmd: Cmd::AssignDimen,
3099        chr: 11,
3100        group: Group::Tex,
3101    },
3102    Primitive {
3103        name: "nullfont",
3104        cmd: Cmd::SetFont,
3105        chr: 0,
3106        group: Group::Tex,
3107    },
3108    Primitive {
3109        name: "number",
3110        cmd: Cmd::Convert,
3111        chr: 0,
3112        group: Group::Tex,
3113    },
3114    Primitive {
3115        name: "numexpr",
3116        cmd: Cmd::LastItem,
3117        chr: 36,
3118        group: Group::Etex,
3119    },
3120    Primitive {
3121        name: "omit",
3122        cmd: Cmd::Omit,
3123        chr: 0,
3124        group: Group::Tex,
3125    },
3126    Primitive {
3127        name: "openin",
3128        cmd: Cmd::InStream,
3129        chr: 1,
3130        group: Group::Tex,
3131    },
3132    Primitive {
3133        name: "openout",
3134        cmd: Cmd::Extension,
3135        chr: 0,
3136        group: Group::Tex,
3137    },
3138    Primitive {
3139        name: "or",
3140        cmd: Cmd::FiOrElse,
3141        chr: 4,
3142        group: Group::Tex,
3143    },
3144    Primitive {
3145        name: "outer",
3146        cmd: Cmd::Prefix,
3147        chr: 2,
3148        group: Group::Tex,
3149    },
3150    Primitive {
3151        name: "output",
3152        cmd: Cmd::AssignToks,
3153        chr: 0,
3154        group: Group::Tex,
3155    },
3156    Primitive {
3157        name: "outputbox",
3158        cmd: Cmd::AssignInt,
3159        chr: 64,
3160        group: Group::Luatex,
3161    },
3162    Primitive {
3163        name: "outputmode",
3164        cmd: Cmd::AssignInt,
3165        chr: 70,
3166        group: Group::Luatex,
3167    },
3168    Primitive {
3169        name: "outputpenalty",
3170        cmd: Cmd::AssignInt,
3171        chr: 39,
3172        group: Group::Tex,
3173    },
3174    Primitive {
3175        name: "over",
3176        cmd: Cmd::Above,
3177        chr: 1,
3178        group: Group::Tex,
3179    },
3180    Primitive {
3181        name: "overfullrule",
3182        cmd: Cmd::AssignDimen,
3183        chr: 16,
3184        group: Group::Tex,
3185    },
3186    Primitive {
3187        name: "overline",
3188        cmd: Cmd::MathComp,
3189        chr: 11,
3190        group: Group::Tex,
3191    },
3192    Primitive {
3193        name: "overwithdelims",
3194        cmd: Cmd::Above,
3195        chr: 5,
3196        group: Group::Tex,
3197    },
3198    Primitive {
3199        name: "pagebottomoffset",
3200        cmd: Cmd::AssignDimen,
3201        chr: 24,
3202        group: Group::Luatex,
3203    },
3204    Primitive {
3205        name: "pagedepth",
3206        cmd: Cmd::SetPageDimen,
3207        chr: 7,
3208        group: Group::Tex,
3209    },
3210    Primitive {
3211        name: "pagedir",
3212        cmd: Cmd::AssignDir,
3213        chr: 0,
3214        group: Group::Luatex,
3215    },
3216    Primitive {
3217        name: "pagedirection",
3218        cmd: Cmd::AssignDirection,
3219        chr: 0,
3220        group: Group::Luatex,
3221    },
3222    Primitive {
3223        name: "pagediscards",
3224        cmd: Cmd::UnVbox,
3225        chr: 2,
3226        group: Group::Etex,
3227    },
3228    Primitive {
3229        name: "pagefilllstretch",
3230        cmd: Cmd::SetPageDimen,
3231        chr: 5,
3232        group: Group::Tex,
3233    },
3234    Primitive {
3235        name: "pagefillstretch",
3236        cmd: Cmd::SetPageDimen,
3237        chr: 4,
3238        group: Group::Tex,
3239    },
3240    Primitive {
3241        name: "pagefilstretch",
3242        cmd: Cmd::SetPageDimen,
3243        chr: 3,
3244        group: Group::Tex,
3245    },
3246    Primitive {
3247        name: "pagegoal",
3248        cmd: Cmd::SetPageDimen,
3249        chr: 0,
3250        group: Group::Tex,
3251    },
3252    Primitive {
3253        name: "pageheight",
3254        cmd: Cmd::AssignDimen,
3255        chr: 27,
3256        group: Group::Luatex,
3257    },
3258    Primitive {
3259        name: "pageleftoffset",
3260        cmd: Cmd::AssignDimen,
3261        chr: 21,
3262        group: Group::Luatex,
3263    },
3264    Primitive {
3265        name: "pagerightoffset",
3266        cmd: Cmd::AssignDimen,
3267        chr: 23,
3268        group: Group::Luatex,
3269    },
3270    Primitive {
3271        name: "pageshrink",
3272        cmd: Cmd::SetPageDimen,
3273        chr: 6,
3274        group: Group::Tex,
3275    },
3276    Primitive {
3277        name: "pagestretch",
3278        cmd: Cmd::SetPageDimen,
3279        chr: 2,
3280        group: Group::Tex,
3281    },
3282    Primitive {
3283        name: "pagetopoffset",
3284        cmd: Cmd::AssignDimen,
3285        chr: 22,
3286        group: Group::Luatex,
3287    },
3288    Primitive {
3289        name: "pagetotal",
3290        cmd: Cmd::SetPageDimen,
3291        chr: 1,
3292        group: Group::Tex,
3293    },
3294    Primitive {
3295        name: "pagewidth",
3296        cmd: Cmd::AssignDimen,
3297        chr: 26,
3298        group: Group::Luatex,
3299    },
3300    Primitive {
3301        name: "par",
3302        cmd: Cmd::ParEnd,
3303        chr: 1114112,
3304        group: Group::Tex,
3305    },
3306    Primitive {
3307        name: "pardir",
3308        cmd: Cmd::AssignDir,
3309        chr: 2,
3310        group: Group::Luatex,
3311    },
3312    Primitive {
3313        name: "pardirection",
3314        cmd: Cmd::AssignDirection,
3315        chr: 2,
3316        group: Group::Luatex,
3317    },
3318    Primitive {
3319        name: "parfillskip",
3320        cmd: Cmd::AssignGlue,
3321        chr: 14,
3322        group: Group::Tex,
3323    },
3324    Primitive {
3325        name: "parindent",
3326        cmd: Cmd::AssignDimen,
3327        chr: 0,
3328        group: Group::Tex,
3329    },
3330    Primitive {
3331        name: "parshape",
3332        cmd: Cmd::SetTexShape,
3333        chr: 202179,
3334        group: Group::Tex,
3335    },
3336    Primitive {
3337        name: "parshapedimen",
3338        cmd: Cmd::LastItem,
3339        chr: 31,
3340        group: Group::Etex,
3341    },
3342    Primitive {
3343        name: "parshapeindent",
3344        cmd: Cmd::LastItem,
3345        chr: 30,
3346        group: Group::Etex,
3347    },
3348    Primitive {
3349        name: "parshapelength",
3350        cmd: Cmd::LastItem,
3351        chr: 29,
3352        group: Group::Etex,
3353    },
3354    Primitive {
3355        name: "parskip",
3356        cmd: Cmd::AssignGlue,
3357        chr: 2,
3358        group: Group::Tex,
3359    },
3360    Primitive {
3361        name: "partokencontext",
3362        cmd: Cmd::AssignInt,
3363        chr: 121,
3364        group: Group::Etex,
3365    },
3366    Primitive {
3367        name: "partokenname",
3368        cmd: Cmd::PartokenName,
3369        chr: 0,
3370        group: Group::Etex,
3371    },
3372    Primitive {
3373        name: "patterns",
3374        cmd: Cmd::HyphData,
3375        chr: 1,
3376        group: Group::Tex,
3377    },
3378    Primitive {
3379        name: "pausing",
3380        cmd: Cmd::AssignInt,
3381        chr: 28,
3382        group: Group::Tex,
3383    },
3384    Primitive {
3385        name: "pdfextension",
3386        cmd: Cmd::Extension,
3387        chr: 13,
3388        group: Group::Luatex,
3389    },
3390    Primitive {
3391        name: "pdffeedback",
3392        cmd: Cmd::Feedback,
3393        chr: 32,
3394        group: Group::Luatex,
3395    },
3396    Primitive {
3397        name: "pdfvariable",
3398        cmd: Cmd::Variable,
3399        chr: 34,
3400        group: Group::Luatex,
3401    },
3402    Primitive {
3403        name: "penalty",
3404        cmd: Cmd::BreakPenalty,
3405        chr: 0,
3406        group: Group::Tex,
3407    },
3408    Primitive {
3409        name: "postdisplaypenalty",
3410        cmd: Cmd::AssignInt,
3411        chr: 12,
3412        group: Group::Tex,
3413    },
3414    Primitive {
3415        name: "postexhyphenchar",
3416        cmd: Cmd::HyphData,
3417        chr: 5,
3418        group: Group::Luatex,
3419    },
3420    Primitive {
3421        name: "posthyphenchar",
3422        cmd: Cmd::HyphData,
3423        chr: 3,
3424        group: Group::Luatex,
3425    },
3426    Primitive {
3427        name: "prebinoppenalty",
3428        cmd: Cmd::AssignInt,
3429        chr: 107,
3430        group: Group::Luatex,
3431    },
3432    Primitive {
3433        name: "predisplaydirection",
3434        cmd: Cmd::AssignInt,
3435        chr: 78,
3436        group: Group::Etex,
3437    },
3438    Primitive {
3439        name: "predisplaygapfactor",
3440        cmd: Cmd::AssignInt,
3441        chr: 99,
3442        group: Group::Luatex,
3443    },
3444    Primitive {
3445        name: "predisplaypenalty",
3446        cmd: Cmd::AssignInt,
3447        chr: 11,
3448        group: Group::Tex,
3449    },
3450    Primitive {
3451        name: "predisplaysize",
3452        cmd: Cmd::AssignDimen,
3453        chr: 13,
3454        group: Group::Tex,
3455    },
3456    Primitive {
3457        name: "preexhyphenchar",
3458        cmd: Cmd::HyphData,
3459        chr: 4,
3460        group: Group::Luatex,
3461    },
3462    Primitive {
3463        name: "prehyphenchar",
3464        cmd: Cmd::HyphData,
3465        chr: 2,
3466        group: Group::Luatex,
3467    },
3468    Primitive {
3469        name: "prerelpenalty",
3470        cmd: Cmd::AssignInt,
3471        chr: 108,
3472        group: Group::Luatex,
3473    },
3474    Primitive {
3475        name: "pretolerance",
3476        cmd: Cmd::AssignInt,
3477        chr: 0,
3478        group: Group::Tex,
3479    },
3480    Primitive {
3481        name: "prevdepth",
3482        cmd: Cmd::SetAux,
3483        chr: 1,
3484        group: Group::Tex,
3485    },
3486    Primitive {
3487        name: "prevgraf",
3488        cmd: Cmd::SetPrevGraf,
3489        chr: 0,
3490        group: Group::Tex,
3491    },
3492    Primitive {
3493        name: "primitive",
3494        cmd: Cmd::NoExpand,
3495        chr: 1,
3496        group: Group::Luatex,
3497    },
3498    Primitive {
3499        name: "protected",
3500        cmd: Cmd::Prefix,
3501        chr: 8,
3502        group: Group::Etex,
3503    },
3504    Primitive {
3505        name: "protrudechars",
3506        cmd: Cmd::AssignInt,
3507        chr: 69,
3508        group: Group::Luatex,
3509    },
3510    Primitive {
3511        name: "protrusionboundary",
3512        cmd: Cmd::Boundary,
3513        chr: 2,
3514        group: Group::Tex,
3515    },
3516    Primitive {
3517        name: "pxdimen",
3518        cmd: Cmd::AssignDimen,
3519        chr: 25,
3520        group: Group::Luatex,
3521    },
3522    Primitive {
3523        name: "quitvmode",
3524        cmd: Cmd::StartPar,
3525        chr: 2,
3526        group: Group::Luatex,
3527    },
3528    Primitive {
3529        name: "radical",
3530        cmd: Cmd::Radical,
3531        chr: 0,
3532        group: Group::Tex,
3533    },
3534    Primitive {
3535        name: "raise",
3536        cmd: Cmd::Vmove,
3537        chr: 1,
3538        group: Group::Tex,
3539    },
3540    Primitive {
3541        name: "randomseed",
3542        cmd: Cmd::LastItem,
3543        chr: 12,
3544        group: Group::Luatex,
3545    },
3546    Primitive {
3547        name: "read",
3548        cmd: Cmd::ReadToCs,
3549        chr: 0,
3550        group: Group::Tex,
3551    },
3552    Primitive {
3553        name: "readline",
3554        cmd: Cmd::ReadToCs,
3555        chr: 1,
3556        group: Group::Etex,
3557    },
3558    Primitive {
3559        name: "relax",
3560        cmd: Cmd::Relax,
3561        chr: 1114112,
3562        group: Group::Tex,
3563    },
3564    Primitive {
3565        name: "relpenalty",
3566        cmd: Cmd::AssignInt,
3567        chr: 10,
3568        group: Group::Tex,
3569    },
3570    Primitive {
3571        name: "right",
3572        cmd: Cmd::LeftRight,
3573        chr: 3,
3574        group: Group::Tex,
3575    },
3576    Primitive {
3577        name: "rightghost",
3578        cmd: Cmd::CharGhost,
3579        chr: 1,
3580        group: Group::Luatex,
3581    },
3582    Primitive {
3583        name: "righthyphenmin",
3584        cmd: Cmd::AssignInt,
3585        chr: 52,
3586        group: Group::Tex,
3587    },
3588    Primitive {
3589        name: "rightmarginkern",
3590        cmd: Cmd::Convert,
3591        chr: 17,
3592        group: Group::Luatex,
3593    },
3594    Primitive {
3595        name: "rightskip",
3596        cmd: Cmd::AssignGlue,
3597        chr: 8,
3598        group: Group::Tex,
3599    },
3600    Primitive {
3601        name: "romannumeral",
3602        cmd: Cmd::Convert,
3603        chr: 10,
3604        group: Group::Tex,
3605    },
3606    Primitive {
3607        name: "rpcode",
3608        cmd: Cmd::AssignFontInt,
3609        chr: 3,
3610        group: Group::Luatex,
3611    },
3612    Primitive {
3613        name: "saveboxresource",
3614        cmd: Cmd::Extension,
3615        chr: 7,
3616        group: Group::Luatex,
3617    },
3618    Primitive {
3619        name: "savecatcodetable",
3620        cmd: Cmd::Normal,
3621        chr: 0,
3622        group: Group::Luatex,
3623    },
3624    Primitive {
3625        name: "saveimageresource",
3626        cmd: Cmd::Extension,
3627        chr: 9,
3628        group: Group::Luatex,
3629    },
3630    Primitive {
3631        name: "savepos",
3632        cmd: Cmd::Normal,
3633        chr: 3,
3634        group: Group::Luatex,
3635    },
3636    Primitive {
3637        name: "savinghyphcodes",
3638        cmd: Cmd::AssignInt,
3639        chr: 81,
3640        group: Group::Etex,
3641    },
3642    Primitive {
3643        name: "savingvdiscards",
3644        cmd: Cmd::AssignInt,
3645        chr: 80,
3646        group: Group::Etex,
3647    },
3648    Primitive {
3649        name: "scantextokens",
3650        cmd: Cmd::Input,
3651        chr: 3,
3652        group: Group::Luatex,
3653    },
3654    Primitive {
3655        name: "scantokens",
3656        cmd: Cmd::Input,
3657        chr: 2,
3658        group: Group::Etex,
3659    },
3660    Primitive {
3661        name: "scriptfont",
3662        cmd: Cmd::DefFamily,
3663        chr: 1,
3664        group: Group::Tex,
3665    },
3666    Primitive {
3667        name: "scriptscriptfont",
3668        cmd: Cmd::DefFamily,
3669        chr: 2,
3670        group: Group::Tex,
3671    },
3672    Primitive {
3673        name: "scriptscriptstyle",
3674        cmd: Cmd::MathStyle,
3675        chr: 6,
3676        group: Group::Tex,
3677    },
3678    Primitive {
3679        name: "scriptspace",
3680        cmd: Cmd::AssignDimen,
3681        chr: 12,
3682        group: Group::Tex,
3683    },
3684    Primitive {
3685        name: "scriptstyle",
3686        cmd: Cmd::MathStyle,
3687        chr: 4,
3688        group: Group::Tex,
3689    },
3690    Primitive {
3691        name: "scrollmode",
3692        cmd: Cmd::SetInteraction,
3693        chr: 2,
3694        group: Group::Tex,
3695    },
3696    Primitive {
3697        name: "setbox",
3698        cmd: Cmd::SetBox,
3699        chr: 0,
3700        group: Group::Tex,
3701    },
3702    Primitive {
3703        name: "setfontid",
3704        cmd: Cmd::SetFontId,
3705        chr: 0,
3706        group: Group::Luatex,
3707    },
3708    Primitive {
3709        name: "setlanguage",
3710        cmd: Cmd::AssignInt,
3711        chr: 65,
3712        group: Group::Tex,
3713    },
3714    Primitive {
3715        name: "setrandomseed",
3716        cmd: Cmd::Normal,
3717        chr: 2,
3718        group: Group::Luatex,
3719    },
3720    Primitive {
3721        name: "sfcode",
3722        cmd: Cmd::DefCharCode,
3723        chr: 3,
3724        group: Group::Tex,
3725    },
3726    Primitive {
3727        name: "shapemode",
3728        cmd: Cmd::AssignInt,
3729        chr: 95,
3730        group: Group::Luatex,
3731    },
3732    Primitive {
3733        name: "shipout",
3734        cmd: Cmd::LeaderShip,
3735        chr: 98,
3736        group: Group::Tex,
3737    },
3738    Primitive {
3739        name: "show",
3740        cmd: Cmd::Xray,
3741        chr: 0,
3742        group: Group::Tex,
3743    },
3744    Primitive {
3745        name: "showbox",
3746        cmd: Cmd::Xray,
3747        chr: 1,
3748        group: Group::Tex,
3749    },
3750    Primitive {
3751        name: "showboxbreadth",
3752        cmd: Cmd::AssignInt,
3753        chr: 24,
3754        group: Group::Tex,
3755    },
3756    Primitive {
3757        name: "showboxdepth",
3758        cmd: Cmd::AssignInt,
3759        chr: 25,
3760        group: Group::Tex,
3761    },
3762    Primitive {
3763        name: "showgroups",
3764        cmd: Cmd::Xray,
3765        chr: 4,
3766        group: Group::Etex,
3767    },
3768    Primitive {
3769        name: "showifs",
3770        cmd: Cmd::Xray,
3771        chr: 6,
3772        group: Group::Etex,
3773    },
3774    Primitive {
3775        name: "showlists",
3776        cmd: Cmd::Xray,
3777        chr: 3,
3778        group: Group::Tex,
3779    },
3780    Primitive {
3781        name: "showstream",
3782        cmd: Cmd::AssignInt,
3783        chr: 122,
3784        group: Group::Tex,
3785    },
3786    Primitive {
3787        name: "showthe",
3788        cmd: Cmd::Xray,
3789        chr: 2,
3790        group: Group::Tex,
3791    },
3792    Primitive {
3793        name: "showtokens",
3794        cmd: Cmd::Xray,
3795        chr: 5,
3796        group: Group::Etex,
3797    },
3798    Primitive {
3799        name: "skewchar",
3800        cmd: Cmd::AssignFontInt,
3801        chr: 1,
3802        group: Group::Tex,
3803    },
3804    Primitive {
3805        name: "skip",
3806        cmd: Cmd::Register,
3807        chr: 3,
3808        group: Group::Tex,
3809    },
3810    Primitive {
3811        name: "skipdef",
3812        cmd: Cmd::ShorthandDef,
3813        chr: 6,
3814        group: Group::Tex,
3815    },
3816    Primitive {
3817        name: "spacefactor",
3818        cmd: Cmd::SetAux,
3819        chr: 134,
3820        group: Group::Tex,
3821    },
3822    Primitive {
3823        name: "spaceskip",
3824        cmd: Cmd::AssignGlue,
3825        chr: 12,
3826        group: Group::Tex,
3827    },
3828    Primitive {
3829        name: "span",
3830        cmd: Cmd::TabMark,
3831        chr: 1114114,
3832        group: Group::Tex,
3833    },
3834    Primitive {
3835        name: "special",
3836        cmd: Cmd::Extension,
3837        chr: 6,
3838        group: Group::Tex,
3839    },
3840    Primitive {
3841        name: "splitbotmark",
3842        cmd: Cmd::TopBotMark,
3843        chr: 4,
3844        group: Group::Tex,
3845    },
3846    Primitive {
3847        name: "splitbotmarks",
3848        cmd: Cmd::TopBotMark,
3849        chr: 9,
3850        group: Group::Etex,
3851    },
3852    Primitive {
3853        name: "splitdiscards",
3854        cmd: Cmd::UnVbox,
3855        chr: 3,
3856        group: Group::Etex,
3857    },
3858    Primitive {
3859        name: "splitfirstmark",
3860        cmd: Cmd::TopBotMark,
3861        chr: 3,
3862        group: Group::Tex,
3863    },
3864    Primitive {
3865        name: "splitfirstmarks",
3866        cmd: Cmd::TopBotMark,
3867        chr: 8,
3868        group: Group::Etex,
3869    },
3870    Primitive {
3871        name: "splitmaxdepth",
3872        cmd: Cmd::AssignDimen,
3873        chr: 6,
3874        group: Group::Tex,
3875    },
3876    Primitive {
3877        name: "splittopskip",
3878        cmd: Cmd::AssignGlue,
3879        chr: 10,
3880        group: Group::Tex,
3881    },
3882    Primitive {
3883        name: "string",
3884        cmd: Cmd::Convert,
3885        chr: 8,
3886        group: Group::Tex,
3887    },
3888    Primitive {
3889        name: "suppressfontnotfounderror",
3890        cmd: Cmd::AssignInt,
3891        chr: 82,
3892        group: Group::Luatex,
3893    },
3894    Primitive {
3895        name: "suppressifcsnameerror",
3896        cmd: Cmd::AssignInt,
3897        chr: 84,
3898        group: Group::Luatex,
3899    },
3900    Primitive {
3901        name: "suppresslongerror",
3902        cmd: Cmd::AssignInt,
3903        chr: 83,
3904        group: Group::Luatex,
3905    },
3906    Primitive {
3907        name: "suppressmathparerror",
3908        cmd: Cmd::AssignInt,
3909        chr: 86,
3910        group: Group::Luatex,
3911    },
3912    Primitive {
3913        name: "suppressoutererror",
3914        cmd: Cmd::AssignInt,
3915        chr: 85,
3916        group: Group::Luatex,
3917    },
3918    Primitive {
3919        name: "suppressprimitiveerror",
3920        cmd: Cmd::AssignInt,
3921        chr: 116,
3922        group: Group::Luatex,
3923    },
3924    Primitive {
3925        name: "synctex",
3926        cmd: Cmd::AssignInt,
3927        chr: 94,
3928        group: Group::Luatex,
3929    },
3930    Primitive {
3931        name: "tabskip",
3932        cmd: Cmd::AssignGlue,
3933        chr: 11,
3934        group: Group::Tex,
3935    },
3936    Primitive {
3937        name: "tagcode",
3938        cmd: Cmd::AssignFontInt,
3939        chr: 5,
3940        group: Group::Luatex,
3941    },
3942    Primitive {
3943        name: "textdir",
3944        cmd: Cmd::AssignDir,
3945        chr: 3,
3946        group: Group::Luatex,
3947    },
3948    Primitive {
3949        name: "textdirection",
3950        cmd: Cmd::AssignDirection,
3951        chr: 3,
3952        group: Group::Luatex,
3953    },
3954    Primitive {
3955        name: "textfont",
3956        cmd: Cmd::DefFamily,
3957        chr: 0,
3958        group: Group::Tex,
3959    },
3960    Primitive {
3961        name: "textstyle",
3962        cmd: Cmd::MathStyle,
3963        chr: 2,
3964        group: Group::Tex,
3965    },
3966    Primitive {
3967        name: "the",
3968        cmd: Cmd::The,
3969        chr: 0,
3970        group: Group::Tex,
3971    },
3972    Primitive {
3973        name: "thickmuskip",
3974        cmd: Cmd::AssignMuGlue,
3975        chr: 2,
3976        group: Group::Tex,
3977    },
3978    Primitive {
3979        name: "thinmuskip",
3980        cmd: Cmd::AssignMuGlue,
3981        chr: 0,
3982        group: Group::Tex,
3983    },
3984    Primitive {
3985        name: "time",
3986        cmd: Cmd::AssignInt,
3987        chr: 20,
3988        group: Group::Tex,
3989    },
3990    Primitive {
3991        name: "toks",
3992        cmd: Cmd::ToksRegister,
3993        chr: 0,
3994        group: Group::Tex,
3995    },
3996    Primitive {
3997        name: "toksapp",
3998        cmd: Cmd::Combinetoks,
3999        chr: 0,
4000        group: Group::Luatex,
4001    },
4002    Primitive {
4003        name: "toksdef",
4004        cmd: Cmd::ShorthandDef,
4005        chr: 8,
4006        group: Group::Tex,
4007    },
4008    Primitive {
4009        name: "tokspre",
4010        cmd: Cmd::Combinetoks,
4011        chr: 2,
4012        group: Group::Luatex,
4013    },
4014    Primitive {
4015        name: "tolerance",
4016        cmd: Cmd::AssignInt,
4017        chr: 1,
4018        group: Group::Tex,
4019    },
4020    Primitive {
4021        name: "topmark",
4022        cmd: Cmd::TopBotMark,
4023        chr: 0,
4024        group: Group::Tex,
4025    },
4026    Primitive {
4027        name: "topmarks",
4028        cmd: Cmd::TopBotMark,
4029        chr: 5,
4030        group: Group::Etex,
4031    },
4032    Primitive {
4033        name: "topskip",
4034        cmd: Cmd::AssignGlue,
4035        chr: 9,
4036        group: Group::Tex,
4037    },
4038    Primitive {
4039        name: "tpack",
4040        cmd: Cmd::MakeBox,
4041        chr: 4,
4042        group: Group::Tex,
4043    },
4044    Primitive {
4045        name: "tracingassigns",
4046        cmd: Cmd::AssignInt,
4047        chr: 73,
4048        group: Group::Etex,
4049    },
4050    Primitive {
4051        name: "tracingcommands",
4052        cmd: Cmd::AssignInt,
4053        chr: 36,
4054        group: Group::Tex,
4055    },
4056    Primitive {
4057        name: "tracingfonts",
4058        cmd: Cmd::AssignInt,
4059        chr: 72,
4060        group: Group::Luatex,
4061    },
4062    Primitive {
4063        name: "tracinggroups",
4064        cmd: Cmd::AssignInt,
4065        chr: 74,
4066        group: Group::Etex,
4067    },
4068    Primitive {
4069        name: "tracingifs",
4070        cmd: Cmd::AssignInt,
4071        chr: 75,
4072        group: Group::Etex,
4073    },
4074    Primitive {
4075        name: "tracinglostchars",
4076        cmd: Cmd::AssignInt,
4077        chr: 35,
4078        group: Group::Tex,
4079    },
4080    Primitive {
4081        name: "tracingmacros",
4082        cmd: Cmd::AssignInt,
4083        chr: 30,
4084        group: Group::Tex,
4085    },
4086    Primitive {
4087        name: "tracingnesting",
4088        cmd: Cmd::AssignInt,
4089        chr: 77,
4090        group: Group::Etex,
4091    },
4092    Primitive {
4093        name: "tracingonline",
4094        cmd: Cmd::AssignInt,
4095        chr: 29,
4096        group: Group::Tex,
4097    },
4098    Primitive {
4099        name: "tracingoutput",
4100        cmd: Cmd::AssignInt,
4101        chr: 34,
4102        group: Group::Tex,
4103    },
4104    Primitive {
4105        name: "tracingpages",
4106        cmd: Cmd::AssignInt,
4107        chr: 33,
4108        group: Group::Tex,
4109    },
4110    Primitive {
4111        name: "tracingparagraphs",
4112        cmd: Cmd::AssignInt,
4113        chr: 32,
4114        group: Group::Tex,
4115    },
4116    Primitive {
4117        name: "tracingrestores",
4118        cmd: Cmd::AssignInt,
4119        chr: 37,
4120        group: Group::Tex,
4121    },
4122    Primitive {
4123        name: "tracingscantokens",
4124        cmd: Cmd::AssignInt,
4125        chr: 76,
4126        group: Group::Etex,
4127    },
4128    Primitive {
4129        name: "tracingstats",
4130        cmd: Cmd::AssignInt,
4131        chr: 31,
4132        group: Group::Tex,
4133    },
4134    Primitive {
4135        name: "uccode",
4136        cmd: Cmd::DefCharCode,
4137        chr: 2,
4138        group: Group::Tex,
4139    },
4140    Primitive {
4141        name: "uchyph",
4142        cmd: Cmd::AssignInt,
4143        chr: 38,
4144        group: Group::Tex,
4145    },
4146    Primitive {
4147        name: "underline",
4148        cmd: Cmd::MathComp,
4149        chr: 10,
4150        group: Group::Tex,
4151    },
4152    Primitive {
4153        name: "unexpanded",
4154        cmd: Cmd::The,
4155        chr: 1,
4156        group: Group::Etex,
4157    },
4158    Primitive {
4159        name: "unhbox",
4160        cmd: Cmd::UnHbox,
4161        chr: 0,
4162        group: Group::Tex,
4163    },
4164    Primitive {
4165        name: "unhcopy",
4166        cmd: Cmd::UnHbox,
4167        chr: 1,
4168        group: Group::Tex,
4169    },
4170    Primitive {
4171        name: "uniformdeviate",
4172        cmd: Cmd::Convert,
4173        chr: 18,
4174        group: Group::Luatex,
4175    },
4176    Primitive {
4177        name: "unkern",
4178        cmd: Cmd::RemoveItem,
4179        chr: 13,
4180        group: Group::Tex,
4181    },
4182    Primitive {
4183        name: "unless",
4184        cmd: Cmd::ExpandAfter,
4185        chr: 1,
4186        group: Group::Etex,
4187    },
4188    Primitive {
4189        name: "unpenalty",
4190        cmd: Cmd::RemoveItem,
4191        chr: 14,
4192        group: Group::Tex,
4193    },
4194    Primitive {
4195        name: "unskip",
4196        cmd: Cmd::RemoveItem,
4197        chr: 12,
4198        group: Group::Tex,
4199    },
4200    Primitive {
4201        name: "unvbox",
4202        cmd: Cmd::UnVbox,
4203        chr: 0,
4204        group: Group::Tex,
4205    },
4206    Primitive {
4207        name: "unvcopy",
4208        cmd: Cmd::UnVbox,
4209        chr: 1,
4210        group: Group::Tex,
4211    },
4212    Primitive {
4213        name: "uppercase",
4214        cmd: Cmd::CaseShift,
4215        chr: 333282,
4216        group: Group::Tex,
4217    },
4218    Primitive {
4219        name: "useboxresource",
4220        cmd: Cmd::Extension,
4221        chr: 8,
4222        group: Group::Luatex,
4223    },
4224    Primitive {
4225        name: "useimageresource",
4226        cmd: Cmd::Extension,
4227        chr: 10,
4228        group: Group::Luatex,
4229    },
4230    Primitive {
4231        name: "vadjust",
4232        cmd: Cmd::Vadjust,
4233        chr: 0,
4234        group: Group::Tex,
4235    },
4236    Primitive {
4237        name: "valign",
4238        cmd: Cmd::Valign,
4239        chr: 0,
4240        group: Group::Tex,
4241    },
4242    Primitive {
4243        name: "variablefam",
4244        cmd: Cmd::AssignInt,
4245        chr: 124,
4246        group: Group::Luatex,
4247    },
4248    Primitive {
4249        name: "vbadness",
4250        cmd: Cmd::AssignInt,
4251        chr: 27,
4252        group: Group::Tex,
4253    },
4254    Primitive {
4255        name: "vbox",
4256        cmd: Cmd::MakeBox,
4257        chr: 8,
4258        group: Group::Tex,
4259    },
4260    Primitive {
4261        name: "vcenter",
4262        cmd: Cmd::Vcenter,
4263        chr: 0,
4264        group: Group::Tex,
4265    },
4266    Primitive {
4267        name: "vfil",
4268        cmd: Cmd::Vskip,
4269        chr: 0,
4270        group: Group::Tex,
4271    },
4272    Primitive {
4273        name: "vfill",
4274        cmd: Cmd::Vskip,
4275        chr: 1,
4276        group: Group::Tex,
4277    },
4278    Primitive {
4279        name: "vfilneg",
4280        cmd: Cmd::Vskip,
4281        chr: 3,
4282        group: Group::Tex,
4283    },
4284    Primitive {
4285        name: "vfuzz",
4286        cmd: Cmd::AssignDimen,
4287        chr: 9,
4288        group: Group::Tex,
4289    },
4290    Primitive {
4291        name: "voffset",
4292        cmd: Cmd::AssignDimen,
4293        chr: 19,
4294        group: Group::Tex,
4295    },
4296    Primitive {
4297        name: "vpack",
4298        cmd: Cmd::MakeBox,
4299        chr: 5,
4300        group: Group::Tex,
4301    },
4302    Primitive {
4303        name: "vrule",
4304        cmd: Cmd::Vrule,
4305        chr: 0,
4306        group: Group::Tex,
4307    },
4308    Primitive {
4309        name: "vsize",
4310        cmd: Cmd::AssignDimen,
4311        chr: 4,
4312        group: Group::Tex,
4313    },
4314    Primitive {
4315        name: "vskip",
4316        cmd: Cmd::Vskip,
4317        chr: 4,
4318        group: Group::Tex,
4319    },
4320    Primitive {
4321        name: "vsplit",
4322        cmd: Cmd::MakeBox,
4323        chr: 3,
4324        group: Group::Tex,
4325    },
4326    Primitive {
4327        name: "vss",
4328        cmd: Cmd::Vskip,
4329        chr: 2,
4330        group: Group::Tex,
4331    },
4332    Primitive {
4333        name: "vtop",
4334        cmd: Cmd::MakeBox,
4335        chr: 7,
4336        group: Group::Tex,
4337    },
4338    Primitive {
4339        name: "wd",
4340        cmd: Cmd::SetBoxDimen,
4341        chr: 2,
4342        group: Group::Tex,
4343    },
4344    Primitive {
4345        name: "widowpenalties",
4346        cmd: Cmd::SetEtexShape,
4347        chr: 2,
4348        group: Group::Etex,
4349    },
4350    Primitive {
4351        name: "widowpenalty",
4352        cmd: Cmd::AssignInt,
4353        chr: 6,
4354        group: Group::Tex,
4355    },
4356    Primitive {
4357        name: "wordboundary",
4358        cmd: Cmd::Boundary,
4359        chr: 3,
4360        group: Group::Tex,
4361    },
4362    Primitive {
4363        name: "write",
4364        cmd: Cmd::Extension,
4365        chr: 1,
4366        group: Group::Tex,
4367    },
4368    Primitive {
4369        name: "xdef",
4370        cmd: Cmd::Def,
4371        chr: 3,
4372        group: Group::Tex,
4373    },
4374    Primitive {
4375        name: "xleaders",
4376        cmd: Cmd::LeaderShip,
4377        chr: 102,
4378        group: Group::Tex,
4379    },
4380    Primitive {
4381        name: "xspaceskip",
4382        cmd: Cmd::AssignGlue,
4383        chr: 13,
4384        group: Group::Tex,
4385    },
4386    Primitive {
4387        name: "xtoksapp",
4388        cmd: Cmd::Combinetoks,
4389        chr: 5,
4390        group: Group::Luatex,
4391    },
4392    Primitive {
4393        name: "xtokspre",
4394        cmd: Cmd::Combinetoks,
4395        chr: 7,
4396        group: Group::Luatex,
4397    },
4398    Primitive {
4399        name: "year",
4400        cmd: Cmd::AssignInt,
4401        chr: 23,
4402        group: Group::Tex,
4403    },
4404];
4405
4406/// Indices for `assign_dimen` primitives.
4407#[allow(dead_code)]
4408pub mod assign_dimen {
4409    /// `\parindent`.
4410    pub const PARINDENT: u32 = 0;
4411    /// `\mathsurround`.
4412    pub const MATHSURROUND: u32 = 1;
4413    /// `\lineskiplimit`.
4414    pub const LINESKIPLIMIT: u32 = 2;
4415    /// `\hsize`.
4416    pub const HSIZE: u32 = 3;
4417    /// `\vsize`.
4418    pub const VSIZE: u32 = 4;
4419    /// `\maxdepth`.
4420    pub const MAXDEPTH: u32 = 5;
4421    /// `\splitmaxdepth`.
4422    pub const SPLITMAXDEPTH: u32 = 6;
4423    /// `\boxmaxdepth`.
4424    pub const BOXMAXDEPTH: u32 = 7;
4425    /// `\hfuzz`.
4426    pub const HFUZZ: u32 = 8;
4427    /// `\vfuzz`.
4428    pub const VFUZZ: u32 = 9;
4429    /// `\delimitershortfall`.
4430    pub const DELIMITERSHORTFALL: u32 = 10;
4431    /// `\nulldelimiterspace`.
4432    pub const NULLDELIMITERSPACE: u32 = 11;
4433    /// `\scriptspace`.
4434    pub const SCRIPTSPACE: u32 = 12;
4435    /// `\predisplaysize`.
4436    pub const PREDISPLAYSIZE: u32 = 13;
4437    /// `\displaywidth`.
4438    pub const DISPLAYWIDTH: u32 = 14;
4439    /// `\displayindent`.
4440    pub const DISPLAYINDENT: u32 = 15;
4441    /// `\overfullrule`.
4442    pub const OVERFULLRULE: u32 = 16;
4443    /// `\hangindent`.
4444    pub const HANGINDENT: u32 = 17;
4445    /// `\hoffset`.
4446    pub const HOFFSET: u32 = 18;
4447    /// `\voffset`.
4448    pub const VOFFSET: u32 = 19;
4449    /// `\emergencystretch`.
4450    pub const EMERGENCYSTRETCH: u32 = 20;
4451    /// `\pageleftoffset`.
4452    pub const PAGELEFTOFFSET: u32 = 21;
4453    /// `\pagetopoffset`.
4454    pub const PAGETOPOFFSET: u32 = 22;
4455    /// `\pagerightoffset`.
4456    pub const PAGERIGHTOFFSET: u32 = 23;
4457    /// `\pagebottomoffset`.
4458    pub const PAGEBOTTOMOFFSET: u32 = 24;
4459    /// `\pxdimen`.
4460    pub const PXDIMEN: u32 = 25;
4461    /// `\pagewidth`.
4462    pub const PAGEWIDTH: u32 = 26;
4463    /// `\pageheight`.
4464    pub const PAGEHEIGHT: u32 = 27;
4465    /// One past the largest index.
4466    pub const COUNT: u32 = 28;
4467}
4468
4469/// Indices for `assign_dir` primitives.
4470#[allow(dead_code)]
4471pub mod assign_dir {
4472    /// `\pagedir`.
4473    pub const PAGEDIR: u32 = 0;
4474    /// `\bodydir`.
4475    pub const BODYDIR: u32 = 1;
4476    /// `\pardir`.
4477    pub const PARDIR: u32 = 2;
4478    /// `\textdir`.
4479    pub const TEXTDIR: u32 = 3;
4480    /// `\mathdir`.
4481    pub const MATHDIR: u32 = 4;
4482    /// `\linedir`.
4483    pub const LINEDIR: u32 = 5;
4484    /// One past the largest index.
4485    pub const COUNT: u32 = 6;
4486}
4487
4488/// Indices for `assign_direction` primitives.
4489#[allow(dead_code)]
4490pub mod assign_direction {
4491    /// `\pagedirection`.
4492    pub const PAGEDIRECTION: u32 = 0;
4493    /// `\bodydirection`.
4494    pub const BODYDIRECTION: u32 = 1;
4495    /// `\pardirection`.
4496    pub const PARDIRECTION: u32 = 2;
4497    /// `\textdirection`.
4498    pub const TEXTDIRECTION: u32 = 3;
4499    /// `\mathdirection`.
4500    pub const MATHDIRECTION: u32 = 4;
4501    /// `\linedirection`.
4502    pub const LINEDIRECTION: u32 = 5;
4503    /// One past the largest index.
4504    pub const COUNT: u32 = 6;
4505}
4506
4507/// Indices for `assign_glue` primitives.
4508#[allow(dead_code)]
4509pub mod assign_glue {
4510    /// `\lineskip`.
4511    pub const LINESKIP: u32 = 0;
4512    /// `\baselineskip`.
4513    pub const BASELINESKIP: u32 = 1;
4514    /// `\parskip`.
4515    pub const PARSKIP: u32 = 2;
4516    /// `\abovedisplayskip`.
4517    pub const ABOVEDISPLAYSKIP: u32 = 3;
4518    /// `\belowdisplayskip`.
4519    pub const BELOWDISPLAYSKIP: u32 = 4;
4520    /// `\abovedisplayshortskip`.
4521    pub const ABOVEDISPLAYSHORTSKIP: u32 = 5;
4522    /// `\belowdisplayshortskip`.
4523    pub const BELOWDISPLAYSHORTSKIP: u32 = 6;
4524    /// `\leftskip`.
4525    pub const LEFTSKIP: u32 = 7;
4526    /// `\rightskip`.
4527    pub const RIGHTSKIP: u32 = 8;
4528    /// `\topskip`.
4529    pub const TOPSKIP: u32 = 9;
4530    /// `\splittopskip`.
4531    pub const SPLITTOPSKIP: u32 = 10;
4532    /// `\tabskip`.
4533    pub const TABSKIP: u32 = 11;
4534    /// `\spaceskip`.
4535    pub const SPACESKIP: u32 = 12;
4536    /// `\xspaceskip`.
4537    pub const XSPACESKIP: u32 = 13;
4538    /// `\parfillskip`.
4539    pub const PARFILLSKIP: u32 = 14;
4540    /// `\mathsurroundskip`.
4541    pub const MATHSURROUNDSKIP: u32 = 15;
4542    /// One past the largest index.
4543    pub const COUNT: u32 = 16;
4544}
4545
4546/// Indices for `assign_int` primitives.
4547#[allow(dead_code)]
4548pub mod assign_int {
4549    /// `\pretolerance`.
4550    pub const PRETOLERANCE: u32 = 0;
4551    /// `\tolerance`.
4552    pub const TOLERANCE: u32 = 1;
4553    /// `\linepenalty`.
4554    pub const LINEPENALTY: u32 = 2;
4555    /// `\hyphenpenalty`.
4556    pub const HYPHENPENALTY: u32 = 3;
4557    /// `\exhyphenpenalty`.
4558    pub const EXHYPHENPENALTY: u32 = 4;
4559    /// `\clubpenalty`.
4560    pub const CLUBPENALTY: u32 = 5;
4561    /// `\widowpenalty`.
4562    pub const WIDOWPENALTY: u32 = 6;
4563    /// `\displaywidowpenalty`.
4564    pub const DISPLAYWIDOWPENALTY: u32 = 7;
4565    /// `\brokenpenalty`.
4566    pub const BROKENPENALTY: u32 = 8;
4567    /// `\binoppenalty`.
4568    pub const BINOPPENALTY: u32 = 9;
4569    /// `\relpenalty`.
4570    pub const RELPENALTY: u32 = 10;
4571    /// `\predisplaypenalty`.
4572    pub const PREDISPLAYPENALTY: u32 = 11;
4573    /// `\postdisplaypenalty`.
4574    pub const POSTDISPLAYPENALTY: u32 = 12;
4575    /// `\interlinepenalty`.
4576    pub const INTERLINEPENALTY: u32 = 13;
4577    /// `\doublehyphendemerits`.
4578    pub const DOUBLEHYPHENDEMERITS: u32 = 14;
4579    /// `\finalhyphendemerits`.
4580    pub const FINALHYPHENDEMERITS: u32 = 15;
4581    /// `\adjdemerits`.
4582    pub const ADJDEMERITS: u32 = 16;
4583    /// `\mag`.
4584    pub const MAG: u32 = 17;
4585    /// `\delimiterfactor`.
4586    pub const DELIMITERFACTOR: u32 = 18;
4587    /// `\looseness`.
4588    pub const LOOSENESS: u32 = 19;
4589    /// `\time`.
4590    pub const TIME: u32 = 20;
4591    /// `\day`.
4592    pub const DAY: u32 = 21;
4593    /// `\month`.
4594    pub const MONTH: u32 = 22;
4595    /// `\year`.
4596    pub const YEAR: u32 = 23;
4597    /// `\showboxbreadth`.
4598    pub const SHOWBOXBREADTH: u32 = 24;
4599    /// `\showboxdepth`.
4600    pub const SHOWBOXDEPTH: u32 = 25;
4601    /// `\hbadness`.
4602    pub const HBADNESS: u32 = 26;
4603    /// `\vbadness`.
4604    pub const VBADNESS: u32 = 27;
4605    /// `\pausing`.
4606    pub const PAUSING: u32 = 28;
4607    /// `\tracingonline`.
4608    pub const TRACINGONLINE: u32 = 29;
4609    /// `\tracingmacros`.
4610    pub const TRACINGMACROS: u32 = 30;
4611    /// `\tracingstats`.
4612    pub const TRACINGSTATS: u32 = 31;
4613    /// `\tracingparagraphs`.
4614    pub const TRACINGPARAGRAPHS: u32 = 32;
4615    /// `\tracingpages`.
4616    pub const TRACINGPAGES: u32 = 33;
4617    /// `\tracingoutput`.
4618    pub const TRACINGOUTPUT: u32 = 34;
4619    /// `\tracinglostchars`.
4620    pub const TRACINGLOSTCHARS: u32 = 35;
4621    /// `\tracingcommands`.
4622    pub const TRACINGCOMMANDS: u32 = 36;
4623    /// `\tracingrestores`.
4624    pub const TRACINGRESTORES: u32 = 37;
4625    /// `\uchyph`.
4626    pub const UCHYPH: u32 = 38;
4627    /// `\outputpenalty`.
4628    pub const OUTPUTPENALTY: u32 = 39;
4629    /// `\maxdeadcycles`.
4630    pub const MAXDEADCYCLES: u32 = 40;
4631    /// `\hangafter`.
4632    pub const HANGAFTER: u32 = 41;
4633    /// `\floatingpenalty`.
4634    pub const FLOATINGPENALTY: u32 = 42;
4635    /// `\globaldefs`.
4636    pub const GLOBALDEFS: u32 = 43;
4637    /// `\fam`.
4638    pub const FAM: u32 = 44;
4639    /// `\escapechar`.
4640    pub const ESCAPECHAR: u32 = 45;
4641    /// `\defaulthyphenchar`.
4642    pub const DEFAULTHYPHENCHAR: u32 = 46;
4643    /// `\defaultskewchar`.
4644    pub const DEFAULTSKEWCHAR: u32 = 47;
4645    /// `\endlinechar`.
4646    pub const ENDLINECHAR: u32 = 48;
4647    /// `\newlinechar`.
4648    pub const NEWLINECHAR: u32 = 49;
4649    /// `\language`.
4650    pub const LANGUAGE: u32 = 50;
4651    /// `\lefthyphenmin`.
4652    pub const LEFTHYPHENMIN: u32 = 51;
4653    /// `\righthyphenmin`.
4654    pub const RIGHTHYPHENMIN: u32 = 52;
4655    /// `\holdinginserts`.
4656    pub const HOLDINGINSERTS: u32 = 53;
4657    /// `\errorcontextlines`.
4658    pub const ERRORCONTEXTLINES: u32 = 54;
4659    /// `\localinterlinepenalty`.
4660    pub const LOCALINTERLINEPENALTY: u32 = 55;
4661    /// `\localbrokenpenalty`.
4662    pub const LOCALBROKENPENALTY: u32 = 56;
4663    /// `\noligs`.
4664    pub const NOLIGS: u32 = 60;
4665    /// `\nokerns`.
4666    pub const NOKERNS: u32 = 61;
4667    /// `\nospaces`.
4668    pub const NOSPACES: u32 = 62;
4669    /// `\catcodetable`.
4670    pub const CATCODETABLE: u32 = 63;
4671    /// `\outputbox`.
4672    pub const OUTPUTBOX: u32 = 64;
4673    /// `\setlanguage`.
4674    pub const SETLANGUAGE: u32 = 65;
4675    /// `\exhyphenchar`.
4676    pub const EXHYPHENCHAR: u32 = 66;
4677    /// `\adjustspacing`.
4678    pub const ADJUSTSPACING: u32 = 68;
4679    /// `\protrudechars`.
4680    pub const PROTRUDECHARS: u32 = 69;
4681    /// `\outputmode`.
4682    pub const OUTPUTMODE: u32 = 70;
4683    /// `\draftmode`.
4684    pub const DRAFTMODE: u32 = 71;
4685    /// `\tracingfonts`.
4686    pub const TRACINGFONTS: u32 = 72;
4687    /// `\tracingassigns`.
4688    pub const TRACINGASSIGNS: u32 = 73;
4689    /// `\tracinggroups`.
4690    pub const TRACINGGROUPS: u32 = 74;
4691    /// `\tracingifs`.
4692    pub const TRACINGIFS: u32 = 75;
4693    /// `\tracingscantokens`.
4694    pub const TRACINGSCANTOKENS: u32 = 76;
4695    /// `\tracingnesting`.
4696    pub const TRACINGNESTING: u32 = 77;
4697    /// `\predisplaydirection`.
4698    pub const PREDISPLAYDIRECTION: u32 = 78;
4699    /// `\lastlinefit`.
4700    pub const LASTLINEFIT: u32 = 79;
4701    /// `\savingvdiscards`.
4702    pub const SAVINGVDISCARDS: u32 = 80;
4703    /// `\savinghyphcodes`.
4704    pub const SAVINGHYPHCODES: u32 = 81;
4705    /// `\suppressfontnotfounderror`.
4706    pub const SUPPRESSFONTNOTFOUNDERROR: u32 = 82;
4707    /// `\suppresslongerror`.
4708    pub const SUPPRESSLONGERROR: u32 = 83;
4709    /// `\suppressifcsnameerror`.
4710    pub const SUPPRESSIFCSNAMEERROR: u32 = 84;
4711    /// `\suppressoutererror`.
4712    pub const SUPPRESSOUTERERROR: u32 = 85;
4713    /// `\suppressmathparerror`.
4714    pub const SUPPRESSMATHPARERROR: u32 = 86;
4715    /// `\matheqnogapstep`.
4716    pub const MATHEQNOGAPSTEP: u32 = 87;
4717    /// `\mathdisplayskipmode`.
4718    pub const MATHDISPLAYSKIPMODE: u32 = 88;
4719    /// `\mathscriptsmode`.
4720    pub const MATHSCRIPTSMODE: u32 = 89;
4721    /// `\mathnolimitsmode`.
4722    pub const MATHNOLIMITSMODE: u32 = 90;
4723    /// `\mathrulesmode`.
4724    pub const MATHRULESMODE: u32 = 91;
4725    /// `\mathrulesfam`.
4726    pub const MATHRULESFAM: u32 = 92;
4727    /// `\mathitalicsmode`.
4728    pub const MATHITALICSMODE: u32 = 93;
4729    /// `\synctex`.
4730    pub const SYNCTEX: u32 = 94;
4731    /// `\shapemode`.
4732    pub const SHAPEMODE: u32 = 95;
4733    /// `\firstvalidlanguage`.
4734    pub const FIRSTVALIDLANGUAGE: u32 = 96;
4735    /// `\hyphenationbounds`.
4736    pub const HYPHENATIONBOUNDS: u32 = 97;
4737    /// `\mathsurroundmode`.
4738    pub const MATHSURROUNDMODE: u32 = 98;
4739    /// `\predisplaygapfactor`.
4740    pub const PREDISPLAYGAPFACTOR: u32 = 99;
4741    /// `\hyphenpenaltymode`.
4742    pub const HYPHENPENALTYMODE: u32 = 100;
4743    /// `\automatichyphenpenalty`.
4744    pub const AUTOMATICHYPHENPENALTY: u32 = 101;
4745    /// `\explicithyphenpenalty`.
4746    pub const EXPLICITHYPHENPENALTY: u32 = 102;
4747    /// `\automatichyphenmode`.
4748    pub const AUTOMATICHYPHENMODE: u32 = 103;
4749    /// `\compoundhyphenmode`.
4750    pub const COMPOUNDHYPHENMODE: u32 = 104;
4751    /// `\breakafterdirmode`.
4752    pub const BREAKAFTERDIRMODE: u32 = 105;
4753    /// `\exceptionpenalty`.
4754    pub const EXCEPTIONPENALTY: u32 = 106;
4755    /// `\prebinoppenalty`.
4756    pub const PREBINOPPENALTY: u32 = 107;
4757    /// `\prerelpenalty`.
4758    pub const PRERELPENALTY: u32 = 108;
4759    /// `\mathpenaltiesmode`.
4760    pub const MATHPENALTIESMODE: u32 = 109;
4761    /// `\mathdelimitersmode`.
4762    pub const MATHDELIMITERSMODE: u32 = 110;
4763    /// `\mathscriptboxmode`.
4764    pub const MATHSCRIPTBOXMODE: u32 = 111;
4765    /// `\mathscriptcharmode`.
4766    pub const MATHSCRIPTCHARMODE: u32 = 112;
4767    /// `\mathrulethicknessmode`.
4768    pub const MATHRULETHICKNESSMODE: u32 = 113;
4769    /// `\mathflattenmode`.
4770    pub const MATHFLATTENMODE: u32 = 114;
4771    /// `\luacopyinputnodes`.
4772    pub const LUACOPYINPUTNODES: u32 = 115;
4773    /// `\suppressprimitiveerror`.
4774    pub const SUPPRESSPRIMITIVEERROR: u32 = 116;
4775    /// `\fixupboxesmode`.
4776    pub const FIXUPBOXESMODE: u32 = 117;
4777    /// `\glyphdimensionsmode`.
4778    pub const GLYPHDIMENSIONSMODE: u32 = 118;
4779    /// `\mathdefaultsmode`.
4780    pub const MATHDEFAULTSMODE: u32 = 119;
4781    /// `\discretionaryligaturemode`.
4782    pub const DISCRETIONARYLIGATUREMODE: u32 = 120;
4783    /// `\partokencontext`.
4784    pub const PARTOKENCONTEXT: u32 = 121;
4785    /// `\showstream`.
4786    pub const SHOWSTREAM: u32 = 122;
4787    /// `\matheqdirmode`.
4788    pub const MATHEQDIRMODE: u32 = 123;
4789    /// `\variablefam`.
4790    pub const VARIABLEFAM: u32 = 124;
4791    /// `\ignoreprimitiveerror`.
4792    pub const IGNOREPRIMITIVEERROR: u32 = 125;
4793    /// `\mathemptydisplaymode`.
4794    pub const MATHEMPTYDISPLAYMODE: u32 = 126;
4795    /// One past the largest index.
4796    pub const COUNT: u32 = 127;
4797}
4798
4799/// Indices for `assign_mu_glue` primitives.
4800#[allow(dead_code)]
4801pub mod assign_mu_glue {
4802    /// `\thinmuskip`.
4803    pub const THINMUSKIP: u32 = 0;
4804    /// `\medmuskip`.
4805    pub const MEDMUSKIP: u32 = 1;
4806    /// `\thickmuskip`.
4807    pub const THICKMUSKIP: u32 = 2;
4808    /// One past the largest index.
4809    pub const COUNT: u32 = 3;
4810}
4811
4812/// Indices for `assign_toks` primitives.
4813#[allow(dead_code)]
4814pub mod assign_toks {
4815    /// `\output`.
4816    pub const OUTPUT: u32 = 0;
4817    /// `\everypar`.
4818    pub const EVERYPAR: u32 = 1;
4819    /// `\everymath`.
4820    pub const EVERYMATH: u32 = 2;
4821    /// `\everydisplay`.
4822    pub const EVERYDISPLAY: u32 = 3;
4823    /// `\everyhbox`.
4824    pub const EVERYHBOX: u32 = 4;
4825    /// `\everyvbox`.
4826    pub const EVERYVBOX: u32 = 5;
4827    /// `\everyjob`.
4828    pub const EVERYJOB: u32 = 6;
4829    /// `\everycr`.
4830    pub const EVERYCR: u32 = 7;
4831    /// `\errhelp`.
4832    pub const ERRHELP: u32 = 8;
4833    /// `\everyeof`.
4834    pub const EVERYEOF: u32 = 9;
4835    /// One past the largest index.
4836    pub const COUNT: u32 = 10;
4837}
4838
4839/// Indices for `def_char_code` primitives.
4840#[allow(dead_code)]
4841pub mod def_char_code {
4842    /// `\catcode`.
4843    pub const CATCODE: u32 = 0;
4844    /// `\lccode`.
4845    pub const LCCODE: u32 = 1;
4846    /// `\uccode`.
4847    pub const UCCODE: u32 = 2;
4848    /// `\sfcode`.
4849    pub const SFCODE: u32 = 3;
4850    /// `\mathcode`.
4851    pub const MATHCODE: u32 = 4;
4852    /// One past the largest index.
4853    pub const COUNT: u32 = 5;
4854}
4855
4856/// Indices for `def_del_code` primitives.
4857#[allow(dead_code)]
4858pub mod def_del_code {
4859    /// `\delcode`.
4860    pub const DELCODE: u32 = 0;
4861    /// One past the largest index.
4862    pub const COUNT: u32 = 1;
4863}
4864
4865/// Indices for `extdef_del_code` primitives.
4866#[allow(dead_code)]
4867pub mod extdef_del_code {
4868    /// `\Udelcode`.
4869    pub const UDELCODE: u32 = 0;
4870    /// `\Udelcodenum`.
4871    pub const UDELCODENUM: u32 = 1;
4872    /// One past the largest index.
4873    pub const COUNT: u32 = 2;
4874}
4875
4876/// Indices for `extdef_math_code` primitives.
4877#[allow(dead_code)]
4878pub mod extdef_math_code {
4879    /// `\Umathcode`.
4880    pub const UMATHCODE: u32 = 0;
4881    /// `\Umathcodenum`.
4882    pub const UMATHCODENUM: u32 = 1;
4883    /// One past the largest index.
4884    pub const COUNT: u32 = 2;
4885}
4886
4887/// Indices for `set_etex_shape` primitives.
4888#[allow(dead_code)]
4889pub mod set_etex_shape {
4890    /// `\interlinepenalties`.
4891    pub const INTERLINEPENALTIES: u32 = 0;
4892    /// `\clubpenalties`.
4893    pub const CLUBPENALTIES: u32 = 1;
4894    /// `\widowpenalties`.
4895    pub const WIDOWPENALTIES: u32 = 2;
4896    /// `\displaywidowpenalties`.
4897    pub const DISPLAYWIDOWPENALTIES: u32 = 3;
4898    /// One past the largest index.
4899    pub const COUNT: u32 = 4;
4900}