Imported Upstream version 0.18.3.2
[platform/upstream/gettext.git] / gettext-tools / src / x-c.h
1 /* xgettext C/C++/ObjectiveC backend.
2    Copyright (C) 2001-2003, 2006, 2009 Free Software Foundation, Inc.
3    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
4
5    This program is free software: you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17
18
19 #include <stdio.h>
20
21 #include "message.h"
22 #include "xgettext.h"
23
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29
30 #define EXTENSIONS_C \
31   { "c",      "C"     },                                                \
32   { "h",      "C"     },                                                \
33   { "C",      "C++"   },                                                \
34   { "c++",    "C++"   },                                                \
35   { "cc",     "C++"   },                                                \
36   { "cxx",    "C++"   },                                                \
37   { "cpp",    "C++"   },                                                \
38   { "hh",     "C++"   },                                                \
39   { "hxx",    "C++"   },                                                \
40   { "hpp",    "C++"   },                                                \
41   { "m",      "ObjectiveC" },                                           \
42
43 #define SCANNERS_C \
44   { "C",                extract_c,                                      \
45                         &flag_table_c,                                  \
46                         &formatstring_c, NULL },                        \
47   { "C++",              extract_c,                                      \
48                         &flag_table_c,                                  \
49                         &formatstring_c, NULL },                        \
50   { "ObjectiveC",       extract_objc,                                   \
51                         &flag_table_objc,                               \
52                         &formatstring_c, &formatstring_objc },          \
53   { "GCC-source",       extract_c,                                      \
54                         &flag_table_gcc_internal,                       \
55                         &formatstring_gcc_internal, &formatstring_gfc_internal }, \
56
57 /* Scan a C/C++ file and add its translatable strings to mdlp.  */
58 extern void extract_c (FILE *fp, const char *real_filename,
59                        const char *logical_filename,
60                        flag_context_list_table_ty *flag_table,
61                        msgdomain_list_ty *mdlp);
62 /* Scan an ObjectiveC file and add its translatable strings to mdlp.  */
63 extern void extract_objc (FILE *fp, const char *real_filename,
64                           const char *logical_filename,
65                           flag_context_list_table_ty *flag_table,
66                           msgdomain_list_ty *mdlp);
67
68
69 /* Handling of options specific to this language.  */
70
71 extern void x_c_extract_all (void);
72
73 extern void x_c_keyword (const char *name);
74 extern void x_objc_keyword (const char *name);
75
76 extern void x_c_trigraphs (void);
77
78 extern void init_flag_table_c (void);
79 extern void init_flag_table_objc (void);
80 extern void init_flag_table_gcc_internal (void);
81
82
83 #ifdef __cplusplus
84 }
85 #endif