Imported Upstream version 1.22.4
[platform/upstream/groff.git] / src / preproc / eqn / eqn.h
1 // -*- C++ -*-
2 /* Copyright (C) 1989-2018 Free Software Foundation, Inc.
3      Written by James Clark (jjc@jclark.com)
4
5 This file is part of groff.
6
7 groff is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 groff is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
19
20 #include "lib.h"
21
22 #include <assert.h>
23 #include <stdlib.h>
24 #include <errno.h>
25 #include "cset.h"
26 #include "errarg.h"
27 #include "error.h"
28
29 #include "box.h"
30
31 typedef enum {troff, mathml} eqnmode_t;
32
33 extern char start_delim;
34 extern char end_delim;
35 extern int non_empty_flag;
36 extern int inline_flag;
37 extern int draw_flag;
38 extern int one_size_reduction_flag;
39 extern int compatible_flag;
40 extern int nroff;
41 extern eqnmode_t output_format;
42 extern int xhtml;
43
44 void init_lex(const char *str, const char *filename, int lineno);
45 void lex_error(const char *message,
46                const errarg &arg1 = empty_errarg,
47                const errarg &arg2 = empty_errarg,
48                const errarg &arg3 = empty_errarg);
49
50 void init_table(const char *device);
51
52 // prefix for all registers, strings, macros
53 #define PREFIX "0"