OSDN Git Service

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