diff options
Diffstat (limited to 'source/luametatex/source/tex/texmathcodes.h')
-rw-r--r-- | source/luametatex/source/tex/texmathcodes.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/source/luametatex/source/tex/texmathcodes.h b/source/luametatex/source/tex/texmathcodes.h new file mode 100644 index 000000000..a45132171 --- /dev/null +++ b/source/luametatex/source/tex/texmathcodes.h @@ -0,0 +1,77 @@ +/* + See license.txt in the root of this project. +*/ + +# ifndef LMT_MATHCODES_H +# define LMT_MATHCODES_H + +/*tex + We keep this special value which is used in |0x8000| so we have no real problem with 8 being + some other class as well. The 8 here is not really a class. +*/ + +# define active_math_class_value 8 + +typedef enum mathcode_codes { + no_mathcode, + tex_mathcode, + umath_mathcode, + /* umathnum_mathcode, */ + mathspec_mathcode +} mathcode_codes; + +typedef struct mathcodeval { + short class_value; + short family_value; + int character_value; +} mathcodeval; + +typedef struct mathdictval { + unsigned short properties; // 1=char 2=open 4=close 8=middle 16=middle==class + unsigned short group; + unsigned int index; +} mathdictval; + +# undef small /* defined in some microsoft library */ + +/*tex + Until we drop 8 bit font support we keep the small and large distinction but it might + go away some day as it wastes memory. +*/ + +typedef struct delcodeval { + mathcodeval small; + mathcodeval large; +} delcodeval; + +typedef struct mathspecval { + mathcodeval code; + mathdictval dict; +} mathspecval; + +extern void tex_set_math_code (int n, mathcodeval v, int gl); +extern mathcodeval tex_get_math_code (int n); +extern int tex_get_math_code_number (int n); +extern mathcodeval tex_no_math_code (void); + +extern void tex_set_del_code (int n, delcodeval v, int gl); +extern delcodeval tex_get_del_code (int n); +extern int tex_get_del_code_number (int n); +extern int tex_has_del_code (delcodeval v); +extern delcodeval tex_no_del_code (void); + +extern mathcodeval tex_scan_mathchar (int extcode); +extern mathdictval tex_scan_mathdict (void); +extern mathcodeval tex_scan_delimiter_as_mathchar (int extcode); +extern mathcodeval tex_mathchar_from_integer (int value, int extcode); +extern mathcodeval tex_mathchar_from_spec (int value); + +extern void tex_show_mathcode_value (mathcodeval d, int extcode); +extern void tex_unsave_math_codes (int grouplevel); +extern void tex_initialize_math_codes (void); +extern void tex_dump_math_codes (dumpstream f); +extern void tex_undump_math_codes (dumpstream f); + +extern void tex_free_math_codes (void); + +# endif |