24 #define appendcharnodetot(x) \
26 link(t) = get_avail(); \
36 curr = qi(hu[j + 1]); \
49 if (ligaturepresent) { \
50 p = new_ligature(hf, curl, link(curq)); \
56 if (ligstack == 0) { \
62 ligaturepresent = false; \
66 #define popligstack() \
68 if (ligptr(ligstack) > null) { \
70 link(t) = ligptr(ligstack); \
76 free_node(p, smallnodesize); \
77 if (ligstack == null) { \
80 curr = character(ligstack); \
85 #define advancemajortail() \
87 majortail = link(majortail); \
98 #define trielink(x) trie[x].rh
100 #define triechar(x) trie[x].UU.U2.b1
102 #define trieop(x) trie[x].UU.U2.b0
105 #define setcurlang() \
108 : ((language > 255) ? (curlang = 0) : (curlang = language)))
117 #define trieroot (triel[0])
120 #define trieback(x) trie[x].UU.lh
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
UChar ASCIICode
[#18]: ASCIICode::UChar(8) = [0, 255]
Definition: charset.h:11
#define HYPH_SIZE
[#12] another prime; the number of \hyphenation exceptions.
Definition: tex_constant.h:148
#define TRIE_SIZE
[#11] space for hyphenation patterns.
Definition: tex_constant.h:103
#define TRIE_OP_SIZE
[#11] space for "opcodes" in the hyphenation patterns.
Definition: tex_constant.h:108
uint_fast32_t StrNumber
Definition: str.h:73
UChar InternalFontNumber
[#548]: [FONT_BASE, FONT_MAX] = [0, 75]
Definition: fonts.h:92
InternalFontNumber hf
Definition: hyphen_pre.c:17
Integer lhyf
Definition: hyphen_pre.c:21
int hn
Definition: hyphen_pre.c:16
short hu[64]
Definition: hyphen_pre.c:18
ASCIICode curlang
Definition: hyphen_pre.c:20
void hyphenate(void)
Definition: hyphen_pre.c:26
short hc[66]
Definition: hyphen_pre.c:15
Integer hyfchar
Definition: hyphen_pre.c:19
HalfWord hyfbchar
Definition: hyphen_pre.c:22
Boolean initlig
Definition: hyphen_post.c:11
char hyf[65]
Definition: hyphen_post.c:10
HalfWord curl
Definition: hyphen_post.c:17
Boolean ligaturepresent
Definition: hyphen_post.c:18
SmallNumber reconstitute(int j, SmallNumber n, HalfWord bchar, HalfWord hchar)
Definition: hyphen_post.c:24
SmallNumber hyphenpassed
Definition: hyphen_post.c:14
SmallNumber hyfnum[TRIE_OP_SIZE]
Definition: hyphen.c:17
StrNumber hyphword[HYPH_SIZE+1]
Definition: hyphen.c:22
TwoHalves trie[TRIE_SIZE+1]
Definition: hyphen.c:15
QuarterWord hyfnext[TRIE_OP_SIZE]
Definition: hyphen.c:18
Pointer hyphlist[HYPH_SIZE+1]
Definition: hyphen.c:23
short opstart[256]
Definition: hyphen.c:19
HyphPointer hyphcount
Definition: hyphen.c:24
void newhyphexceptions(void)
[#934] enters new exceptions.
Definition: hyphen.c:38
void hyphen_init()
[p346#928]
Definition: hyphen.c:29
SmallNumber hyfdistance[TRIE_OP_SIZE]
Definition: hyphen.c:16
void newpatterns(void)
#960
Definition: hyphen_init.c:264
void hypen_dump()
[#1324] Dump the hyphenation tables.
Definition: hyphen_init.c:461
void inittrie(void)
#966
Definition: hyphen_init.c:390
void hyphen_init_once()
[#946, #951]
Definition: hyphen_init.c:68
Boolean hyphen_undump()
[#1325] Undump the hyphenation tables.
Definition: hyphen_init.c:510
Boolean rthit
Definition: hyphen.h:140
HalfWord curr
Definition: hyphen.h:139
Boolean lfthit
Definition: hyphen.h:140
Integer rhyf
Definition: hyphen.h:132
Integer initlhyf
Definition: hyphen.h:132
ASCIICode initcurlang
Definition: hyphen.h:131
Integer initrhyf
Definition: hyphen.h:132
Boolean initlft
Definition: hyphen.h:137
[p43#113]: TwoHalves(64) .
Definition: tex_types.h:144
int64_t Integer
Integer(64) =
Definition: tex_types.h:42
size_t Pointer
Pointer::size_t(64), a flag or a location in mem or eqtb.
Definition: tex_types.h:45
bool Boolean
布尔类型定义
Definition: tex_types.h:11
Pointer HyphPointer
an index into the ordered hash table; [0, HYPH_SIZE=307].
Definition: tex_types.h:191
UChar SmallNumber
[p38#101]: SmallNumber::UChar(8) = [0, 255] only need: (6bit)[0, 63] .
Definition: tex_types.h:112