/* Value distribution of plural form expressions. Copyright (C) 2001-2008, 2015 Free Software Foundation, Inc. Written by Bruno Haible , 2001-2005. 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 . */ #ifndef _PLURAL_DISTRIB_H #define _PLURAL_DISTRIB_H /* Definition of 'struct expression'. */ #include "plural-exp.h" #ifdef __cplusplus extern "C" { #endif /* The value distribution of a plural formula. */ struct plural_distribution { /* The plural formula as a parsed expression. */ const struct expression *expr; /* OFTEN is either NULL or an array of nplurals elements, OFTEN[j] being true if the value j appears to be assumed infinitely often by the plural formula. */ const unsigned char *often; /* The length of the OFTEN array. */ unsigned long often_length; /* A function which evaluates the plural formula for min <= n <= max and returns the estimated number of times the value j was assumed. */ unsigned int (*histogram) (const struct plural_distribution *self, int min, int max, unsigned long j); }; #ifdef __cplusplus } #endif #endif /* _PLURAL_DISTRIB_H */