diff options
author | Hans Hagen <pragma@wxs.nl> | 2022-09-16 15:53:42 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2022-09-16 15:53:42 +0200 |
commit | c161b7d6fe142231346cc1844e6e27c0ab7718c1 (patch) | |
tree | 3fd877b8986137703e987e4651a2db8e946a0f72 /source/luametatex/source/tex/texmaincontrol.h | |
parent | e94fa4dc30ec28a6727aa85e17aaac18b76aeadb (diff) | |
download | context-c161b7d6fe142231346cc1844e6e27c0ab7718c1.tar.gz |
2022-09-16 14:41:00
Diffstat (limited to 'source/luametatex/source/tex/texmaincontrol.h')
-rw-r--r-- | source/luametatex/source/tex/texmaincontrol.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/source/luametatex/source/tex/texmaincontrol.h b/source/luametatex/source/tex/texmaincontrol.h new file mode 100644 index 000000000..b71aaedac --- /dev/null +++ b/source/luametatex/source/tex/texmaincontrol.h @@ -0,0 +1,76 @@ +/* + See license.txt in the root of this project. +*/ + +# ifndef LMT_MAINCONTROL_H +# define LMT_MAINCONTROL_H + +/*tex + + To handle the execution state of |main_control|'s eternal loop, an extra global variable is + used, along with a macro to define its values. + +*/ + +typedef enum control_states { + goto_next_state, + goto_skip_token_state, + goto_return_state, +} control_states; + +typedef struct main_control_state_info { + control_states control_state; + int local_level; + halfword after_token; + halfword after_tokens; + halfword last_par_context; + halfword loop_iterator; + halfword loop_nesting; + halfword quit_loop; +} main_control_state_info; + +typedef enum saved_discretionary_items { + saved_discretionary_item_component = 0, + saved_discretionary_n_of_items = 1, +} saved_discretionary_items; + +extern main_control_state_info lmt_main_control_state; + +extern void tex_initialize_variables (void); +extern int tex_main_control (void); + +extern void tex_normal_paragraph (int context); +extern void tex_begin_paragraph (int doindent, int context); +extern void tex_end_paragraph (int group, int context); +extern int tex_wrapped_up_paragraph (int context); + +extern void tex_insert_paragraph_token (void); + +extern int tex_in_privileged_mode (void); +extern void tex_you_cant_error (const char *helpinfo); + +extern void tex_off_save (void); + +extern halfword tex_local_scan_box (void); +extern void tex_box_end (int boxcontext, halfword boxnode, scaled shift, halfword mainclass); + +extern void tex_get_r_token (void); + +extern void tex_begin_local_control (void); +extern void tex_end_local_control (void); +extern void tex_local_control (int obeymode); +extern void tex_local_control_message (const char *s); +extern void tex_page_boundary_message (const char *s, halfword boundary); + +extern void tex_inject_text_or_line_dir (int d, int check_glue); + +extern void tex_run_prefixed_command (void); + +extern void tex_handle_assignments (void); /*tex Used in math. */ + +extern void tex_assign_internal_int_value (int a, halfword p, int val); +extern void tex_assign_internal_attribute_value (int a, halfword p, int val); +extern void tex_assign_internal_dimen_value (int a, halfword p, int val); +extern void tex_assign_internal_skip_value (int a, halfword p, int val); + +# endif |