TeX in C
Explore TeX with modern c compiler.
extension.h
浏览该文件的文档.
1 #pragma once
2 #ifndef INC_EXTENSION_H
4 #define INC_EXTENSION_H
5 #include <stdio.h> // FILE
6 #include "global.h"
7 #include "lexer.h" // [macro] CS_TOKEN_FLAG
8 #include "eqtb.h" // [macro] END_WRITE
9 #include "hyphen.h" // [var] curlang, lhyf, rhyf
10 
14 #define writenodesize 2
15 #define opennodesize 3
16 
17 // [p472#1341]
18 // enum WhatsitsSubtype {};
19 #define opennode 0
20 #define writenode 1
21 #define closenode 2
22 #define specialnode 3
23 #define languagenode 4
24 
26 #define whatlang(x) link(x+1) /* language number, in the range |0..255|}*/
27 #define whatlhm(x) type(x+1) /* minimum left fragment, in the range |1..63|}*/
28 #define whatrhm(x) subtype(x+1) /* minimum right fragment, in the range |1..63|}*/
29 #define writetokens(x) link(x+1) /* reference count of token list to write}*/
30 #define writestream(x) info(x+1) /* stream number (0 to 17)}*/
31 #define openname(x) link(x+1) /* string number of file name to open}*/
32 #define openarea(x) info(x+2) /* string number of file area for |openname|}*/
33 #define openext(x) link(x+2) /* string number of file extension for |openname|}*/
34 
35 // [p473#1344]
36 #define immediatecode 4
37 #define setlanguagecode 5
38 
40 #define advpast(x) \
41  { \
42  if (subtype(x) == languagenode) { \
43  curlang = whatlang(x); \
44  lhyf = whatlhm(x); \
45  rhyf = whatrhm(x); \
46  } \
47  }
48 
50 #define endwritetoken (CS_TOKEN_FLAG + END_WRITE) // end group S1340x1379_P472x481
52 
53 
54 extern FILE* write_file[16];
55 extern Boolean write_open[18];
56 extern Pointer writeloc;
57 
58 extern void extension_init();
59 extern void extension_init_once();
60 extern void doextension(void);
61 extern void print_write_whatsit(StrNumber s, Pointer p);
62 extern void fixlanguage(void);
63 extern void outwhat(HalfWord p);
64 
65 #endif // INC_EXTENSION_H
uint32_t HalfWord
[p43#113]: HalfWord(16=>32) .
Definition: tex_types.h:127
void doextension(void)
Definition: extension.c:73
void outwhat(HalfWord p)
Definition: extension.c:257
void print_write_whatsit(StrNumber s, Pointer p)
[#1355]
Definition: extension.c:152
void fixlanguage(void)
Definition: extension.c:164
Boolean write_open[18]
[#1342] Set to true if that file is open.
Definition: extension.c:23
void extension_init()
[#1343]
Definition: extension.c:30
void extension_init_once()
[#1369]
Definition: extension.c:37
FILE * write_file[16]
[#1342] Hold 16 possible \write streams.
Definition: extension.c:18
Pointer writeloc
Definition: extension.c:26
uint_fast32_t StrNumber
Definition: str.h:73
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