244e528b0748cd349c1481d3856aff5990c98e8a
[pspp-builds.git] / src / ui / syntax-gen.h
1 /* PSPPIRE - a graphical user interface for PSPP.
2    Copyright (C) 2007, 2008 Free Software Foundation, Inc.
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 3 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,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU 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, see <http://www.gnu.org/licenses/>. */
16
17 #ifndef SYNTAX_GEN_H
18 #define SYNTAX_GEN_H 1
19
20 /* These functions aid in composing PSPP syntax. */
21
22 #include <stdarg.h>
23 #include <stddef.h>
24 #include <libpspp/compiler.h>
25 #include <libpspp/str.h>
26
27 struct fmt_spec;
28 struct substring;
29 struct string;
30 union value;
31
32 void syntax_gen_string (struct string *output, struct substring in);
33 void syntax_gen_number (struct string *output,
34                         double, const struct fmt_spec *format);
35 void syntax_gen_value (struct string *output, const union value *value,
36                        int width, const struct fmt_spec *format);
37 void syntax_gen_num_range (struct string *output, double low, double high,
38                            const struct fmt_spec *format);
39
40 void syntax_gen_pspp_valist (struct string *output, const char *format,
41                              va_list)
42   PRINTF_FORMAT (2, 0);
43 void syntax_gen_pspp (struct string *output, const char *format, ...)
44   PRINTF_FORMAT (2, 3);
45
46 #endif /* format-syntax.h */