c2b59ea3bbad0436eb9ce7e5dcdebed08e1a17d9
[slovak-l10n] / ukeyboard / vkb_compiler.h
1 /*
2  *  Copyright (c) 2007-2008 Jiri Benc <jbenc@upir.cz>
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 version 2 as
6  *  published by the Free Software Foundation.
7  *
8  *  This program is distributed in the hope that it will be useful,
9  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  *  GNU General Public License for more details.
12  *
13  *  You should have received a copy of the GNU General Public License
14  *  along with this program; if not, write to the Free Software
15  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16  */
17
18 #ifndef _VKB_COMPILER_H
19 #define _VKB_COMPILER_H
20
21 struct compiler_ops {
22         /* return -1 on eof or if error occurred */
23         int (*get_line)(void *priv, void *buf, size_t size);
24         /* return -1 if error occurred; error callback is not called for
25          * write errors */
26         int (*write)(void *priv, void *buf, size_t size);
27         off_t (*tell)(void *priv);
28         void (*seek)(void *priv, off_t pos);
29         /* line is -1 if general error */
30         void (*error)(void *priv, int line, char *msg);
31         /* return -1 if the warning should be fatal */
32         int (*warning)(void *priv, int line, char *msg);
33         /* can be NULL; copy the string if you need it later */
34         void (*return_lang)(void *priv, char *lang);
35 };
36
37 int compile(struct compiler_ops *ops, void *priv);
38
39 #endif