2 * Copyright (c) 2014 - 2017 Steffen (Daode) Nurpmeso <steffen@sdaoden.eu>.
4 * Copyright (C) 1989 - 1992, 2000, 2001, 2003, 2005
5 * Free Software Foundation, Inc.
6 * Written by James Clark (jjc@jclark.com)
8 * This is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License as published by the Free
10 * Software Foundation; either version 2, or (at your option) any later
13 * This is distributed in the hope that it will be useful, but WITHOUT ANY
14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 * You should have received a copy of the GNU General Public License along
19 * with groff; see the file COPYING. If not, write to the Free Software
20 * Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA.
26 #include "pic-config.h"
36 #include "file_case.h"
40 #include "stringclass.h"
43 #ifndef M_SQRT2 // FIXME lib.h
44 #define M_SQRT2 1.41421356237309504880
47 #ifndef M_PI // FIXME lib.h
48 #define M_PI 3.14159265358979323846
58 virtual int get() = 0;
59 virtual int peek() = 0;
60 virtual int get_location(const char **, int *);
61 friend class input_stack
;
62 friend class copy_rest_thru_input
;
76 file_input(file_case
*, const char *);
80 int get_location(const char **, int *);
83 void lex_init(input
*);
84 int get_location(char **, int *);
86 void do_copy(const char *file
);
90 void lex_error(const char *message
,
91 const errarg
&arg1
= empty_errarg
,
92 const errarg
&arg2
= empty_errarg
,
93 const errarg
&arg3
= empty_errarg
);
95 void lex_warning(const char *message
,
96 const errarg
&arg1
= empty_errarg
,
97 const errarg
&arg2
= empty_errarg
,
98 const errarg
&arg3
= empty_errarg
);
102 extern int flyback_flag
;
103 extern int command_char
;
104 // zero_length_line_flag is non-zero if zero-length lines are drawn
105 // as dots by the output device
106 extern int zero_length_line_flag
;
107 extern int driver_extension_flag
;
108 extern int compatible_flag
;
109 extern int safer_flag
;
110 extern char *graphname
;