Aae/ dHH $ d H6$$ff@m   d#  Footnote TableFootnote*e*a. o. / - i:;,.!?`OCo3/as.70imeTOCdHeadinga!C's0DylaniGwydion Implementors Instantiable accessorsbytecharacterdo(rcurry(checkoentrancyeofo filestreamvfilename forceoutput getinputinputavailableelimited(J *<$daynum01> <$shortmonthname> <$shortyear>K "<$monthnum>/<$daynum>/<$shortyear>L )<$daynum> <$shortmonthname> <$shortyear> M "<$monthnum>/<$daynum>/<$shortyear>N <$monthname> <$daynum>, <$year>O "<$monthnum>/<$daynum>/<$shortyear>P  <$fullfilename>Q  <$filename>R  <$paratext[Title]>S  <$paratext[Heading]>T  <$curpagenum>U  <$marker1>V  <$marker2>W  (Continued) X + (Sheet <$tblsheetnum> of <$tblsheetcount>)Y Pagepage<$pagenum> Z Heading & Page <$paratext> on page<$pagenum>[ See Heading & Page%See <$paratext> on page<$pagenum>.\  Table & Page7Table<$paranumonly>, <$paratext>, on page<$pagenum>l=MG v=s s >t t ?u u @v v Aw w AgtoBx x ACy y Dz z E{ { AmoF| ~ AImda" rna# y$ o>/% $ea& hn' uye( mo) a<$* , a+ i>- te 1 H]>3 1. n: er< er= in> ShD e o? t)@ ageA  B  K xn L nM N O Q R u S T  U V toW x X Z [ \ ]  { ^  ;  d  daP  rnaY ye o>/a $eab hnc uye_ mo6 a<$5 ` af i>g teh i H]>j 1.k  l  m  n  o   p!  q"  r#  s$  t%  u&  v'  w(  x)  y*  z+  {,  |-  9.  2. / .0 01 22 u 43 74  /5 86 to}7 x ~8 9 : ; < { = > ? da@ rnaA yB o>/C $eaD hnE uyeF U  * dU as x dV Hy { H$ W U H$ !  s  d  Hw X U Hw  xt d  H$ Y U H$ 0 u  d  Hw Z U Hw x ~v d  HH[ U { HH w rUUd  HH\ U HH Blackx hUUd a l" ] V l" y $n e22 May 97 f H ^ V H wz  n !jRunning H/F 2ig#h $H_ V $H  { UUd  d` a l H#* a b ` H#* HR HR FootnoteHr7 b a c ` Hr7 HzHz  Single LineH'c b e ` d d Footnote 7d c      HR< e c f ` HR< HH  Double Line H f e i ` g h Double Line;g h f H =h g f H i f k ` gj j Single Line@j i HZk i l `  TableFootnoteϸE]G'E l k ` ϸE]G'E ϸEwPϸEwP  TableFootnoteodm | | Hz$Hn m $H@''|  'TU TU h {The Format Library UU`  Designed by the Gwydion Project 2UUn "Version 1.0 : 0k22 May 97 l DUU` H ZUU  This document describes the  Format  library designed by the Gwydion Project at Carnegie Mellon University. This library fUU yextends the functionality of the format strings described in Dylans condition system and provides two new functions for rUU processing the extended format strings. The  Format  library is a small library, but it requires the  Print  librar y  and some of ~UU the  Streams  library from the Gwydion Project. The  Format  library exports one module,  Format , which exports all the teoUU@ (idnetifiers described in this document. JUTU ` $ Functions UUh bThe  mFormat  library offers two functions,  format  and  format-to-string . UUh Th"nformat [Generic Function] UU` Arguments UU` stream :: : UU`  control-string ::  UU` d#rest arguments thUU` ibValues gne#UU` ronone /UU` iv Description ib;UU  ~Performs output to  stream  according to the directives in  control-string . Each directive consumes one argument GUU from  arguments . The  control-string  contents that are not part of any directive are output directly to  stream , as if by d sSUU@ 5the  Stream  librarys  write  function. PnUU` rmformat [Method] ozUU` ma Arguments UU` eostream :: idUU` d control-string :: UU` #rest arguments ThUU` Values offUU` none aUU` at Description . UU` ThYThere is one method for  format , and it is specialized to   s. tUUh : ,oformat-to-string [Generic Function] g>UU`  Arguments UU` control-string ::  UU` #rest arguments ivUU` ;Values %UU` puresult :: cco1UU` ti Description tr=UU` h oCalls  format  to produce output according to  control-string  and returns the output as a string. thdo  re} } iby$Hp o ib$HBun++ rmfo} od+UU` Arformat-to-string [Method] UU` id Arguments UU` st control-string :: *UU` gu#rest arguments 6UU` ffValues UBUU`  result :: ioNUU`   Description oZUU   foThere is one method for  format-to-string . The  control-string  argument must be a   .  Result  is a fUU@   . troUUh  g>)pprint-message [Generic Function] vUU`  ; Arguments UU` puobject :: ccoUU` tistream :: UU` s Values t UU` utnone iUU` st Description etUU  aPrints  object  to  stream . Methods for this function should print objects  as a message , as opposed to printing objects UU unsin any form intending to represent Dylan data, literal syntax, and so on. For example, printing a condition object UUU s xwith this function presents the condition as an error message, but printing the condition object with the  print  esUU@ rfunction from the Gwydion  Print  library prints the condition in some form such as  {Simple-error} . UU`  XSee the individual methods for the details of how this function prints various objects. a%UU  |This function exists to define the behavior of the  %S  format directive and to allow users the ability to extend the 1UU@ obP%S  directive. Users should have little need to call this function directly. s LUU` "print-message [Sealed Method] XUU` et Arguments dUU` condition :: pUU` s stream :: ob|UU` saValues s oUU` onone UU` un Description inUU  nt}Prints  condition  as an error message, as described for the Dylan  %S  format directive. In Gwydion Dylan, this eUU n ~method actually calls the  report-condition  function from the  Dylan  librarys  Extensions  module. Users UU arshould not specialize the  print-message  protocol for subclasses of   , but they should instead extend ilsUU@ ioqthe  print-message  protocol to new condition objects by specializing methods on  report-condition . mUU` o "print-message [Sealed Method] UU`  Arguments UU`  shsymbol :: toUU`! n stream :: UUU`" ssValues SeaUU`# none 'UU`$ d Description 3UU % ndPrints  symbol  to  stream  by converting it to a string with the  as  function and then writing the string with the  write  ?UU@% Pr+function from the  Streams  library. s ddq rti~ ~ e$Hr q $Hsun--  lib~ en-UU`& "print-message [Sealed Method] UU`' me Arguments UU`( se,object :: type-union(, ) ea*UU`) stream :: pr6UU`* otValues ew BUU`+ bynone lNUU`, Description ioZUU`- pPrints  object  to  stream  by calling the  write  function from the  Streams  library. l>LU{TU h. !qControl Strings m>UU / "The  Format  librarys format strings, or control strings, offer the same directives as Dylans format strings offer, but this aUU/ g zlibrary provides a few more directives and permits a single argument to all format directives. The argument is an integer UU/ rethat must appear contiguously between the dispatch character ( % ) and the format directive, and it indicates a printing field UU/ H~in which to justify the output of the directive. A positive integer indicates that the output should be flushright within the UU/ mefield, and a negative integer indicates the output should be flushleft within the field. If the output length is greater than the UU/ esvfields width, then output occurs as if there were no field specification. The following are examples of valid format UU@/ ng directives:  UU`0 he%S amsUU`1 {%s .UU`2 St %15D UU`3 Th %-10= UU`4 ma(The following describes the directives: am4UUh5 lar%S t s@UU 6 thzPrints the next format argument  as a message  by calling the function  print-message  on the format argument LUU6 terand the stream. This directive is the same as Dylans  %S  format-string directive except for two features: XUU6 di{This librarys  %S  directive outputs character objects, and users can extend the  %S  functionality by adding hatdUU@6 b"methods to  print-message . uUUh7 s%= ve UU 8 thsPrints the next format argument by calling the  print  function from the  Print  library on the format wiUU8 ccuargument and the stream. Users can extend the  %=  functionality by adding methods to the  print-object  sUU@8 0)function from the  Print  library. sUUh9 2t%C %1UU : 3iPrint the next format argument, which must be a character, according to Dylans  %S  format-string SUU@: 6cdirective. This librarys  %C  directive is the same as this librarys  %S  directive. UUh; umx%D UU`< thWPrints a decimal representation of the next format argument, which must be an integer. foUUh= Xy%B 6UU`> sVPrints a binary representation of the next format argument, which must be an integer. UUh? ngz%O UU`@ odVPrints an octal representation of the next format argument, which must be an integer. *UUhA rgu%X cal6UU`B  [Prints a hexadecimal representation of the next format argument, which must be an integer. d tGUUhC anv%M he SUU`D nadInvokes the next format argument, which must be a function, on the stream passed to  format . ~dUUhE w%% 2}pUU`F &Outputs a single  %  character. H$ .s t U tDyH$ lW W =ve.Hw /t s u U  meHw lX X > umH$ 0u t v U dimH$ lY Y ?an Hw 1v u w U Hw lZ Z @forHH2w v x U HHl[ [ A reHH3x w U lh HHl\ \ BUl" 4y z V oofl" l] ] CH 5z y { V aInH l^ ^ Dthe$H6{ z V $Hl_ _ E%$H7| m  t $Hl} n n F$H8} o  u $Hl| ~ p p F$H9~ q  v $Hl} r r F  d U Leftw d V Rightd `  Referenced m x d o ld q [ (H$0f Q % o f1Heading 1Heading Rule. FirstBody. $$f SE  *$  1Step Step Number S:.\tStep. f   % 2Heading .. . ff2ff233@   %H    h  Argument. d @   %o H     h  Body. 33+33$f B  %ul33+n Bullet Bullet SymbolB:\t. ]K$f B  % ]m Bullet2. Bullet SymbolB:\t. $$$f   *CBullet. $$$f   *CStep. ff2ff233@   %H    h  Description. dd33@   %H    hl   u Description2. \ff233@   %H  u t mh:  DItem. KK@   %$H    h  DItem2. 33 @   %33 Endnote.\t. 33 @   %33 Endnote1.\t. ff2K33@   % He i  \  h  Extra Key Arg. ff2ff2 @   %HI    h  Function Body. @   %DI Function Head. HHH f T % HeadingBody. HHHf D  %  HeadingSub. $$f S  *$ Step Step Number S:.\t. @   H    h  IVerbatim. f   * CellHeading. f   *CellBody. f T  *  TableTitleT:Table : . @   %H    h  Body. @   *  Header. @   *  Footer. f   %Body. HHH f T % HeadingBody. HHHf D  %  HeadingSub. $0f Q %  1Heading 1Heading Rule. FirstBody. @   % Function Head. ff233@   %H    h  DItem. ff2ff233@   %H    h  Argument. Hff2ff2 @   %H    h  Function Body. @   %H    h  Body. @   H    h  Verbatim. @   H    h  Verbatim. ff2ff233@   %H    h  Description.   Vz  *   *   %Argument    Bullet Symbol@  %   % @  %  _    Computer  %Emphasis   EquationVariables    Step Number   Subscript   Superscript  % Variable _  Computer @  % Variable   %Emphasis   %Argument            Thin   %Medium  Double  Thick@   % Very Thin!     H H H sH H Format A     H H H H H Format Buvu Commentefghmperji kl - % d  Black!T WhiteddA %Reddd Greendd ! Blued" Cyan d# Magentad $  YellowW.Palatino.R.700 Palatino-Bold W.Times.R.400 Times-RomanW.Palatino.R.400Palatino-RomanW.Courier.R.400Courier W.Times.R.700 Times-BoldW.Palatino.I.400Palatino-ItalicW.Courier.R.700 Courier-BoldW.Helvetica.R.700 Helvetica-Bold7Courier Helvetica%Palatino*Times Regular Regular BoldItalicRegular5 jN IMrUϸEz424tsW3ЩgLnq`"LD84Lk@~7^XɨKDMbklȋYO