Aaa.A HH $ d H6$$ff@  d#  Footnote TableFootnote**. . / - :;,.!?`O5/aTOCHeading!C'sDylanGwydion Implementors Instantiable accessorsbytecharacterdo(rcurry(checkentrancyeof filestreamfilename forceoutput getinputinputavailablelimited([character-set]>\[case-sensitive-character-set]tB\[case-insensitive-character-set]`.\[byte-character-table] make-fooerio alphabetic?tSubstring-search Modulersubstring-position$smake-substring-positionerp u Boyer-Mooreedsubstring-replacetngemake-substring-replacer- rdi( teg' inU e V ig 3h U 1 c/39414: Heading: The Regular-Expressions Libraryl = 2  <$lastpagenum> *<$daynum01> <$shortmonthname> <$shortyear> "<$monthnum>/<$daynum>/<$shortyear> )<$daynum> <$shortmonthname> <$shortyear> ! "<$monthnum>/<$daynum>/<$shortyear>" <$monthname> <$daynum>, <$year>de# "<$monthnum>/<$daynum>/<$shortyear>$  <$fullfilename>%  <$filename>nti&  <$paratext[Title]>'  <$paratext[Heading]>(  <$curpagenum>e)  <$marker1>*  <$marker2>+  (Continued)se, + (Sheet <$tblsheetnum> of <$tblsheetcount>)cr-- Pagepage<$pagenum>act. Heading & Page <$paratext> on page<$pagenum>/ See Heading & Page%See <$paratext> on page<$pagenum>.0  Table & Page7Table<$paranumonly>, <$paratext>, on page<$pagenum>uBo1 Document"the document <$paratext>  regular-expressions.fm=m= Ui i Vj j Wk k Xl l Ym m AdaZn n Area[o o \p p ]q q A>^r u A$db s oe>f q  >d` p hnj q mord q  fun q  h q atir d a[Tl q  pav q ip q uumz q ert q er~ q inx q Sh t e o| q t)c d age q a d  < q  e d Se q  Se&w x p q u'v  7(w ay>)x xn *x nBo+v ee ,w m><-x .y gxpq  0v i /z Y{  1. Z| k _} b~  c} j~ dak} n .~ rq} r~ w { 2. y | |        { 3. ] | nq | rq { u4. | a a   i u     e t a a   !  " #  $ x% u&  ' a( x) n* e+ m, - g.q y{ 5. z|  {  | } ~      r    |   | | ) c Gd) i n | nd* 4.o q  o] (+ , [ o] ((u\ k  Function and Argument @ Type ](, + - [ ](a\ k` (Returns  #t  for these characters  o - , . [ o \ k h  "talpha? ( character ) . - a [ \ k{ ` | a-zA-Z o / b 0 [ o \ k h "udigit? ( character ) 0 / 1 [ \ k ` 0-9  o  1 0 2 [ o \ kn h n)valphanumeric? ( character ) "2 1 3 [ \ ko` u a-zA-Z0-9 o &3 2 4 [ mt o Ty\ k]h - 'wwhitespace? ( character ) k(4 3 5 [ #ter\ k` . /Space, tab, newline, formfeed, carriage return o ,5 4 6 [ hao \ k h &xuppercase? ( character ) .6 5 7 [ \ ko` kA-Z o  27 6 8 [ hao  \ k h &ylowercase? ( character )  48 7 9 [  \ k` a-z n o 89 8 : [ (o \ kh &zhex-digit? ( character ) :: 9 ; [ \ kt o` Ty0-9a-f ]o5 >; : < [  o5 \ kh ({punctuation? ( character ) 5@< ; = [ n f5rn\ k` 6 !,./<>?;\:|[]{}!@#$%^&*()-=_+`~ oK D= < > [ upoK ct\ kh $|graphic? ( character ) KF> = ? [ -K\ k ` alphanumeric or punctuation oa J? > @ [ ctoa \ k 9 h &}printable? ( character ) aL@ ? A [ a\ k` graphic or whitespace ow PA @ B [ ow ; \ kh $~control? ( character ) TywRB A [ w\ kk` not printable H$ C ) 5H$ = i d 6  .Hw D ) Hw ctj d gr iH$ E ) H$ -\ kk d er oHw F ) @ Hw K 9 l d  aHHG ) HH m UUd o HHH ) wHH  $n (UUd w l" I * l" not pro $n e22 May 97 f H J * H wp  n !jRunning H/F 2ig#h $HK * $H  q UUd  dL M X H#* M N L H#* HR HR FootnoteHr7 N M O L Hr7 HzHz  Single LineH'O N Q L P P Footnote  mP O w    HR< Q O R L HR< HH  Double Line H R Q U L S T Double LineqS T R H sT S R H U R W L gV V Single LinevV U HZ W U X L  TableFootnoteϸE]G'E X W L ϸE]G'E ϸEwPϸEwP  TableFootnoteod Y r r Hz$H Z Y $Hr  TU TU h "The lString-extensions Library UU`  Designed by the Gwydion Project QUATU ` Introduction VUU  leString-extensions  is a library of routines for working with characters and strings.  String-extensions  exports these bUU@ modules: xUU` String-Conversions UU` FThis module consists of various useful conversions involving strings. UU` gCharacter-type UU` le@This module is a Dylanized version of the C library  ctype.h UU` String-hacking UU  X iThis module exports miscellanous functions and data structures that are useful when working with strings UU@ Eand characters. TaUU` Substring-search UU` iThis module contains methods for searching for fixed substrings rather than general regular expressions. DUTU h  "The mString-Conversions Module UU`  ThkThe  String-Conversions  module consists of various useful conversions involving strings. They are: In)UU(  \nstring-to-integer ( string , #key  base )  => integer  [Function] tr5UU  ex\ointeger-to-string ( integer , #key  base ) =>  string  [Function] rsAUU  Jpdigit-to-integer ( character ) =>  integer [Function] MUUH  Jqinteger-to-digit ( integer ) =>  character [Function] YUU   arvBase  defaults to 10, and is the radix for the number system to convert from/to. Bases below 2 are errors, as are eUU  esjbases above 36. When converting from a string, the string must exactly describe a number, with no excess qUU  characters.  Digit-to-integer  will signal an error if the digit is non-alphanumeric. Errors will be signalled for all U }UU@  invalid input. onsUU`  2as (,  character )[G.F. Method] UU` ef=Turns a character into the appropriate string of length one. 7UTU h o-The rCharacter-type Module UUh =uCharacter-type  is a Dylanized version of the C library  sctype.h  It contains the following functions: sd[ s s cra$H\ [ $Hgeer ) + B s erUUhB k rSUcTU h s The String-hacking Module xUU  onwThe  String-hacking  module exports miscellanous functions and data structures that are useful when working with stUU@ destrings and characters. xcUU( ladd-last ( stretchy-sequence ,  object ) =>  stretchy-sequence [Generic Function] l UU@ llPadd-last ( string ,  character ) =>  string [G.F. Method] UU` [GWLike  add  except its guarenteed to add the character to the end of the string. onUUh Gpredecessor ( character ) =>  character [Function] UU` rs8Get the character before this character. Equivalent to foUU` s;as(, -1 + as(, character)) UUh $Esuccessor ( character ) =>  character [Function] UU` 7Get the character after this character. Equivalent to  r1UU` s :as(, 1 + as(, character)) LUU( Tcase-insensitive-equal ( object1 ,  object2 )[Generic Function] g XUU Kcase-insensitive-equal ( string1 ,  string2 )[G.F. Method] sdUU@ Qcase-insensitive-equal ( character1 ,  character2 )[G.F. Method] pUU  (jDoes a case insensitive equality test. Methods are provided only for strings and characters, not general |UU@ ee collections. ad] t t  $H^ ] tn]$Hrs((re this t ui(UU( 0 [Sealed Abstract Class] >,UU / [Class]  ¨UUH r1 [Class] c*UU  raA    is a non-mutable subclass of   , and is conceptually an unordered set of characters. 6UU alsDylan collection elements always have keys, so to fit sets into Dylan, the key of an element of a character set is ng1BUU ‚the element itself. There are two instantiable subclasses of   ,    and NUU aw .    is not instantiable; one must always specify one of the coZUU@ 7instantiable subclasses when creating a character set. pUU   H{There are two ways of making a character set. The first is a method for make using the  description:  keyword. The |UU  , description: a-z) UU`" al9would be the set of all lowercase alphabetic characters. sUU # ey|A second way to create character sets is to use an  as  method. The  as  method basically takes a collection of UU@# ,@characters and discards the keys of these characters. Example: , tUU@$ a-abcdefghijklmnopqrstuvwxyz) UU % clis again the set of all lowercase alphabetic characters. It is important to realize that the  as  method does  not  take UU@% dea description: ywo0UU`& 6as(, a-z) FUU`' inrreturns the set of  a ,  - , and  z , not the set of all lowercase alphabetic characters. \UU ( rThe most useful operation on character sets is  member? , which does what one would expect. Another useful hUU( -zoperation is the  forward-iteration-protocol . This basically calls  member?  on every possible character until it hatUU( usfinds a character that is a member of the set. This means that in a   , both  a  and oUU@( .  A  will come up. UUh) as(  [Class] UU * pA byte-character-table is a vector that uses byte characters as indices instead of integers. The following are erUU@* t equivalent: t UU`+ ho5regular-vector[as(, character)] tUU`, ,byte-character-table[character] ctUU`- F  has absolutely no relation to   . It is simply a   . 5UTU hy Th The Substring-search Module er+UU z r?}Substring-search  contains methods for searching for fixed substrings. It is as similar to the regular-expression module ˆ7UU z cas we could make it. (See  the document  The Regular-Expressions Library  for details about regular expressions, and about the inCUUz siumake-fooer convention. However, note that while the make-fooer convention is obsolete for regular expression OUUz ta{functions, it is not obsolete for substring searching.) Substring functions work only on byte strings, and are always case int[UU@z in sensitive. vUUh{ va.substring-position [Generic Function] UU | er2(big-string, search-for-string, #key start, end) UU@ | [c=> position-or-false; d_ sutu u bl $H` _ eco$HX bstring-u erUU } trReturns the position of the  search-for-string  in the  big-string  (or that portion of the  big-string  specified by  start:  and e iUU@} e 2end: ). This search is always case sensitive. UU(~ rsThis function uses the Boyer-Moore algorithm for long strings, and a simple dumb search for short strings. It mak(UU@~ n 7should yield good performance under all circumstances. fuCUUh o5make-substring-positioner [Generic Function] oOUU  ri0(search-for-string) => an anonymous positioner se[UU@ ;method (big-string, #key start, end) => position-or-false qUU` (bDoes the obvious. UUh rt-substring-replace [Generic Function] lUU  M(big-string, search-for-string, replace-with-string, #key count, start, end) UU@ => replaced-string UU  Replaces the substring, or the first  count  instances of it if  count:  is specified. Note this function does not support -sUU@ pstart:  or  end: . UUh st4make-substring-replacer  [Generic Function] sUU  se1(search-for :: , #key replace-with) sUU re1=> an anonymous function replacer that is either cUU s.;method (big-string, #key count, start, end) => new-string ndeUU s.or CUU@ Bmethod (big-string, replace-with-string, #key count, start, end) 3UU` stDoes the obvious. IUU` [ o a . b [ r eo se\ kh o'alphabetic? ( character ) ng-b a / [ rc\ kingre`. #$a-zA-Z  (same as  alpha? ) H$ i j ) H$ lC C Us oHw j i k ) ts Hw lD D Vor H$ k j l ) -sH$ lE E W seHw l k m ) eitHw lF F XhatHHm l n ) b-sHHlG G YHHn m ) b-sHHlH H ZUl" o p * [l" lI I [H p o q *  oH lJ J \$Hq p * $HlK K ]  $Hr Y  j $Hls Z Z ^$Hs [  k $Hlr t \ \ ^$Ht ]  l $Hls u ^ ^ ^ $Hu _  m $Hlt ` ` ^ d ) Leftn d * Rightd L  Referenced Y d [ ld ] H d _ U c *$0fU Q %  1Heading 1Heading Rule. FirstBody. $$fV SE *H$ 1Step Step Number S:.\tStep. HfW  % 2Heading .. . ff2ff233@X  %H     ht  Argument. @Y  %] H     h  Body. 33+33$fZ 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@a  %$H    h  DItem2. 33 @b  %33 Endnote.\t. fd  %CellBody. 33 @g  %33 lEndnote1.\t. ff2K33@h  %H   u  ht m: Extra Key ArgI. ff2ff2 @i  %H    h  Function Body. @j  % n Function Head. HHH fk T % HeadingyBody. HHHfl D %  HeadingSub.  @m  %$    h  tParameter List. $$fn S *$ Step Step Number S:.\t. @o  H    h  Verbatim. fp  * CellHeadingd. fq  *CellBody. fr T *  TableTitleT:Table : . fs  * CellHeading. ft  CellBody. @v  *Ve  Header. @w  *  Footer. fx  %Body. HHH fy T % HeadingBody. HHHfz D %  HeadingSub. $0f{ Q %  1Heading 1Heading Rule. FirstBody. @|  %H    h  Body. ff233@}  H    h  DItem. KK@~  %H d y  h  DItem2. @  % Function Head. ff2ff2 @  %H    h   Function Body. @  H    h  Verbatim.  @  %$    h  Parameter List.  Vz * %Emphasis %  *  %Argument   Bullet Symbol@ %  % @ %   % _  Computer %Emphasis  EquationVariables   Step Number  Subscript  Superscript % Variable _ Computer @ % Variable  %Argument _  _ Computer  %Emphasis @ % Variable  %Argument             Thin  %Medium Double Thickua@  Very Thinuvu r   r Hp q p eHp q p Hp q p Hp q p Hp q p eFormat A   r iHp q p Hp q p Hp q p Hp q p Hp q p Format B   r  Hp q p Hp q p sHp q p Hp q p Hp q p Format A  ( k p q p p q p ! o] ( \ u+ u,  o  \ u- u.  o  \  %u/ u0 o  \ u1 Veu2 vo  \ u3 u4 o  \ u5 u6 o   \ oatu7 u8 o  \  u9 iu:  o5  \ u; Fou<  oK  \  u=  u> oa  \  u?  u@  ow  \ uA  uB o  \ ua ub I Y J I Commentef. ghjiU   d Black!T WhiteddA 2 Redvdd Greendd Blue4 d Cyand Magentad oYellowW.Palatino.R.700 Palatino-Bold W.Times.R.400 Times-RomanW.Palatino.R.400Palatino-RomanW.Palatino.I.400Palatino-ItalicW.Courier.R.400Courier W.Times.R.700 Times-BoldW.Courier.R.700 Courier-BoldW.Helvetica.R.700Helvetica-Bold7Courier Helvetica%Palatino*Times Regular Regular BoldItalicRegular K]ɼޢ4l{5S>ň5Jes$y_>2yYboLtjC}z^ը#m9Vlg6X4F5