19 #define type(x) (mem[(x)].hh.UU.U2.b0)
21 #define subtype(x) (mem[(x)].hh.UU.U2.b1)
24 #define is_char_node(x) ((x) >= hi_mem_min)
28 #define font(x) link(x + 1)
31 #define font(x) type(x)
35 #define character(x) subtype(x)
38 #define CHAR_NODE_SIZE 2
39 #define font_ligchar(x) type(ligchar(x))
40 #define character_ligchar(x) subtype(ligchar(x))
42 #define CHAR_NODE_SIZE 1
43 #define font_ligchar(x) font(ligchar(x))
44 #define character_ligchar(x) character(ligchar(x))
74 #define heightoffset 3
77 #define width(x) mem[x + widthoffset].sc
79 #define depth(x) mem[x + depthoffset].sc
81 #define height(x) mem[x + heightoffset].sc
84 #define shiftamount(x) mem[x + 4].sc
88 #define listptr(x) link(x + listoffset)
90 #define glueorder(x) subtype(x + listoffset)
92 #define gluesign(x) type(x + listoffset)
103 #define glueset(x) mem[x + glueoffset].gr
106 #define rulenodesize 4
108 #define nullflag (-1073741824L)
110 #define isrunning(x) ((x) == nullflag)
114 #define insnodesize 5
116 #define floatcost(x) mem[x + 1].int_
118 #define insptr(x) info(x + 4)
120 #define splittopptr(x) link(x + 4)
123 #define smallnodesize 2
125 #define markptr(x) mem[x + 1].int_
128 #define adjustptr markptr
131 #define ligchar(x) ((x) + 1)
133 #define ligptr(x) link(ligchar(x))
137 #define replacecount subtype
139 #define prebreak llink
141 #define postbreak rlink
150 #define precedesbreak(x) (type(x) < MATH_NODE)
152 #define nondiscardable(x) (type(x) < MATH_NODE)
155 #define condmathglue 98
165 #define glueptr llink
167 #define leaderptr rlink
171 #define gluespecsize 4
173 #define gluerefcount(x) link(x)
175 #define stretch(x) mem[x + 2].sc
177 #define shrink(x) mem[x + 3].sc
179 #define stretchorder(x) type(x)
181 #define shrinkorder(x) subtype(x)
199 #define INF_PENALTY INF_BAD
201 #define EJECT_PENALTY (-INF_PENALTY)
203 #define penalty(x) mem[x + 1].int_
207 #define gluestretch(x) mem[x + glueoffset].sc
209 #define glueshrink shiftamount
211 #define spancount subtype
218 #define nodelistdisplay(x) (append_char('.'), shownodelist(x), flush_char())
225 #define tokenrefcount(x) info(x)
233 #define addtokenref(x) (tokenrefcount(x)++)
235 #define addglueref(x) (gluerefcount(x)++)
uint16_t QuarterWord
[p43#113]: QuarterWord(8=>16) .
Definition: tex_types.h:126
uint32_t HalfWord
[p43#113]: HalfWord(16=>32) .
Definition: tex_types.h:127
Pointer new_skip_param(SmallNumber n)
[#154] creates a glue node for one of the current glue parameters.
Definition: box.c:168
Pointer new_kern(long w)
[#156] creates a kern node having a given width.
Definition: box.c:180
InfinityOrder
[#150]: the orders of INFINITY (normal, fil, fill, or filll) corresponding to the stretch and shrink ...
Definition: box.h:186
Pointer new_glue(Pointer q)
[#153] argument points to a glue specification.
Definition: box.c:149
Pointer new_rule(void)
[#139]
Definition: box.c:38
Pointer new_lig_item(QuarterWord c)
[#144] returns a two-word node having a given character field.
Definition: box.c:73
Pointer new_disc(void)
[#145] creates an empty disc node.
Definition: box.c:85
Pointer new_spec(Pointer p)
[#151] duplicates a glue specification.
Definition: box.c:117
Pointer new_null_box(void)
[#136] creates a new box node.
Definition: box.c:18
Pointer new_penalty(long m)
[#158]
Definition: box.c:191
NodeType
Definition: box.h:48
Pointer new_math(Scaled w, SmallNumber s)
[#147] A math node, which occurs only in horizontal lists, appears before and after mathematical form...
Definition: box.c:104
Pointer new_param_glue(SmallNumber n)
[#152] creates a glue node for a given parameter identified by its code number;
Definition: box.c:133
Pointer new_ligature(QuarterWord f, QuarterWord c, Pointer q)
[#144] creates a ligature node having given contents of the font, character, and lig_ptr fields.
Definition: box.c:55
@ FILL
second-order INFINITY
Definition: box.h:188
@ FILLL
third-order INFINITY
Definition: box.h:189
@ FIL
first-order INFINITY
Definition: box.h:187
@ ADJUST_NODE
#142: type of an adjust node
Definition: box.h:54
@ MATH_NODE
#147: type of a math node
Definition: box.h:59
@ LIGATURE_NODE
#143: type of a ligature node
Definition: box.h:56
@ UNSET_NODE
#159: type for an unset node
Definition: box.h:64
@ GLUE_NODE
#150: number of words to allocate for a glue specification
Definition: box.h:60
@ WHATSIT_NODE
#146: type of special extension nodes
Definition: box.h:58
@ RULE_NODE
#138: type of rule nodes
Definition: box.h:51
@ KERN_NODE
#155: type of a kern node
Definition: box.h:62
@ PENALTY_NODE
#157: type of a penalty node
Definition: box.h:63
@ VLIST_NODE
#137: type of vlist nodes
Definition: box.h:50
@ INS_NODE
#140: type of insertion nodes
Definition: box.h:52
@ HLIST_NODE
#135: type of hlist nodes
Definition: box.h:49
@ MARK_NODE
#141: type of a mark node
Definition: box.h:53
@ DISC_NODE
#145: type of a discretionary node
Definition: box.h:57
void showbox(HalfWord p)
[#198]
Definition: box_display.c:573
Integer font_in_short_display
[#173] an internal font number.
Definition: box_display.c:17
void printspec(Integer p, StrNumber s)
[#178] prints a glue specification.
Definition: box_display.c:149
Integer depth_threshold
[#181] maximum nesting depth in box displays.
Definition: box_display.c:19
void shownodelist(Integer p)
[#182] prints a node list symbolically.
Definition: box_display.c:170
Integer breadth_max
[#181] maximum number of items shown at the same list level.
Definition: box_display.c:21
void shortdisplay(Pointer p)
[#174] prints highlights of list p.
Definition: box_display.c:25
void delete_token_ref(HalfWord p)
Definition: box_destroy.c:16
void flush_node_list(HalfWord p)
Definition: box_destroy.c:36
void delete_glue_ref(HalfWord p)
Definition: box_destroy.c:31
HalfWord copynodelist(HalfWord p)
Definition: box_copy.c:12
uint_fast32_t StrNumber
Definition: str.h:73
int64_t Integer
Integer(64) =
Definition: tex_types.h:42
Integer Scaled
[p38#101]: Scaled::Integer(64) = we need Pascal's Integer(32/64), dependent upon the bit size of the...
Definition: tex_types.h:106
size_t Pointer
Pointer::size_t(64), a flag or a location in mem or eqtb.
Definition: tex_types.h:45
UChar SmallNumber
[p38#101]: SmallNumber::UChar(8) = [0, 255] only need: (6bit)[0, 63] .
Definition: tex_types.h:112