[Nickle]printf formatting codes
    Keith Packard 
    keithp@keithp.com
    Wed, 07 Mar 2001 10:55:17 -0800
    
    
  
Nickle currently uses a variety of different formatting codes for printing 
values, they're pretty randomly scattered through the alphabet and mean 
different things for different values.  We need to normalize their 
meaning and then fix the code.
Here's what we've got today:
	%b		base = 2
	%x		base = 16
	%X		base = 16
	%o		base = 8
int
	%c		print a character
	else		print using base
integer:
			print using base
	
rational:
	%v		numerator '/' denominator
	%f		integer '.' fraction
	%e		integer '.' fraction
	else		integer '.' fixed-part '{' repeating-part '}'
float:
	%e		mant 'E' exponent
	%f		integer '.' fraction
	else		choose between 'e' and 'f' depending on exponent
array
	%g		'[' dimensions ']' '{' contents '}'
	%v		'[' dimensions ']' '{' contents '}'
	else		contents
string
	%s		contents
	else		'"' escaped-contents '"'	
struct
	%v		'{' name = value ',' ... '}'
	else		name = value ...
It seems like there should be some general requirements:
	%v		should print in a format parsable by the lexer
	%e		should print numbers in exponential form
	%f		should print numbers in non-exponential form
	%d		should probably be like %f?  Or integer part only?
	%g		should print in a human readable format
	%c		should print a character
Should the printing function typecheck the arguments against the format 
letter?
-keith