1#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
6#[repr(u8)]
7pub enum Cmd {
8 Relax = 0,
10 LeftBrace = 1,
12 RightBrace = 2,
14 MathShift = 3,
16 TabMark = 4,
18 CarRet = 5,
20 MacParam = 6,
22 SupMark = 7,
24 SubMark = 8,
26 Endv = 9,
28 Spacer = 10,
30 Letter = 11,
32 OtherChar = 12,
34 ParEnd = 13,
36 Stop = 14,
38 DelimNum = 15,
40 CharNum = 16,
42 MathCharNum = 17,
44 Mark = 18,
46 Node = 19,
48 Xray = 20,
50 MakeBox = 21,
52 Hmove = 22,
54 Vmove = 23,
56 UnHbox = 24,
58 UnVbox = 25,
60 RemoveItem = 26,
62 Hskip = 27,
64 Vskip = 28,
66 Mskip = 29,
68 Kern = 30,
70 Mkern = 31,
72 LeaderShip = 32,
74 Halign = 33,
76 Valign = 34,
78 NoAlign = 35,
80 Vrule = 36,
82 Hrule = 37,
84 Novrule = 38,
86 Nohrule = 39,
88 Insert = 40,
90 Vadjust = 41,
92 IgnoreSpaces = 42,
94 AfterAssignment = 43,
96 AfterGroup = 44,
98 PartokenName = 45,
100 BreakPenalty = 46,
102 StartPar = 47,
104 ItalCorr = 48,
106 Accent = 49,
108 MathAccent = 50,
110 Discretionary = 51,
112 EqNo = 52,
114 LeftRight = 53,
116 MathComp = 54,
118 LimitSwitch = 55,
120 Above = 56,
122 MathStyle = 57,
124 MathChoice = 58,
126 NonScript = 59,
128 Vcenter = 60,
130 CaseShift = 61,
132 Message = 62,
134 Normal = 63,
136 Extension = 64,
138 Option = 65,
140 LuaFunctionCall = 66,
142 LuaBytecodeCall = 67,
144 LuaCall = 68,
146 InStream = 69,
148 BeginGroup = 70,
150 EndGroup = 71,
152 Omit = 72,
154 ExSpace = 73,
156 Boundary = 74,
158 Radical = 75,
160 SuperSubScript = 76,
162 NoSuperSubScript = 77,
164 MathShiftCs = 78,
166 EndCsName = 79,
168 CharGhost = 80,
170 AssignLocalBox = 81,
172 CharGiven = 82,
174 MathGiven = 83,
176 XmathGiven = 84,
178 LastItem = 85,
180 ToksRegister = 86,
182 AssignToks = 87,
184 AssignInt = 88,
186 AssignAttr = 89,
188 AssignDimen = 90,
190 AssignGlue = 91,
192 AssignMuGlue = 92,
194 AssignFontDimen = 93,
196 AssignFontInt = 94,
198 AssignHangIndent = 95,
200 SetAux = 96,
202 SetPrevGraf = 97,
204 SetPageDimen = 98,
206 SetPageInt = 99,
208 SetBoxDimen = 100,
210 SetTexShape = 101,
212 SetEtexShape = 102,
214 DefCharCode = 103,
216 DefDelCode = 104,
218 ExtdefMathCode = 105,
220 ExtdefDelCode = 106,
222 DefFamily = 107,
224 SetMathParam = 108,
226 SetFont = 109,
228 DefFont = 110,
230 Register = 111,
232 AssignBoxDirection = 112,
234 AssignBoxDir = 113,
236 AssignDirection = 114,
238 AssignDir = 115,
240 Combinetoks = 116,
242 Advance = 117,
244 Multiply = 118,
246 Divide = 119,
248 Prefix = 120,
250 Let = 121,
252 ShorthandDef = 122,
254 DefLuaCall = 123,
256 ReadToCs = 124,
258 Def = 125,
260 SetBox = 126,
262 HyphData = 127,
264 SetInteraction = 128,
266 LetterspaceFont = 129,
268 ExpandFont = 130,
270 CopyFont = 131,
272 SetFontId = 132,
274 UndefinedCs = 133,
276 ExpandAfter = 134,
278 NoExpand = 135,
280 Input = 136,
282 LuaExpandableCall = 137,
284 LuaLocalCall = 138,
286 IfTest = 139,
288 FiOrElse = 140,
290 CsName = 141,
292 Convert = 142,
294 Variable = 143,
296 Feedback = 144,
298 The = 145,
300 TopBotMark = 146,
302 Call = 147,
304 LongCall = 148,
306 OuterCall = 149,
308 LongOuterCall = 150,
310 EndTemplate = 151,
312 DontExpand = 152,
314 GlueRef = 153,
316 ShapeRef = 154,
318 BoxRef = 155,
320 Data = 156,
322}
323
324impl Cmd {
325 pub const ALL: [Cmd; 157] = [
327 Cmd::Relax,
328 Cmd::LeftBrace,
329 Cmd::RightBrace,
330 Cmd::MathShift,
331 Cmd::TabMark,
332 Cmd::CarRet,
333 Cmd::MacParam,
334 Cmd::SupMark,
335 Cmd::SubMark,
336 Cmd::Endv,
337 Cmd::Spacer,
338 Cmd::Letter,
339 Cmd::OtherChar,
340 Cmd::ParEnd,
341 Cmd::Stop,
342 Cmd::DelimNum,
343 Cmd::CharNum,
344 Cmd::MathCharNum,
345 Cmd::Mark,
346 Cmd::Node,
347 Cmd::Xray,
348 Cmd::MakeBox,
349 Cmd::Hmove,
350 Cmd::Vmove,
351 Cmd::UnHbox,
352 Cmd::UnVbox,
353 Cmd::RemoveItem,
354 Cmd::Hskip,
355 Cmd::Vskip,
356 Cmd::Mskip,
357 Cmd::Kern,
358 Cmd::Mkern,
359 Cmd::LeaderShip,
360 Cmd::Halign,
361 Cmd::Valign,
362 Cmd::NoAlign,
363 Cmd::Vrule,
364 Cmd::Hrule,
365 Cmd::Novrule,
366 Cmd::Nohrule,
367 Cmd::Insert,
368 Cmd::Vadjust,
369 Cmd::IgnoreSpaces,
370 Cmd::AfterAssignment,
371 Cmd::AfterGroup,
372 Cmd::PartokenName,
373 Cmd::BreakPenalty,
374 Cmd::StartPar,
375 Cmd::ItalCorr,
376 Cmd::Accent,
377 Cmd::MathAccent,
378 Cmd::Discretionary,
379 Cmd::EqNo,
380 Cmd::LeftRight,
381 Cmd::MathComp,
382 Cmd::LimitSwitch,
383 Cmd::Above,
384 Cmd::MathStyle,
385 Cmd::MathChoice,
386 Cmd::NonScript,
387 Cmd::Vcenter,
388 Cmd::CaseShift,
389 Cmd::Message,
390 Cmd::Normal,
391 Cmd::Extension,
392 Cmd::Option,
393 Cmd::LuaFunctionCall,
394 Cmd::LuaBytecodeCall,
395 Cmd::LuaCall,
396 Cmd::InStream,
397 Cmd::BeginGroup,
398 Cmd::EndGroup,
399 Cmd::Omit,
400 Cmd::ExSpace,
401 Cmd::Boundary,
402 Cmd::Radical,
403 Cmd::SuperSubScript,
404 Cmd::NoSuperSubScript,
405 Cmd::MathShiftCs,
406 Cmd::EndCsName,
407 Cmd::CharGhost,
408 Cmd::AssignLocalBox,
409 Cmd::CharGiven,
410 Cmd::MathGiven,
411 Cmd::XmathGiven,
412 Cmd::LastItem,
413 Cmd::ToksRegister,
414 Cmd::AssignToks,
415 Cmd::AssignInt,
416 Cmd::AssignAttr,
417 Cmd::AssignDimen,
418 Cmd::AssignGlue,
419 Cmd::AssignMuGlue,
420 Cmd::AssignFontDimen,
421 Cmd::AssignFontInt,
422 Cmd::AssignHangIndent,
423 Cmd::SetAux,
424 Cmd::SetPrevGraf,
425 Cmd::SetPageDimen,
426 Cmd::SetPageInt,
427 Cmd::SetBoxDimen,
428 Cmd::SetTexShape,
429 Cmd::SetEtexShape,
430 Cmd::DefCharCode,
431 Cmd::DefDelCode,
432 Cmd::ExtdefMathCode,
433 Cmd::ExtdefDelCode,
434 Cmd::DefFamily,
435 Cmd::SetMathParam,
436 Cmd::SetFont,
437 Cmd::DefFont,
438 Cmd::Register,
439 Cmd::AssignBoxDirection,
440 Cmd::AssignBoxDir,
441 Cmd::AssignDirection,
442 Cmd::AssignDir,
443 Cmd::Combinetoks,
444 Cmd::Advance,
445 Cmd::Multiply,
446 Cmd::Divide,
447 Cmd::Prefix,
448 Cmd::Let,
449 Cmd::ShorthandDef,
450 Cmd::DefLuaCall,
451 Cmd::ReadToCs,
452 Cmd::Def,
453 Cmd::SetBox,
454 Cmd::HyphData,
455 Cmd::SetInteraction,
456 Cmd::LetterspaceFont,
457 Cmd::ExpandFont,
458 Cmd::CopyFont,
459 Cmd::SetFontId,
460 Cmd::UndefinedCs,
461 Cmd::ExpandAfter,
462 Cmd::NoExpand,
463 Cmd::Input,
464 Cmd::LuaExpandableCall,
465 Cmd::LuaLocalCall,
466 Cmd::IfTest,
467 Cmd::FiOrElse,
468 Cmd::CsName,
469 Cmd::Convert,
470 Cmd::Variable,
471 Cmd::Feedback,
472 Cmd::The,
473 Cmd::TopBotMark,
474 Cmd::Call,
475 Cmd::LongCall,
476 Cmd::OuterCall,
477 Cmd::LongOuterCall,
478 Cmd::EndTemplate,
479 Cmd::DontExpand,
480 Cmd::GlueRef,
481 Cmd::ShapeRef,
482 Cmd::BoxRef,
483 Cmd::Data,
484 ];
485
486 pub fn name(self) -> &'static str {
488 match self {
489 Cmd::Relax => "relax",
490 Cmd::LeftBrace => "left_brace",
491 Cmd::RightBrace => "right_brace",
492 Cmd::MathShift => "math_shift",
493 Cmd::TabMark => "tab_mark",
494 Cmd::CarRet => "car_ret",
495 Cmd::MacParam => "mac_param",
496 Cmd::SupMark => "sup_mark",
497 Cmd::SubMark => "sub_mark",
498 Cmd::Endv => "endv",
499 Cmd::Spacer => "spacer",
500 Cmd::Letter => "letter",
501 Cmd::OtherChar => "other_char",
502 Cmd::ParEnd => "par_end",
503 Cmd::Stop => "stop",
504 Cmd::DelimNum => "delim_num",
505 Cmd::CharNum => "char_num",
506 Cmd::MathCharNum => "math_char_num",
507 Cmd::Mark => "mark",
508 Cmd::Node => "node",
509 Cmd::Xray => "xray",
510 Cmd::MakeBox => "make_box",
511 Cmd::Hmove => "hmove",
512 Cmd::Vmove => "vmove",
513 Cmd::UnHbox => "un_hbox",
514 Cmd::UnVbox => "un_vbox",
515 Cmd::RemoveItem => "remove_item",
516 Cmd::Hskip => "hskip",
517 Cmd::Vskip => "vskip",
518 Cmd::Mskip => "mskip",
519 Cmd::Kern => "kern",
520 Cmd::Mkern => "mkern",
521 Cmd::LeaderShip => "leader_ship",
522 Cmd::Halign => "halign",
523 Cmd::Valign => "valign",
524 Cmd::NoAlign => "no_align",
525 Cmd::Vrule => "vrule",
526 Cmd::Hrule => "hrule",
527 Cmd::Novrule => "novrule",
528 Cmd::Nohrule => "nohrule",
529 Cmd::Insert => "insert",
530 Cmd::Vadjust => "vadjust",
531 Cmd::IgnoreSpaces => "ignore_spaces",
532 Cmd::AfterAssignment => "after_assignment",
533 Cmd::AfterGroup => "after_group",
534 Cmd::PartokenName => "partoken_name",
535 Cmd::BreakPenalty => "break_penalty",
536 Cmd::StartPar => "start_par",
537 Cmd::ItalCorr => "ital_corr",
538 Cmd::Accent => "accent",
539 Cmd::MathAccent => "math_accent",
540 Cmd::Discretionary => "discretionary",
541 Cmd::EqNo => "eq_no",
542 Cmd::LeftRight => "left_right",
543 Cmd::MathComp => "math_comp",
544 Cmd::LimitSwitch => "limit_switch",
545 Cmd::Above => "above",
546 Cmd::MathStyle => "math_style",
547 Cmd::MathChoice => "math_choice",
548 Cmd::NonScript => "non_script",
549 Cmd::Vcenter => "vcenter",
550 Cmd::CaseShift => "case_shift",
551 Cmd::Message => "message",
552 Cmd::Normal => "normal",
553 Cmd::Extension => "extension",
554 Cmd::Option => "option",
555 Cmd::LuaFunctionCall => "lua_function_call",
556 Cmd::LuaBytecodeCall => "lua_bytecode_call",
557 Cmd::LuaCall => "lua_call",
558 Cmd::InStream => "in_stream",
559 Cmd::BeginGroup => "begin_group",
560 Cmd::EndGroup => "end_group",
561 Cmd::Omit => "omit",
562 Cmd::ExSpace => "ex_space",
563 Cmd::Boundary => "boundary",
564 Cmd::Radical => "radical",
565 Cmd::SuperSubScript => "super_sub_script",
566 Cmd::NoSuperSubScript => "no_super_sub_script",
567 Cmd::MathShiftCs => "math_shift_cs",
568 Cmd::EndCsName => "end_cs_name",
569 Cmd::CharGhost => "char_ghost",
570 Cmd::AssignLocalBox => "assign_local_box",
571 Cmd::CharGiven => "char_given",
572 Cmd::MathGiven => "math_given",
573 Cmd::XmathGiven => "xmath_given",
574 Cmd::LastItem => "last_item",
575 Cmd::ToksRegister => "toks_register",
576 Cmd::AssignToks => "assign_toks",
577 Cmd::AssignInt => "assign_int",
578 Cmd::AssignAttr => "assign_attr",
579 Cmd::AssignDimen => "assign_dimen",
580 Cmd::AssignGlue => "assign_glue",
581 Cmd::AssignMuGlue => "assign_mu_glue",
582 Cmd::AssignFontDimen => "assign_font_dimen",
583 Cmd::AssignFontInt => "assign_font_int",
584 Cmd::AssignHangIndent => "assign_hang_indent",
585 Cmd::SetAux => "set_aux",
586 Cmd::SetPrevGraf => "set_prev_graf",
587 Cmd::SetPageDimen => "set_page_dimen",
588 Cmd::SetPageInt => "set_page_int",
589 Cmd::SetBoxDimen => "set_box_dimen",
590 Cmd::SetTexShape => "set_tex_shape",
591 Cmd::SetEtexShape => "set_etex_shape",
592 Cmd::DefCharCode => "def_char_code",
593 Cmd::DefDelCode => "def_del_code",
594 Cmd::ExtdefMathCode => "extdef_math_code",
595 Cmd::ExtdefDelCode => "extdef_del_code",
596 Cmd::DefFamily => "def_family",
597 Cmd::SetMathParam => "set_math_param",
598 Cmd::SetFont => "set_font",
599 Cmd::DefFont => "def_font",
600 Cmd::Register => "register",
601 Cmd::AssignBoxDirection => "assign_box_direction",
602 Cmd::AssignBoxDir => "assign_box_dir",
603 Cmd::AssignDirection => "assign_direction",
604 Cmd::AssignDir => "assign_dir",
605 Cmd::Combinetoks => "combinetoks",
606 Cmd::Advance => "advance",
607 Cmd::Multiply => "multiply",
608 Cmd::Divide => "divide",
609 Cmd::Prefix => "prefix",
610 Cmd::Let => "let",
611 Cmd::ShorthandDef => "shorthand_def",
612 Cmd::DefLuaCall => "def_lua_call",
613 Cmd::ReadToCs => "read_to_cs",
614 Cmd::Def => "def",
615 Cmd::SetBox => "set_box",
616 Cmd::HyphData => "hyph_data",
617 Cmd::SetInteraction => "set_interaction",
618 Cmd::LetterspaceFont => "letterspace_font",
619 Cmd::ExpandFont => "expand_font",
620 Cmd::CopyFont => "copy_font",
621 Cmd::SetFontId => "set_font_id",
622 Cmd::UndefinedCs => "undefined_cs",
623 Cmd::ExpandAfter => "expand_after",
624 Cmd::NoExpand => "no_expand",
625 Cmd::Input => "input",
626 Cmd::LuaExpandableCall => "lua_expandable_call",
627 Cmd::LuaLocalCall => "lua_local_call",
628 Cmd::IfTest => "if_test",
629 Cmd::FiOrElse => "fi_or_else",
630 Cmd::CsName => "cs_name",
631 Cmd::Convert => "convert",
632 Cmd::Variable => "variable",
633 Cmd::Feedback => "feedback",
634 Cmd::The => "the",
635 Cmd::TopBotMark => "top_bot_mark",
636 Cmd::Call => "call",
637 Cmd::LongCall => "long_call",
638 Cmd::OuterCall => "outer_call",
639 Cmd::LongOuterCall => "long_outer_call",
640 Cmd::EndTemplate => "end_template",
641 Cmd::DontExpand => "dont_expand",
642 Cmd::GlueRef => "glue_ref",
643 Cmd::ShapeRef => "shape_ref",
644 Cmd::BoxRef => "box_ref",
645 Cmd::Data => "data",
646 }
647 }
648}