(root)/
gettext-0.22.4/
gettext-tools/
src/
x-c.h
       1  /* xgettext C/C++/ObjectiveC backend.
       2     Copyright (C) 2001-2003, 2006, 2009, 2014-2015, 2018, 2020, 2023 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 <https://www.gnu.org/licenses/>.  */
      17  
      18  
      19  #include <stdio.h>
      20  
      21  #include "message.h"
      22  #include "xg-arglist-context.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, NULL,                                \
      45                          &flag_table_c,                                  \
      46                          &formatstring_c, NULL },                        \
      47    { "C++",              extract_cxx, NULL,                              \
      48                          &flag_table_c,                                  \
      49                          &formatstring_c, &formatstring_cplusplus_brace }, \
      50    { "ObjectiveC",       extract_objc, NULL,                             \
      51                          &flag_table_objc,                               \
      52                          &formatstring_c, &formatstring_objc },          \
      53    { "GCC-source",       extract_c, NULL,                                \
      54                          &flag_table_gcc_internal,                       \
      55                          &formatstring_gcc_internal, &formatstring_gfc_internal }, \
      56  
      57  /* Scan a 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 a C++ file and add its translatable strings to mdlp.  */
      63  extern void extract_cxx (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  /* Scan an ObjectiveC file and add its translatable strings to mdlp.  */
      68  extern void extract_objc (FILE *fp, const char *real_filename,
      69                            const char *logical_filename,
      70                            flag_context_list_table_ty *flag_table,
      71                            msgdomain_list_ty *mdlp);
      72  
      73  
      74  /* Handling of options specific to this language.  */
      75  
      76  extern void x_c_extract_all (void);
      77  
      78  extern void x_c_keyword (const char *name);
      79  extern void x_objc_keyword (const char *name);
      80  
      81  extern void x_c_trigraphs (void);
      82  
      83  extern void activate_additional_keywords_kde (void);
      84  
      85  extern void init_flag_table_c (void);
      86  extern void init_flag_table_objc (void);
      87  extern void init_flag_table_gcc_internal (void);
      88  extern void init_flag_table_kde (void);
      89  
      90  
      91  #ifdef __cplusplus
      92  }
      93  #endif