OSDN Git Service

43bcc639ac6bc480b0e162727f8d3f0617ffba7b
[putex/putex.git] / src / texsourc / coerce.h
1 /*\r
2    Copyright 2007 TeX Users Group\r
3    Copyright 2014 Clerk Ma\r
4 \r
5    This program is free software; you can redistribute it and/or modify\r
6    it under the terms of the GNU General Public License as published by\r
7    the Free Software Foundation; either version 2 of the License, or\r
8    (at your option) any later version.\r
9 \r
10    This program is distributed in the hope that it will be useful, but\r
11    WITHOUT ANY WARRANTY; without even the implied warranty of\r
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
13    General Public License for more details.\r
14 \r
15    You should have received a copy of the GNU General Public License\r
16    along with this program; if not, write to the Free Software\r
17    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\r
18    02110-1301 USA.\r
19 */\r
20 \r
21 #ifndef _YANDYTEX_COERCE_H\r
22 #define _YANDYTEX_COERCE_H\r
23 \r
24 void initialize (void);\r
25 void print_ln (void);\r
26 void print_char_(ASCII_code s);\r
27 #define print_char(s) print_char_((ASCII_code) (s))\r
28 void print_(integer s);\r
29 #define print(s) print_((integer) (s))\r
30 void prints_(const char * s);\r
31 #define prints(s) prints_((const char *) s)\r
32 void slow_print_(integer s);\r
33 #define slow_print(s) slow_print_((integer) (s))\r
34 void print_nl (const char * s);\r
35 void print_esc (const char * s);\r
36 void print_the_digs (eight_bits k);\r
37 void print_int_(integer n);\r
38 #define print_int(n) print_int_((integer) (n))\r
39 void print_cs_(integer p);\r
40 #define print_cs(p) print_cs_((integer) (p))\r
41 void sprint_cs (pointer p);\r
42 void print_file_name (integer n, integer a, integer e);\r
43 void print_size_(integer s);\r
44 #define print_size(s) print_size_((integer) (s))\r
45 void print_write_whatsit_(const char * s, pointer p);\r
46 #define print_write_whatsit(s, p) print_write_whatsit_((const char *) (s), (pointer) (p))\r
47 void jump_out (void);\r
48 void error (void);\r
49 void fatal_error (const char * s);\r
50 void overflow_(const char * s, integer n);\r
51 #define overflow(s, n) overflow_((const char *) (s), (integer) (n))\r
52 void confusion (const char * s);\r
53 boolean init_terminal (void);\r
54 str_number make_string (void);\r
55 boolean str_eq_buf_(str_number s, integer k);\r
56 #define str_eq_buf(s, k) str_eq_buf_((str_number) (s), (integer) (k))\r
57 boolean str_eq_str_(str_number s, str_number t);\r
58 #define str_eq_str(s, t) str_eq_str_((str_number) (s), (str_number) (t))\r
59 boolean get_strings_started (void);\r
60 void print_two_(integer n);\r
61 #define print_two(n) print_two_((integer) (n))\r
62 void print_hex_(integer n);\r
63 #define print_hex(n) print_hex_((integer) (n))\r
64 void print_roman_int_(integer n);\r
65 #define print_roman_int(n) print_roman_int_((integer) (n))\r
66 void print_current_string (void);\r
67 void term_input (void);\r
68 void int_error_(integer n);\r
69 #define int_error(n) int_error_((integer) (n))\r
70 void normalize_selector (void);\r
71 void pause_for_instructions (void);\r
72 integer half_(integer x);\r
73 #define half(x) half_((integer) (x))\r
74 scaled round_decimals_(small_number k);\r
75 #define round_decimals(k) round_decimals_((small_number) (k))\r
76 void print_scaled_(scaled s);\r
77 #define print_scaled(s) print_scaled_((scaled) (s))\r
78 scaled mult_and_add_(integer n, scaled x, scaled y, scaled max_answer);\r
79 #define mult_and_add(n, x, y, max_answer) mult_and_add_((integer) (n), (scaled) (x), (scaled) (y), (scaled) (max_answer))\r
80 scaled x_over_n_(scaled x, integer n);\r
81 #define x_over_n(x, n) x_over_n_((scaled) (x), (integer) (n))\r
82 scaled xn_over_d_(scaled x, integer n, integer d);\r
83 #define xn_over_d(x, n, d) xn_over_d_((scaled) (x), (integer) (n), (integer) (d))\r
84 halfword badness_(scaled t, scaled s);\r
85 #define badness(t, s) badness_((scaled) (t), (scaled) (s))\r
86 void print_word (memory_word w);\r
87 void show_token_list_(integer p, integer q, integer l);\r
88 #define show_token_list(p, q, l) show_token_list_((integer) (p), (integer) (q), (integer) (l))\r
89 void runaway (void);\r
90 pointer get_avail (void);\r
91 void flush_list_(pointer p);\r
92 #define flush_list(p) flush_list_((pointer) (p))\r
93 pointer get_node (integer s);\r
94 void free_node (pointer p, halfword s);\r
95 void sort_avail (void);\r
96 pointer new_null_box (void);\r
97 pointer new_rule (void);\r
98 pointer new_ligature_(quarterword f, quarterword c, pointer q);\r
99 #define new_ligature(f, c, q) new_ligature_((quarterword) (f), (quarterword) (c), (pointer) (q))\r
100 pointer new_lig_item_(quarterword c);\r
101 #define new_lig_item(c) new_lig_item_((quarterword) (c))\r
102 pointer new_disc (void);\r
103 pointer new_math (scaled w, small_number s);\r
104 pointer new_spec_(pointer p);\r
105 #define new_spec(p) new_spec_((pointer) (p))\r
106 pointer new_param_glue (small_number n);\r
107 pointer new_glue (pointer q);\r
108 pointer new_skip_param (small_number n);\r
109 pointer new_kern (scaled w);\r
110 pointer new_penalty (integer m);\r
111 void check_mem (boolean print_locs);\r
112 void search_mem_(pointer p);\r
113 #define search_mem(p) search_mem_((pointer) (p))\r
114 void short_display_(integer p);\r
115 #define short_display(p) short_display_((integer) (p))\r
116 void print_font_and_char(integer p);\r
117 void print_mark (integer p);\r
118 void print_rule_dimen (scaled d);\r
119 void print_glue_(scaled d, integer order, const char * s);\r
120 #define print_glue(d, order, s) print_glue_((scaled) (d), (integer) (order), (const char *) (s))\r
121 void print_spec_(integer p, const char * s);\r
122 #define print_spec(p, s) print_spec_((integer) (p), (const char *) (s))\r
123 void print_fam_and_char_(pointer p);\r
124 #define print_fam_and_char(p) print_fam_and_char_((pointer) (p))\r
125 void print_delimiter_(pointer p);\r
126 #define print_delimiter(p) print_delimiter_((pointer) (p))\r
127 void print_subsidiary_data_(pointer p, ASCII_code c);\r
128 #define print_subsidiary_data(p, c) print_subsidiary_data_((pointer) (p), (ASCII_code) (c))\r
129 void print_style_(integer c);\r
130 #define print_style(c) print_style_((integer) (c))\r
131 void print_skip_param_(integer n);\r
132 #define print_skip_param(n) print_skip_param_((integer) (n))\r
133 void show_node_list_(integer p);\r
134 #define show_node_list(p) show_node_list_((integer) (p))\r
135 void show_box_(pointer p);\r
136 #define show_box(p) show_box_((pointer) (p))\r
137 void delete_token_ref_(pointer p);\r
138 #define delete_token_ref(p) delete_token_ref_((pointer) (p))\r
139 void delete_glue_ref_(pointer p);\r
140 #define delete_glue_ref(p) delete_glue_ref_((pointer) (p))\r
141 void flush_node_list_(pointer p);\r
142 #define flush_node_list(p) flush_node_list_((pointer) (p))\r
143 pointer copy_node_list_(pointer p);\r
144 #define copy_node_list(p) copy_node_list_((pointer) (p))\r
145 void print_mode_(integer m);\r
146 #define print_mode(m) print_mode_((integer) (m))\r
147 void push_nest (void);\r
148 void pop_nest (void);\r
149 void show_activities (void);\r
150 void print_param_(integer n);\r
151 #define print_param(n) print_param_((integer) (n))\r
152 void begin_diagnostic (void);\r
153 void end_diagnostic (boolean blank_line);\r
154 void print_length_param_(integer n);\r
155 #define print_length_param(n) print_length_param_((integer) (n))\r
156 void print_cmd_chr_(quarterword cmd, halfword chr_code);\r
157 #define print_cmd_chr(cmd, chr_code) print_cmd_chr_((quarterword) (cmd), (halfword) (chr_code))\r
158 void show_eqtb (pointer n);\r
159 pointer id_lookup_(integer j, integer l);\r
160 #define id_lookup(j, l) id_lookup_((integer) (j), (integer) (l))\r
161 void primitive_(str_number s, quarterword c, halfword o);\r
162 #define primitive(s, c, o) primitive_(make_string_pool((const char *) s), (quarterword) (c), (halfword) (o))\r
163 void new_save_level (group_code c);\r
164 void eq_destroy (memory_word w);\r
165 void eq_save (pointer p, quarterword l);\r
166 void eq_define_(pointer p, quarterword t, halfword e);\r
167 #define eq_define(p, t, e) eq_define_((pointer) (p), (quarterword) (t), (halfword) (e))\r
168 void eq_word_define_(pointer p, integer w);\r
169 #define eq_word_define(p, w) eq_word_define_((pointer) (p), (integer) (w))\r
170 void geq_define_(pointer p, quarterword t, halfword e);\r
171 #define geq_define(p, t, e) geq_define_((pointer) (p), (quarterword) (t), (halfword) (e))\r
172 void geq_word_define_(pointer p, integer w);\r
173 #define geq_word_define(p, w) geq_word_define_((pointer) (p), (integer) (w))\r
174 void save_for_after (halfword t);\r
175 void restore_trace (pointer p, const char * s);\r
176 void unsave (void);\r
177 void prepare_mag (void);\r
178 void token_show (pointer p);\r
179 void print_meaning (void);\r
180 void show_cur_cmd_chr (void);\r
181 void show_context (void);\r
182 void begin_token_list_(pointer p, quarterword t);\r
183 #define begin_token_list(p, t) begin_token_list_((pointer) (p), (quarterword) (t))\r
184 void end_token_list (void);\r
185 void back_input (void);\r
186 void back_error (void);\r
187 void ins_error (void);\r
188 void begin_file_reading (void);\r
189 void end_file_reading (void);\r
190 void clear_for_error_prompt (void);\r
191 void check_outer_validity (void);\r
192 void get_next (void);\r
193 void firm_up_the_line (void);\r
194 void get_token (void);\r
195 void macro_call (void);\r
196 void insert_relax (void);\r
197 void expand (void);\r
198 void get_x_token (void);\r
199 void x_token (void);\r
200 void scan_left_brace (void);\r
201 void scan_optional_equals (void);\r
202 boolean scan_keyword (const char * s);\r
203 void mu_error (void);\r
204 void scan_eight_bit_int (void);\r
205 void scan_char_num (void);\r
206 void scan_four_bit_int (void);\r
207 void scan_fifteen_bit_int (void);\r
208 void scan_twenty_seven_bit_int (void);\r
209 void scan_font_ident (void);\r
210 void find_font_dimen (boolean writing);\r
211 void scan_something_internal (small_number level, boolean negative);\r
212 void scan_int (void);\r
213 void scan_dimen (boolean mu, boolean inf, boolean shortcut);\r
214 void scan_glue (small_number level);\r
215 pointer scan_rule_spec (void);\r
216 pointer str_toks (pool_pointer b);\r
217 pointer the_toks (void);\r
218 void ins_the_toks (void);\r
219 void conv_toks (void);\r
220 pointer scan_toks (boolean macro_def, boolean xpand);\r
221 void read_toks (integer n, pointer r);\r
222 void pass_text (void);\r
223 void change_if_limit (small_number l, pointer p);\r
224 void conditional (void);\r
225 void begin_name (void);\r
226 boolean more_name (ASCII_code c);\r
227 void end_name (void);\r
228 void pack_file_name (str_number n, str_number a, str_number e);\r
229 void pack_buffered_name_(small_number n, integer a, integer b);\r
230 #define pack_buffered_name(n, a, b) pack_buffered_name_((small_number) (n), (integer) (a), (integer) (b))\r
231 str_number make_name_string (void);\r
232 str_number a_make_name_string_(void);\r
233 #define a_make_name_string(f) a_make_name_string_()\r
234 str_number b_make_name_string_(void);\r
235 #define b_make_name_string(f) b_make_name_string_()\r
236 str_number w_make_name_string_(void);\r
237 #define w_make_name_string(f) w_make_name_string_()\r
238 void scan_file_name (void);\r
239 void pack_job_name_(str_number s);\r
240 #define pack_job_name(s) pack_job_name_(make_string_pool((const char *) (s)))\r
241 void prompt_file_name_(const char * s, str_number e);\r
242 #define prompt_file_name(s, e) prompt_file_name_((const char *) s, make_string_pool((const char*) e))\r
243 void open_log_file (void);\r
244 void start_input (void);\r
245 internal_font_number read_font_info (pointer u, str_number nom, str_number arie, scaled s);\r
246 void char_warning_(internal_font_number f, eight_bits c);\r
247 #define char_warning(f, c) char_warning_((internal_font_number) (f), (eight_bits) (c))\r
248 pointer new_character_(internal_font_number f, eight_bits c);\r
249 #define new_character(f, c) new_character_((internal_font_number) (f), (eight_bits) (c))\r
250 void dvi_swap (void);\r
251 void dvi_four_(integer x);\r
252 #define dvi_four(x) dvi_four_((integer) (x))\r
253 void dvi_pop_(integer l);\r
254 #define dvi_pop(l) dvi_pop_((integer) (l))\r
255 void dvi_font_def (internal_font_number f);\r
256 void movement (scaled w, eight_bits o);\r
257 void special_out (pointer p);\r
258 void hlist_out (void);\r
259 void vlist_out (void);\r
260 void pdf_ship_out (pointer p);\r
261 void ship_out (pointer p);\r
262 void prune_movements (integer l);\r
263 void write_out (pointer p);\r
264 void out_what (pointer p);\r
265 void scan_spec (group_code c, boolean three_codes);\r
266 pointer hpack_(pointer p, scaled w, small_number m);\r
267 #define hpack(p, w, m) hpack_((pointer) (p), (scaled) (w), (small_number) (m))\r
268 pointer vpackage_(pointer p, scaled h, small_number m, scaled l);\r
269 #define vpackage(p, h, m, l) vpackage_((pointer) (p), (scaled) (h), (small_number) (m), (scaled) (l))\r
270 void append_to_vlist (pointer b);\r
271 pointer new_noad (void);\r
272 pointer new_style (small_number s);\r
273 pointer new_choice (void);\r
274 void show_info (void);\r
275 pointer fraction_rule (scaled t);\r
276 pointer overbar (pointer b, scaled k, scaled t);\r
277 pointer char_box (internal_font_number f, quarterword c);\r
278 void stack_into_box (pointer b, internal_font_number f, quarterword c);\r
279 scaled height_plus_depth (internal_font_number f, quarterword c);\r
280 pointer var_delimiter (pointer d, small_number s, scaled v);\r
281 pointer rebox (pointer b, scaled w);\r
282 pointer math_glue (pointer g, scaled m);\r
283 void math_kern (pointer p, scaled m);\r
284 void flush_math (void);\r
285 pointer clean_box (pointer p, small_number s);\r
286 void fetch (pointer a);\r
287 void make_over (pointer q);\r
288 void make_under (pointer q);\r
289 void make_vcenter (pointer q);\r
290 void make_radical (pointer q);\r
291 void make_math_accent (pointer q);\r
292 void make_fraction (pointer q);\r
293 scaled make_op (pointer q);\r
294 void make_ord (pointer q);\r
295 void make_scripts (pointer q, scaled delta);\r
296 small_number make_left_right (pointer q, small_number style, scaled max_d, scaled max_h);\r
297 void mlist_to_hlist (void);\r
298 void push_alignment (void);\r
299 void pop_alignment (void);\r
300 void get_preamble_token (void);\r
301 void init_align (void);\r
302 void init_span (pointer p);\r
303 void init_row (void);\r
304 void init_col (void);\r
305 boolean fin_col (void);\r
306 void fin_row (void);\r
307 void fin_align (void);\r
308 void align_peek (void);\r
309 pointer finite_shrink (pointer p);\r
310 void try_break (integer pi, small_number breaktype);\r
311 void post_line_break (integer final_widow_penalty);\r
312 small_number reconstitute (small_number j, small_number n, halfword bchar, halfword hchar);\r
313 void hyphenate (void);\r
314 trie_op_code new_trie_op (small_number d, small_number n, trie_op_code v);\r
315 trie_pointer trie_node (trie_pointer p);\r
316 trie_pointer compress_trie (trie_pointer p);\r
317 void first_fit (trie_pointer p);\r
318 void trie_pack (trie_pointer p);\r
319 void trie_fix (trie_pointer p);\r
320 void new_patterns (void);\r
321 void init_trie (void);\r
322 void line_break (integer final_widow_penalty);\r
323 void new_hyph_exceptions (void);\r
324 pointer prune_page_top (pointer p);\r
325 pointer vert_break (pointer p, scaled h, scaled d);\r
326 pointer vsplit (eight_bits n, scaled h);\r
327 void print_totals (void);\r
328 void freeze_page_specs (small_number s);\r
329 void box_error (eight_bits n);\r
330 void ensure_vbox_(eight_bits n);\r
331 #define ensure_vbox(n) ensure_vbox_((eight_bits) (n))\r
332 void fire_up (pointer c);\r
333 void build_page (void);\r
334 void app_space (void);\r
335 void insert_dollar_sign (void);\r
336 void you_cant (void);\r
337 void report_illegal_case (void);\r
338 boolean privileged (void);\r
339 boolean its_all_over (void);\r
340 void append_glue (void);\r
341 void append_kern (void);\r
342 void off_save (void);\r
343 void extra_right_brace (void);\r
344 void normal_paragraph (void);\r
345 void box_end (integer box_content);\r
346 void begin_box (integer box_content);\r
347 void scan_box_(integer box_content);\r
348 #define scan_box(box_context) scan_box_((integer) (box_context))\r
349 void package (small_number c);\r
350 small_number norm_min (integer h);\r
351 void new_graf (boolean indented);\r
352 void indent_in_hmode (void);\r
353 void head_for_vmode (void);\r
354 void end_graf (void);\r
355 void begin_insert_or_adjust (void);\r
356 void make_mark (void);\r
357 void append_penalty (void);\r
358 void delete_last (void);\r
359 void unpackage (void);\r
360 void append_italic_correction (void);\r
361 void append_discretionary (void);\r
362 void build_discretionary (void);\r
363 void make_accent (void);\r
364 void align_error (void);\r
365 void noalign_error (void);\r
366 void omit_error (void);\r
367 void do_endv (void);\r
368 void cs_error (void);\r
369 void push_math (group_code c);\r
370 void init_math (void);\r
371 void start_eq_no (void);\r
372 void scan_math (pointer p);\r
373 void set_math_char_(integer c);\r
374 #define set_math_char(c) set_math_char_((integer) (c))\r
375 void math_limit_switch(void);\r
376 void scan_delimiter_(pointer p, boolean r);\r
377 #define scan_delimiter(p, r) scan_delimiter_((pointer) (p), (boolean) (r))\r
378 void math_radical (void);\r
379 void math_ac (void);\r
380 void append_choices (void);\r
381 pointer fin_mlist (pointer p);\r
382 void build_choices (void);\r
383 void sub_sup (void);\r
384 void math_fraction (void);\r
385 void math_left_right (void);\r
386 void after_math (void);\r
387 void resume_after_display (void);\r
388 void get_r_token (void);\r
389 void trap_zero_glue (void);\r
390 void do_register_command (small_number a);\r
391 void alter_aux (void);\r
392 void alter_prev_graf (void);\r
393 void alter_page_so_far (void);\r
394 void alter_integer (void);\r
395 void alter_box_dimen (void);\r
396 void new_font (small_number a);\r
397 void new_interaction (void);\r
398 void prefixed_command (void);\r
399 void do_assignments (void);\r
400 void open_or_close_in (void);\r
401 void issue_message (void);\r
402 void shift_case (void);\r
403 void show_whatever (void);\r
404 void store_fmt_file (void);\r
405 void new_whatsit_(small_number s, small_number w);\r
406 #define new_whatsit(s, w) new_whatsit_((small_number) (s), (small_number) (w))\r
407 void new_write_whatsit (small_number w);\r
408 void do_extension (void);\r
409 void fix_language (void);\r
410 void handle_right_brace (void);\r
411 void main_control (void);\r
412 void give_err_help (void);\r
413 boolean open_fmt_file (void);\r
414 boolean load_fmt_file (void);\r
415 void close_files_and_terminate (void);\r
416 void final_cleanup (void);\r
417 void init_prim (void);\r
418 void debug_help (void);\r
419 void fix_date_and_time (void);\r
420 void print_banner (void);\r
421 \r
422 int main_program (void);\r
423 int main_init (int ac, char ** av);\r
424 \r
425 #endif