20 #define SINGLE_BASE (ACTIVE_BASE + 256)
22 #define NULL_CS (SINGLE_BASE + 256)
26 #define eq_level_field(x) x.hh.UU.U2.b1
28 #define eq_type_field(x) x.hh.UU.U2.b0
30 #define equiv_field(x) x.hh.rh
33 #define eq_level(x) eq_level_field(eqtb[x])
35 #define eq_type(x) eq_type_field(eqtb[x])
43 #define equiv(x) equiv_field(eqtb[x])
55 typedef enum _EqLevel {
67 #define HASH_BASE (NULL_CS + 1)
72 typedef enum _FrozenControlSeq {
92 #define FONT_ID_BASE (FROZEN_NULL_FONT - FONT_BASE)
94 #define UNDEFINED_CONTROL_SEQUENCE (FROZEN_NULL_FONT + 257)
101 #define GLUE_BASE (UNDEFINED_CONTROL_SEQUENCE + 1)
103 #define SKIP_BASE (GLUE_BASE + GLUE_PARS)
105 #define MU_SKIP_BASE (SKIP_BASE + 256)
139 #define skip(x) equiv(SKIP_BASE + x)
141 #define muskip(x) equiv(MU_SKIP_BASE + x)
143 #define glue_par(x) equiv(GLUE_BASE + x)
145 #define lineskip glue_par(LINE_SKIP_CODE)
146 #define baselineskip glue_par(BASELINE_SKIP_CODE)
147 #define parskip glue_par(PAR_SKIP_CODE)
148 #define abovedisplayskip glue_par(ABOVE_DISPLAY_SKIP_CODE)
149 #define belowdisplayskip glue_par(BELOW_DISPLAY_SKIP_CODE)
150 #define abovedisplayshortskip glue_par(ABOVE_DISPLAY_SHORT_SKIP_CODE)
151 #define belowdisplayshortskip glue_par(BELOW_DISPLAY_SHORT_SKIP_CODE)
152 #define leftskip glue_par(LEFT_SKIP_CODE)
153 #define rightskip glue_par(RIGHT_SKIP_CODE)
154 #define topskip glue_par(TOP_SKIP_CODE)
155 #define splittopskip glue_par(SPLIT_TOP_SKIP_CODE)
156 #define tabskip glue_par(TAB_SKIP_CODE)
157 #define spaceskip glue_par(SPACE_SKIP_CODE)
158 #define xspaceskip glue_par(XSPACE_SKIP_CODE)
159 #define parfillskip glue_par(PAR_FILL_SKIP_CODE)
160 #define thinmuskip glue_par(THIN_MU_SKIP_CODE)
161 #define medmuskip glue_par(MED_MU_SKIP_CODE)
162 #define thickmuskip glue_par(THICK_MU_SKIP_CODE)
173 #define LOCAL_BASE (MU_SKIP_BASE + 256)
176 typedef enum _TokenListLoc {
196 #define BOX_BASE (TOKS_BASE + 256)
198 #define CUR_FONT_LOC (BOX_BASE + 256)
200 #define MATH_FONT_BASE (CUR_FONT_LOC + 1)
202 #define CAT_CODE_BASE (MATH_FONT_BASE + 48)
204 #define LC_CODE_BASE (CAT_CODE_BASE + 256)
206 #define UC_CODE_BASE (LC_CODE_BASE + 256)
208 #define SF_CODE_BASE (UC_CODE_BASE + 256)
210 #define MATH_CODE_BASE (SF_CODE_BASE + 256)
213 #define parshapeptr equiv(PAR_SHAPE_LOC)
214 #define outputroutine equiv(OUTPUT_ROUTINE_LOC)
215 #define everypar equiv(EVERY_PAR_LOC)
216 #define everymath equiv(EVERY_MATH_LOC)
217 #define everydisplay equiv(EVERY_DISPLAY_LOC)
218 #define everyhbox equiv(EVERY_HBOX_LOC)
219 #define everyvbox equiv(EVERY_VBOX_LOC)
220 #define everyjob equiv(EVERY_JOB_LOC)
221 #define everycr equiv(EVERY_CR_LOC)
222 #define errhelp equiv(ERR_HELP_LOC)
225 #define toks(x) equiv(TOKS_BASE + x)
226 #define box(x) equiv(BOX_BASE + x)
227 #define cur_font equiv(CUR_FONT_LOC)
228 #define fam_fnt(x) equiv(MATH_FONT_BASE + x)
229 #define cat_code(x) equiv(CAT_CODE_BASE + x)
230 #define lc_code(x) equiv(LC_CODE_BASE + x)
231 #define uc_code(x) equiv(UC_CODE_BASE + x)
232 #define sf_code(x) equiv(SF_CODE_BASE + x)
234 #define math_code(x) equiv(MATH_CODE_BASE + x)
237 #define NULL_FONT FONT_BASE
239 #define VAR_CODE 28672
247 #define INT_BASE (MATH_CODE_BASE + 256)
249 #define COUNT_BASE (INT_BASE + INT_PARS)
251 #define DEL_CODE_BASE (COUNT_BASE + 256)
258 typedef enum _DelimiterCodesTable {
332 #define del_code(x) eqtb[DEL_CODE_BASE + x].int_
334 #define count(x) eqtb[COUNT_BASE + x].int_
336 #define int_par(x) eqtb[INT_BASE + x].int_
338 #define pretolerance int_par(pretolerancecode)
339 #define tolerance int_par(tolerancecode)
341 #define linepenalty int_par(linepenaltycode)
342 #define hyphenpenalty int_par(hyphenpenaltycode)
343 #define exhyphenpenalty int_par(exhyphenpenaltycode)
344 #define clubpenalty int_par(clubpenaltycode)
345 #define widowpenalty int_par(widowpenaltycode)
346 #define displaywidowpenalty int_par(displaywidowpenaltycode)
347 #define brokenpenalty int_par(brokenpenaltycode)
348 #define binoppenalty int_par(binoppenaltycode)
349 #define relpenalty int_par(relpenaltycode)
350 #define predisplaypenalty int_par(predisplaypenaltycode)
351 #define postdisplaypenalty int_par(postdisplaypenaltycode)
352 #define interlinepenalty int_par(interlinepenaltycode)
354 #define doublehyphendemerits int_par(doublehyphendemeritscode)
355 #define finalhyphendemerits int_par(finalhyphendemeritscode)
356 #define adjdemerits int_par(adjdemeritscode)
357 #define mag int_par(magcode)
358 #define delimiterfactor int_par(delimiterfactorcode)
359 #define looseness int_par(loosenesscode)
360 #define tex_time int_par(timecode)
361 #define day int_par(daycode)
362 #define month int_par(monthcode)
363 #define year int_par(yearcode)
364 #define showboxbreadth int_par(showboxbreadthcode)
365 #define showboxdepth int_par(showboxdepthcode)
366 #define hbadness int_par(hbadnesscode)
367 #define vbadness int_par(vbadnesscode)
368 #define pausing int_par(pausingcode)
370 #define tracingonline int_par(tracingonlinecode)
371 #define tracingmacros int_par(tracingmacroscode)
372 #define tracingstats int_par(tracingstatscode)
373 #define tracingparagraphs int_par(tracingparagraphscode)
374 #define tracingpages int_par(tracingpagescode)
375 #define tracingoutput int_par(tracingoutputcode)
376 #define tracinglostchars int_par(tracinglostcharscode)
377 #define tracingcommands int_par(tracingcommandscode)
378 #define tracingrestores int_par(tracingrestorescode)
380 #define uchyph int_par(uchyphcode)
381 #define outputpenalty int_par(outputpenaltycode)
382 #define maxdeadcycles int_par(maxdeadcyclescode)
383 #define hangafter int_par(hangaftercode)
384 #define floatingpenalty int_par(floatingpenaltycode)
385 #define globaldefs int_par(globaldefscode)
386 #define curfam int_par(curfamcode)
387 #define ESCAPE_CHAR int_par(ESCAPE_CHARcode)
388 #define defaulthyphenchar int_par(defaulthyphencharcode)
389 #define defaultskewchar int_par(defaultskewcharcode)
390 #define end_line_char int_par(endlinecharcode)
391 #define newlinechar int_par(newlinecharcode)
392 #define language int_par(languagecode)
393 #define lefthyphenmin int_par(lefthyphenmincode)
394 #define righthyphenmin int_par(righthyphenmincode)
395 #define holdinginserts int_par(holdinginsertscode)
396 #define errorcontextlines int_par(errorcontextlinescode)
404 #define DIMEN_BASE (DEL_CODE_BASE + 256)
406 #define SCALED_BASE (DIMEN_BASE + dimenpars)
407 #define EQTB_SIZE (SCALED_BASE + 255)
413 typedef enum _DimensionRegisters {
445 #define dimen(x) eqtb[SCALED_BASE + x].sc
447 #define dimen_par(x) eqtb[DIMEN_BASE + x].sc
449 #define parindent dimen_par(parindentcode)
450 #define mathsurround dimen_par(mathsurroundcode)
451 #define lineskiplimit dimen_par(lineskiplimitcode)
452 #define hsize dimen_par(hsizecode)
453 #define vsize dimen_par(vsizecode)
454 #define maxdepth dimen_par(maxdepthcode)
455 #define splitmaxdepth dimen_par(splitmaxdepthcode)
456 #define boxmaxdepth dimen_par(boxmaxdepthcode)
457 #define hfuzz dimen_par(hfuzzcode)
458 #define vfuzz dimen_par(vfuzzcode)
459 #define delimitershortfall dimen_par(delimitershortfallcode)
460 #define nulldelimiterspace dimen_par(nulldelimiterspacecode)
461 #define scriptspace dimen_par(scriptspacecode)
462 #define predisplaysize dimen_par(predisplaysizecode)
463 #define displaywidth dimen_par(displaywidthcode)
464 #define displayindent dimen_par(displayindentcode)
465 #define overfullrule dimen_par(overfullrulecode)
466 #define hangindent dimen_par(hangindentcode)
467 #define hoffset dimen_par(hoffsetcode)
468 #define voffset dimen_par(voffsetcode)
469 #define emergencystretch dimen_par(emergencystretchcode)
477 #define savetype(x) save_stack[x].hh.UU.U2.b0
479 #define savelevel(x) save_stack[x].hh.UU.U2.b1
481 #define saveindex(x) save_stack[x].hh.rh
484 #define saved(x) save_stack[save_ptr + x].int_
Integer get_defaultskewchar(void)
Definition: eqtb.c:428
Integer get_defaulthyphenchar(void)
Definition: eqtb.c:427
uint16_t QuarterWord
[p43#113]: QuarterWord(8=>16) .
Definition: tex_types.h:126
#define MIN_QUARTER_WORD
[#110]: smallest allowable value in a QuarterWord.
Definition: tex_constant.h:160
uint32_t HalfWord
[p43#113]: HalfWord(16=>32) .
Definition: tex_types.h:127
#define SAVE_SIZE
[#11] space for saving values outside of current group.
Definition: tex_constant.h:97
#define HASH_SIZE
[#12] maximum number of control sequences.
Definition: tex_constant.h:139
MemoryWord eqtb[EQTB_SIZE+1]
#253
Definition: eqtb.c:20
void eqtb_init_once()
[#222, #228, #232, #240, #250]
Definition: eqtb.c:32
#define HASH_BASE
[p82#222] [region 2] eqtb[HASH_BASE, (GLUE_BASE - 1)] holds current equivalents of multiletter contro...
Definition: eqtb.h:67
void end_diagnostic(Boolean blankline)
[#245] restore proper conditions after tracing.
Definition: eqtb.c:243
SkipRegisters
[p83#224] [Region 3] of eqtb contains the 256 \skip registers
Definition: eqtb.h:111
QuarterWord xeqlevel[EQTB_SIZE - INT_BASE+1]
Definition: eqtb.c:25
#define LOCAL_BASE
[p87#230] [region 4] eqtb[GLUE_BASE, (LOCAL_BASE - 1)] holds current equivalents of local halfword qu...
Definition: eqtb.h:173
void print_skip_param(Integer n)
[#225]: 打印 glue 参数的名称
Definition: eqtb.c:158
void eqtb_init()
[#254]
Definition: eqtb.c:144
DelimiterCodesTable
[#236] [Region 5] of eqtb contains the integer parameters and registers defined here,...
Definition: eqtb.h:258
EqLevel
[p81#221] level of grouping at which this equivalent was defined.
Definition: eqtb.h:55
DimensionRegisters
[p99#247]: final region [region 6] of eqtb contains the dimension parameters defined here,...
Definition: eqtb.h:413
FrozenControlSeq
[p82#222] [region 2] for control sequences that are perpetually defined (since they are used in error...
Definition: eqtb.h:72
TokenListLoc
Definition: eqtb.h:176
void begin_diagnostic(void)
[#245] prepare to do some tracing.
Definition: eqtb.c:234
void show_eqtb(HalfWord n)
#252:
Definition: eqtb.c:251
#define EQTB_SIZE
Definition: eqtb.h:407
#define INT_BASE
[p91#236] [region 5] eqtb[INT_BASE, (DIMEN_BASE - 1)] holds current equivalents of fullword integer p...
Definition: eqtb.h:247
Boolean use_independence_date
Definition: eqtb.c:28
@ SPLIT_TOP_SKIP_CODE
glue at top of split pages
Definition: eqtb.h:126
@ PAR_FILL_SKIP_CODE
glue on last line of paragraph
Definition: eqtb.h:130
@ RIGHT_SKIP_CODE
glue at right of justified lines
Definition: eqtb.h:123
@ TAB_SKIP_CODE
glue between aligned entries
Definition: eqtb.h:127
@ BELOW_DISPLAY_SHORT_SKIP_CODE
glue [below] displayed math following short lines
Definition: eqtb.h:121
@ XSPACE_SKIP_CODE
glue after sentences (if not zero glue)
Definition: eqtb.h:129
@ ABOVE_DISPLAY_SKIP_CODE
extra glue just above displayed math
Definition: eqtb.h:115
@ GLUE_PARS
total number of glue parameters
Definition: eqtb.h:135
@ LINE_SKIP_CODE
interline glue if baseline skip is infeasible
Definition: eqtb.h:112
@ ABOVE_DISPLAY_SHORT_SKIP_CODE
glue [above] displayed math following short lines
Definition: eqtb.h:119
@ MED_MU_SKIP_CODE
medium space in math formula
Definition: eqtb.h:133
@ TOP_SKIP_CODE
glue at top of main pages
Definition: eqtb.h:124
@ SPACE_SKIP_CODE
glue between words (if not zero glue)
Definition: eqtb.h:128
@ THICK_MU_SKIP_CODE
thick space in math formula
Definition: eqtb.h:134
@ BASELINE_SKIP_CODE
desired glue between baselines
Definition: eqtb.h:113
@ BELOW_DISPLAY_SKIP_CODE
extra glue just below displayed math.
Definition: eqtb.h:116
@ LEFT_SKIP_CODE
glue at left of justified lines
Definition: eqtb.h:122
@ THIN_MU_SKIP_CODE
thin space in math formula
Definition: eqtb.h:132
@ PAR_SKIP_CODE
extra glue just above a paragraph
Definition: eqtb.h:114
@ monthcode
current month of the year
Definition: eqtb.h:288
@ delimiterfactorcode
ratio for variable-size delimiters
Definition: eqtb.h:283
@ pausingcode
pause after each line is read from a file
Definition: eqtb.h:295
@ ESCAPE_CHARcode
escape character for token output
Definition: eqtb.h:316
@ exhyphenpenaltycode
penalty for break after explicit hyphen
Definition: eqtb.h:263
@ tracingparagraphscode
show line-break calculations
Definition: eqtb.h:300
@ endlinecharcode
character placed at the right end of the buffer
Definition: eqtb.h:319
@ defaultskewcharcode
value of \skewchar when a font is loaded
Definition: eqtb.h:318
@ timecode
current time of day
Definition: eqtb.h:286
@ displaywidowpenaltycode
ditto, just before a display
Definition: eqtb.h:267
@ globaldefscode
override \global specifications
Definition: eqtb.h:313
@ tracinglostcharscode
show characters that aren’t in the font
Definition: eqtb.h:304
@ predisplaypenaltycode
penalty for breaking just before a displayed formula
Definition: eqtb.h:274
@ pretolerancecode
badness tolerance before hyphenation
Definition: eqtb.h:259
@ loosenesscode
change in number of lines for a paragraph
Definition: eqtb.h:284
@ tracingrestorescode
show equivalents when they are restored
Definition: eqtb.h:306
@ tracingmacroscode
show macros as they are being expanded
Definition: eqtb.h:298
@ interlinepenaltycode
additional penalty between lines
Definition: eqtb.h:277
@ daycode
current day of the month
Definition: eqtb.h:287
@ hbadnesscode
hboxes exceeding this badness will be shown by hpack
Definition: eqtb.h:293
@ magcode
magnification ratio
Definition: eqtb.h:282
@ finalhyphendemeritscode
demerits for final hyphen break
Definition: eqtb.h:280
@ tracingstatscode
show memory usage if TeX knows it
Definition: eqtb.h:299
@ newlinecharcode
character that prints as println
Definition: eqtb.h:320
@ binoppenaltycode
penalty for breaking after a binary operation.
Definition: eqtb.h:269
@ maxdeadcyclescode
bound on consecutive dead cycles of output
Definition: eqtb.h:310
@ doublehyphendemeritscode
demerits for double hyphen break
Definition: eqtb.h:278
@ linepenaltycode
added to the badness of every line
Definition: eqtb.h:261
@ tracingcommandscode
show command codes at big_switch
Definition: eqtb.h:305
@ hangaftercode
hanging indentation changes after this many lines
Definition: eqtb.h:311
@ holdinginsertscode
do not remove insertion nodes from \box255
Definition: eqtb.h:325
@ tracingonlinecode
show diagnostic output on terminal
Definition: eqtb.h:296
@ righthyphenmincode
minimum right hyphenation fragment size
Definition: eqtb.h:324
@ curfamcode
current family
Definition: eqtb.h:314
@ brokenpenaltycode
penalty for breaking a page at a broken line
Definition: eqtb.h:268
@ showboxdepthcode
maximum level in show_box
Definition: eqtb.h:292
@ tracingpagescode
show page-break calculations
Definition: eqtb.h:301
@ languagecode
current hyphenation table
Definition: eqtb.h:322
@ hyphenpenaltycode
penalty for break after discretionary hyphen
Definition: eqtb.h:262
@ errorcontextlinescode
maximum intermediate line pairs shown
Definition: eqtb.h:326
@ INT_PARS
total number of integer parameters
Definition: eqtb.h:328
@ postdisplaypenaltycode
penalty for breaking just after a displayed formula
Definition: eqtb.h:276
@ defaulthyphencharcode
value of \hyphenchar when a font is loaded
Definition: eqtb.h:317
@ floatingpenaltycode
penalty for insertions heldover after a split
Definition: eqtb.h:312
@ showboxbreadthcode
nodes per level in show_box
Definition: eqtb.h:290
@ widowpenaltycode
penalty for creating a widow line
Definition: eqtb.h:266
@ clubpenaltycode
penalty for creating a club line
Definition: eqtb.h:265
@ tracingoutputcode
show boxes when they are shipped out
Definition: eqtb.h:302
@ vbadnesscode
vboxes exceeding this badness will be shown by vpack
Definition: eqtb.h:294
@ outputpenaltycode
penalty found at current page break
Definition: eqtb.h:308
@ relpenaltycode
penalty for breaking after a relation
Definition: eqtb.h:272
@ uchyphcode
hyphenate words beginning with a capital letter
Definition: eqtb.h:307
@ adjdemeritscode
demerits for adjacent incompatible lines
Definition: eqtb.h:281
@ yearcode
current year of our Lord
Definition: eqtb.h:289
@ tolerancecode
badness tolerance after hyphenation
Definition: eqtb.h:260
@ lefthyphenmincode
minimum left hyphenation fragment size
Definition: eqtb.h:323
@ LEVEL_ZERO
level for undefined quantities.
Definition: eqtb.h:57
@ LEVEL_ONE
outermost level for defined quantities.
Definition: eqtb.h:59
@ scriptspacecode
extra space after subscript or superscript
Definition: eqtb.h:429
@ overfullrulecode
width of rule that identifies overfull hboxes
Definition: eqtb.h:434
@ hangindentcode
amount of hanging indentation
Definition: eqtb.h:435
@ parindentcode
indentation of paragraphs
Definition: eqtb.h:414
@ displaywidthcode
length of line for displayed equation
Definition: eqtb.h:431
@ emergencystretchcode
reduces badnesses on final pass of line-breaking
Definition: eqtb.h:440
@ hoffsetcode
amount of horizontal offset when shipping pages out
Definition: eqtb.h:436
@ vsizecode
page height in vertical mode
Definition: eqtb.h:418
@ hsizecode
line width in horizontal mode
Definition: eqtb.h:417
@ voffsetcode
amount of vertical offset when shipping pages out
Definition: eqtb.h:437
@ boxmaxdepthcode
maximum depth of explicit vboxes
Definition: eqtb.h:422
@ splitmaxdepthcode
maximum depth of boxes on split pages
Definition: eqtb.h:421
@ displayindentcode
indentation of line for displayed equation
Definition: eqtb.h:433
@ nulldelimiterspacecode
blank space in null delimiters
Definition: eqtb.h:428
@ hfuzzcode
tolerance for overfull hbox messages
Definition: eqtb.h:423
@ maxdepthcode
maximum depth of boxes on main pages
Definition: eqtb.h:420
@ delimitershortfallcode
maximum amount uncovered by variable delimiters
Definition: eqtb.h:427
@ lineskiplimitcode
threshold for line skip instead of baseline skip
Definition: eqtb.h:416
@ predisplaysizecode
length of text preceding a display
Definition: eqtb.h:430
@ mathsurroundcode
space around math in text
Definition: eqtb.h:415
@ dimenpars
total number of dimension parameters
Definition: eqtb.h:441
@ vfuzzcode
tolerance for overfull vbox messages.
Definition: eqtb.h:424
@ FROZEN_DONT_EXPAND
permanent ‘\notexpanded’.
Definition: eqtb.h:87
@ FROZEN_NULL_FONT
permanent ‘\nullfont’.
Definition: eqtb.h:88
@ FROZEN_END_GROUP
permanent ‘\endgroup’.
Definition: eqtb.h:79
@ FROZEN_CONTROL_SEQUENCE
for error recovery.
Definition: eqtb.h:74
@ FROZEN_PROTECTION
inaccessible but definable.
Definition: eqtb.h:76
@ FROZEN_END_TEMPLATE
permanent ‘\endtemplate’.
Definition: eqtb.h:82
@ FROZEN_FI
permanent ‘\fi’.
Definition: eqtb.h:81
@ FROZEN_ENDV
second permanent ‘\endtemplate’.
Definition: eqtb.h:84
@ FROZEN_RELAX
permanent ‘\relax’.
Definition: eqtb.h:85
@ END_WRITE
permanent ‘\endwrite’.
Definition: eqtb.h:86
@ FROZEN_RIGHT
permanent ‘\right’.
Definition: eqtb.h:80
@ FROZEN_CR
permanent ‘\cr’.
Definition: eqtb.h:78
@ EVERY_JOB_LOC
points to token list for \everyjob.
Definition: eqtb.h:187
@ EVERY_DISPLAY_LOC
points to token list for \everydisplay.
Definition: eqtb.h:183
@ ERR_HELP_LOC
points to token list for \errhelp.
Definition: eqtb.h:189
@ EVERY_VBOX_LOC
points to token list for \everyvbox.
Definition: eqtb.h:186
@ EVERY_HBOX_LOC
points to token list for \everyhbox.
Definition: eqtb.h:184
@ EVERY_MATH_LOC
points to token list for \everymath.
Definition: eqtb.h:182
@ PAR_SHAPE_LOC
specifies paragraph shape.
Definition: eqtb.h:178
@ EVERY_PAR_LOC
points to token list for \everypar.
Definition: eqtb.h:181
@ OUTPUT_ROUTINE_LOC
points to token list for \output.
Definition: eqtb.h:180
@ TOKS_BASE
table of 256 token list registers.
Definition: eqtb.h:192
@ EVERY_CR_LOC
points to token list for \everycr.
Definition: eqtb.h:188
void save_for_after(HalfWord t)
Definition: eqtb_save.c:138
SaveType
[#268]
Definition: eqtb.h:487
void unsave(void)
Definition: eqtb_save.c:167
void eq_define(HalfWord p, QuarterWord t, HalfWord e)
Definition: eqtb_save.c:102
QuarterWord cur_level
Definition: eqtb_save.c:19
void eqtb_save_init()
[#272, #287]
Definition: eqtb_save.c:27
void geq_define(HalfWord p, QuarterWord t, HalfWord e)
Definition: eqtb_save.c:124
void geq_word_define(HalfWord p, long w)
Definition: eqtb_save.c:131
UInt16 max_save_stack
Definition: eqtb_save.c:18
UInt16 save_ptr
Definition: eqtb_save.c:17
void new_save_level(GroupCode c)
Definition: eqtb_save.c:39
void prepare_mag(void)
Definition: eqtb_save.c:228
GroupCode cur_group
Definition: eqtb_save.c:20
void eq_word_define(HalfWord p, long w)
Definition: eqtb_save.c:114
GroupCode
[#269] group codes that are used to discriminate between different kinds of groups.
Definition: eqtb.h:498
MemoryWord save_stack[SAVE_SIZE+1]
[ #268~288: SAVING AND RESTORING EQUIVALENTS ] [#271]
Definition: eqtb_save.c:16
@ restoreoldvalue
when a value should be restored later
Definition: eqtb.h:488
@ restorezero
when an undefined entry should be restored
Definition: eqtb.h:489
@ inserttoken
when a token is being saved for later use
Definition: eqtb.h:490
@ levelboundary
corresponding to beginning of group
Definition: eqtb.h:491
@ vboxgroup
\vbox{...}
Definition: eqtb.h:503
@ insertgroup
\insert{...}, \vadjust{...}
Definition: eqtb.h:512
@ noaligngroup
\noalign{...}
Definition: eqtb.h:507
@ vcentergroup
\vcenter{...}
Definition: eqtb.h:513
@ mathleftgroup
\left...\right
Definition: eqtb.h:518
@ mathchoicegroup
\mathchoice{...}{...}{...}{...}
Definition: eqtb.h:514
@ mathgroup
^{...}
Definition: eqtb.h:509
@ aligngroup
\halign{...}, \valign{...}
Definition: eqtb.h:506
@ mathshiftgroup
$...$
Definition: eqtb.h:517
@ outputgroup
output routine
Definition: eqtb.h:508
@ semisimplegroup
\begingroup...\endgroup
Definition: eqtb.h:515
@ bottomlevel
the outside world
Definition: eqtb.h:499
@ vtopgroup
\vtop{...}
Definition: eqtb.h:505
@ hboxgroup
\hbox{...}
Definition: eqtb.h:501
@ MAX_GROUP_CODE
Definition: eqtb.h:519
@ discgroup
\discretionary{...}{...}{...}
Definition: eqtb.h:511
@ adjustedhboxgroup
\hbox{...} in vertical mode
Definition: eqtb.h:502
@ simplegroup
local structure only
Definition: eqtb.h:500
int64_t Integer
Integer(64) =
Definition: tex_types.h:42
bool Boolean
布尔类型定义
Definition: tex_types.h:11
uint16_t UInt16
UInt16(16) = = [0, 65536)
Definition: tex_types.h:48
[p43#113]: MemoryWord(64) .
Definition: tex_types.h:164