32 |
|
|
33 |
#include "loadinfo.h" |
#include "loadinfo.h" |
34 |
|
|
35 |
#include "gettext.h" /* Get nls_uint32. */ |
#include "gmo.h" /* Get nls_uint32. */ |
36 |
|
|
37 |
/* @@ end of prolog @@ */ |
/* @@ end of prolog @@ */ |
38 |
|
|
39 |
#ifndef PARAMS |
#ifndef PARAMS |
40 |
# if __STDC__ |
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES |
41 |
# define PARAMS(args) args |
# define PARAMS(args) args |
42 |
# else |
# else |
43 |
# define PARAMS(args) () |
# define PARAMS(args) () |
72 |
#endif |
#endif |
73 |
|
|
74 |
|
|
|
/* This is the representation of the expressions to determine the |
|
|
plural form. */ |
|
|
struct expression |
|
|
{ |
|
|
int nargs; /* Number of arguments. */ |
|
|
enum operator |
|
|
{ |
|
|
/* Without arguments: */ |
|
|
var, /* The variable "n". */ |
|
|
num, /* Decimal number. */ |
|
|
/* Unary operators: */ |
|
|
lnot, /* Logical NOT. */ |
|
|
/* Binary operators: */ |
|
|
mult, /* Multiplication. */ |
|
|
divide, /* Division. */ |
|
|
module, /* Module operation. */ |
|
|
plus, /* Addition. */ |
|
|
minus, /* Subtraction. */ |
|
|
less_than, /* Comparison. */ |
|
|
greater_than, /* Comparison. */ |
|
|
less_or_equal, /* Comparison. */ |
|
|
greater_or_equal, /* Comparison. */ |
|
|
equal, /* Comparision for equality. */ |
|
|
not_equal, /* Comparision for inequality. */ |
|
|
land, /* Logical AND. */ |
|
|
lor, /* Logical OR. */ |
|
|
/* Ternary operators: */ |
|
|
qmop /* Question mark operator. */ |
|
|
} operation; |
|
|
union |
|
|
{ |
|
|
unsigned long int num; /* Number value for `num'. */ |
|
|
struct expression *args[3]; /* Up to three arguments. */ |
|
|
} val; |
|
|
}; |
|
|
|
|
|
/* This is the data structure to pass information to the parser and get |
|
|
the result in a thread-safe way. */ |
|
|
struct parse_args |
|
|
{ |
|
|
const char *cp; |
|
|
struct expression *res; |
|
|
}; |
|
|
|
|
|
|
|
75 |
/* The representation of an opened message catalog. */ |
/* The representation of an opened message catalog. */ |
76 |
struct loaded_domain |
struct loaded_domain |
77 |
{ |
{ |
122 |
This variable is part of the external ABI of the GNU libintl. */ |
This variable is part of the external ABI of the GNU libintl. */ |
123 |
extern int _nl_msg_cat_cntr; |
extern int _nl_msg_cat_cntr; |
124 |
|
|
125 |
|
#ifndef _LIBC |
126 |
|
const char *_nl_locale_name PARAMS ((int category, const char *categoryname)); |
127 |
|
#endif |
128 |
|
|
129 |
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, |
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, |
130 |
char *__locale, |
char *__locale, |
131 |
const char *__domainname, |
const char *__domainname, |
196 |
const char *__codeset)); |
const char *__codeset)); |
197 |
#endif |
#endif |
198 |
|
|
|
#ifdef _LIBC |
|
|
extern void __gettext_free_exp PARAMS ((struct expression *exp)) |
|
|
internal_function; |
|
|
extern int __gettextparse PARAMS ((void *arg)); |
|
|
#else |
|
|
extern void gettext_free_exp__ PARAMS ((struct expression *exp)) |
|
|
internal_function; |
|
|
extern int gettextparse__ PARAMS ((void *arg)); |
|
|
#endif |
|
|
|
|
199 |
/* @@ begin of epilog @@ */ |
/* @@ begin of epilog @@ */ |
200 |
|
|
201 |
#endif /* gettextP.h */ |
#endif /* gettextP.h */ |