numbersInternals.inc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 <[email protected]> and Daniel Veillard
  8. *)
  9. {$IFDEF TYPE}
  10. (**
  11. * xsltNumberData:
  12. *
  13. * This data structure is just a wrapper to pass xsl:number data in.
  14. *)
  15. xsltNumberDataPtr = ^xsltNumberData;
  16. xsltNumberData = record
  17. level: xmlCharPtr;
  18. count: xmlCharPtr;
  19. from: xmlCharPtr;
  20. value: xmlCharPtr;
  21. format: xmlCharPtr;
  22. has_format: cint;
  23. digitsPerGroup: cint;
  24. groupingCharacter: cint;
  25. groupingCharacterLen: cint;
  26. doc: xmlDocPtr;
  27. node: xmlNodePtr;
  28. countPat: xsltCompMatchPtr;
  29. fromPat: xsltCompMatchPtr;
  30. (*
  31. * accelerators
  32. *)
  33. end;
  34. (**
  35. * xsltFormatNumberInfo,:
  36. *
  37. * This data structure lists the various parameters needed to format numbers.
  38. *)
  39. xsltFormatNumberInfoPtr = ^xsltFormatNumberInfo;
  40. xsltFormatNumberInfo = record
  41. integer_hash: cint; (* Number of '#' in integer part *)
  42. integer_digits: cint; (* Number of '0' in integer part *)
  43. frac_digits: cint; (* Number of '0' in fractional part *)
  44. frac_hash: cint; (* Number of '#' in fractional part *)
  45. group: cint; (* Number of chars per display 'group' *)
  46. multiplier: cint; (* Scaling for percent or permille *)
  47. add_decimal: Byte; (* Flag for whether decimal point appears in pattern *)
  48. is_multiplier_set: Byte; (* Flag to catch multiple occurences of percent/permille *)
  49. is_negative_pattern: Byte; (* Flag for processing -ve prefix/suffix *)
  50. end;
  51. {$ENDIF} {TYPE}