1/* xgettext C/C++/ObjectiveC backend. 2 Copyright (C) 2001-2003, 2006 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 26extern "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, &formatstring_c, NULL }, \ 46 { "C++", extract_c, \ 47 &flag_table_c, &formatstring_c, NULL }, \ 48 { "ObjectiveC", extract_objc, \ 49 &flag_table_objc, &formatstring_c, &formatstring_objc }, \ 50 { "GCC-source", extract_c, \ 51 &flag_table_gcc_internal, &formatstring_gcc_internal, NULL }, \ 52 53/* Scan a C/C++ file and add its translatable strings to mdlp. */ 54extern void extract_c (FILE *fp, const char *real_filename, 55 const char *logical_filename, 56 flag_context_list_table_ty *flag_table, 57 msgdomain_list_ty *mdlp); 58/* Scan an ObjectiveC file and add its translatable strings to mdlp. */ 59extern void extract_objc (FILE *fp, const char *real_filename, 60 const char *logical_filename, 61 flag_context_list_table_ty *flag_table, 62 msgdomain_list_ty *mdlp); 63 64 65/* Handling of options specific to this language. */ 66 67extern void x_c_extract_all (void); 68 69extern void x_c_keyword (const char *name); 70extern void x_objc_keyword (const char *name); 71 72extern void x_c_trigraphs (void); 73 74extern void init_flag_table_c (void); 75extern void init_flag_table_objc (void); 76extern void init_flag_table_gcc_internal (void); 77 78 79#ifdef __cplusplus 80} 81#endif 82