1 /* 2 * Summary: Implementation of the XSLT number functions 3 * Description: Implementation of the XSLT number functions 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Bjorn Reese <breese@users.sourceforge.net> and Daniel Veillard 8 */ 9 10 #ifndef __XML_XSLT_NUMBERSINTERNALS_H__ 11 #define __XML_XSLT_NUMBERSINTERNALS_H__ 12 13 #include <libxml/tree.h> 14 #include "xsltexports.h" 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 struct _xsltCompMatch; 21 22 /** 23 * xsltNumberData: 24 * 25 * This data structure is just a wrapper to pass xsl:number data in. 26 */ 27 typedef struct _xsltNumberData xsltNumberData; 28 typedef xsltNumberData *xsltNumberDataPtr; 29 30 struct _xsltNumberData { 31 const xmlChar *level; 32 const xmlChar *count; 33 const xmlChar *from; 34 const xmlChar *value; 35 const xmlChar *format; 36 int has_format; 37 int digitsPerGroup; 38 int groupingCharacter; 39 int groupingCharacterLen; 40 xmlDocPtr doc; 41 xmlNodePtr node; 42 struct _xsltCompMatch *countPat; 43 struct _xsltCompMatch *fromPat; 44 45 /* 46 * accelerators 47 */ 48 }; 49 50 /** 51 * xsltFormatNumberInfo,: 52 * 53 * This data structure lists the various parameters needed to format numbers. 54 */ 55 typedef struct _xsltFormatNumberInfo xsltFormatNumberInfo; 56 typedef xsltFormatNumberInfo *xsltFormatNumberInfoPtr; 57 58 struct _xsltFormatNumberInfo { 59 int integer_hash; /* Number of '#' in integer part */ 60 int integer_digits; /* Number of '0' in integer part */ 61 int frac_digits; /* Number of '0' in fractional part */ 62 int frac_hash; /* Number of '#' in fractional part */ 63 int group; /* Number of chars per display 'group' */ 64 int multiplier; /* Scaling for percent or permille */ 65 char add_decimal; /* Flag for whether decimal point appears in pattern */ 66 char is_multiplier_set; /* Flag to catch multiple occurences of percent/permille */ 67 char is_negative_pattern;/* Flag for processing -ve prefix/suffix */ 68 }; 69 70 #ifdef __cplusplus 71 } 72 #endif 73 #endif /* __XML_XSLT_NUMBERSINTERNALS_H__ */ 74