' "Macro for printing or creating nicely formatted strings. Table of Format mode characters: @ - modifier ` ! A - princ \" B # - gobble arg C - character $ D - fix % - crlfs E - (exponent) & - newline F - float ' G ( H - headed info ) I * - ignore J + K , - arg L - M . - set N / O - (octal) 0 - arg P - plural 1 - arg Q - quote 2 - arg R - cardinals, etc. 3 - arg S - prin1 4 - arg T - tabs 5 - arg U 6 - arg V 7 - arg W 8 - arg X - spaces 9 - arg Y : - modifier Z ; lsb lcb lab | - form feed = - set rsb rcb rab ^ ~ - tildes ? _ ^? " \ "~nD Takes any number and prints as a decimal integer. If no arg, print without leading spaces. If arg and it fits in, put in leading spaces; if it doesnt fit just print it. If second arg, use that (or first char of STRING of it if not a number) instead of space as a pad char." "~nO Like D but octal" PFIX #DECL ("VALUE" FIX FIX "OPTIONAL" FIX ) INDENT-TO T OUTCHAN % "IVXLCDM//" "???" ["thousand" "million" "billion" "trillion" "quadrillion" "quintillion" "sextillion" "septillion"] "th" " hundred" ["teen" "twenty" "thirty" "forty" "fifty" "sixty" "seventy" "eighty" "ninety"] ["teenth" "twentieth" "thirtieth" "fortieth" "fiftieth" "sixtieth" "seventieth" "eightieth" "ninetieth"] ["first" "second" "third" "fourth" "fifth" "sixth" "seventh" "eighth" "ninth"] ["one" "two" "three" "four" "five" "six" "seven" "eight" "nine" "ten" "eleven" "twelve" "thirteen" "fourteen" "fifteen" "sixteen" "seventeen" "eighteen" "nineteen"] "^?" PRINC NO-CONTROL-ARGUMENT? SET <14 . OUTCHAN> PFIX PFLOAT POBJ PHSTR1 PHSTR POBJ1 PCHAR PROMAN PCARDINAL PCRLFS "|X~" PCHARS PFRESH-LINE PCOLUMN PLURAL COLUMN-MARKER-NOT-ATOM FORMAT FIX NO-COMMAND QUOTED-ARG-NOT-FOUND TOO-FEW-ARGS]>> .GLUE > "~n,mF Floating point. Prints the number in a column n wide, with a fractional part m digits wide." )] 107>> "~nE Exponential notation" "~R cardinal/ordinal and Roman notation" )] 316>> FIX STRING ANY)] 427>> )] 520>> > \ "~nA Character string. If there is an n then pad the string with spaces on the right to make it n long. If it doesn't fit, ignore n. (A m n minpad padchar) as a control list element means pad to occupy at least m columns, or if longer than that to begin with, pad to occupy m+p*n columns for some nonnegative integer p. at least minpad pad characters are produced in any case (default if not supplied = 1). padchar is used for padding purposes (default if not supplied = space). if padchar is not a number, the first character in STRING of it is used. A mode can actually be used to PRINC anything, not just a string." > "~m,nH Princ string under a header" > "same as above, but right justify string" > "~S Prin1 an object. Just like ~A (including parameters) but uses PRIN1." > "~C One character, in any acceptable form. Control and meta bits print as alpha, beta, epsilon." )] 1181 >> "~n* Ignore the next n args. n defaults to 1." "~n% Insert n newlines. n defaults to 1." > "~n| Insert n formfeeds. n defaults to 1." "~nX Insert n spaces. n defaults to 1." "~n~ Insert n tildes. n defaults to 1." > "~& Perform the FRESH-LINE operation on the stream." > "~n,mT Tab to column n+pm, for p an integer >= 0." > "~Q Apply the next arg to no arguments. (Q ...) Apply the next arg to the (unevaluated) parameters following the Q." "~P Insert an 's', unless the next arg is 1." )] 1357>> \ "Here is where the format macro is actually expanded, and what follows is all useless once you are compiled." " If channel is false, cons up and return a string. If channel is T, use .OUTCHAN" FORMAT #DECL ( "VALUE" FORM "ARGS" LIST) FSTRING TOO-FEW-ARGS FORMAT T .OUTCHAN PROG OUTCHAN # DECL ((OUTCHAN) )]>)> .GLUE > "This function is for a string format control arg" > "This function is for doing a single escape sequence" > > "Parses out the args for a escape sequence" > "Eats one argument from the call" >