| /* xgettext C/C++/ObjectiveC backend. |
| Copyright (C) 2001-2003, 2006, 2009, 2014-2015, 2018, 2020 Free Software Foundation, Inc. |
| Written by Bruno Haible <haible@clisp.cons.org>, 2001. |
| |
| This program is free software: you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
| |
| |
| #include <stdio.h> |
| |
| #include "message.h" |
| #include "xg-arglist-context.h" |
| |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| #define EXTENSIONS_C \ |
| { "c", "C" }, \ |
| { "h", "C" }, \ |
| { "C", "C++" }, \ |
| { "c++", "C++" }, \ |
| { "cc", "C++" }, \ |
| { "cxx", "C++" }, \ |
| { "cpp", "C++" }, \ |
| { "hh", "C++" }, \ |
| { "hxx", "C++" }, \ |
| { "hpp", "C++" }, \ |
| { "m", "ObjectiveC" }, \ |
| |
| #define SCANNERS_C \ |
| { "C", extract_c, NULL, \ |
| &flag_table_c, \ |
| &formatstring_c, NULL }, \ |
| { "C++", extract_cxx, NULL, \ |
| &flag_table_c, \ |
| &formatstring_c, NULL }, \ |
| { "ObjectiveC", extract_objc, NULL, \ |
| &flag_table_objc, \ |
| &formatstring_c, &formatstring_objc }, \ |
| { "GCC-source", extract_c, NULL, \ |
| &flag_table_gcc_internal, \ |
| &formatstring_gcc_internal, &formatstring_gfc_internal }, \ |
| |
| /* Scan a C file and add its translatable strings to mdlp. */ |
| extern void extract_c (FILE *fp, const char *real_filename, |
| const char *logical_filename, |
| flag_context_list_table_ty *flag_table, |
| msgdomain_list_ty *mdlp); |
| /* Scan a C++ file and add its translatable strings to mdlp. */ |
| extern void extract_cxx (FILE *fp, const char *real_filename, |
| const char *logical_filename, |
| flag_context_list_table_ty *flag_table, |
| msgdomain_list_ty *mdlp); |
| /* Scan an ObjectiveC file and add its translatable strings to mdlp. */ |
| extern void extract_objc (FILE *fp, const char *real_filename, |
| const char *logical_filename, |
| flag_context_list_table_ty *flag_table, |
| msgdomain_list_ty *mdlp); |
| |
| |
| /* Handling of options specific to this language. */ |
| |
| extern void x_c_extract_all (void); |
| |
| extern void x_c_keyword (const char *name); |
| extern void x_objc_keyword (const char *name); |
| |
| extern void x_c_trigraphs (void); |
| |
| extern void activate_additional_keywords_kde (void); |
| |
| extern void init_flag_table_c (void); |
| extern void init_flag_table_objc (void); |
| extern void init_flag_table_gcc_internal (void); |
| extern void init_flag_table_kde (void); |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |