12 #include "cl_integer.h"
14 static const char * const cl_format_ordinal_ones [20] = {
37 static const char * const cl_format_ordinal_tens [10] = {
50 void format_ordinal (cl_ostream stream, const cl_I& argument)
53 fprint(stream,"zeroth");
55 var cl_I arg = argument;
57 fprint(stream,"minus ");
60 var cl_I_div_t div = floor2(arg,100);
61 var const cl_I& hundreds = div.quotient;
62 var uintL tens_and_ones = cl_I_to_UL(div.remainder);
64 format_cardinal(stream,hundreds*100);
65 if (tens_and_ones == 0)
68 var uintL tens = floor(tens_and_ones,10);
69 var uintL ones = tens_and_ones % 10;
71 fprintchar(stream,' ');
73 fprint(stream,cl_format_ordinal_ones[tens_and_ones]);
75 fprint(stream,cl_format_ordinal_tens[tens]);
77 fprint(stream,cl_format_tens[tens]);
78 fprintchar(stream,'-');
79 fprint(stream,cl_format_ordinal_ones[ones]);