(FILECREATED " 5-Dec-84 22:52:19" {ERIS}<LISPUSERS>PLURAL.;5 3925
changes to: (VARS PLURALCOMS)
(FNS ORDINALSUFFIXSTRING Ordinal)
previous date: "28-Sep-84 10:05:51" {ERIS}<LISPUSERS>PLURAL.;3)
(* Copyright (c) 1984 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT PLURALCOMS)
(RPAQQ PLURALCOMS ((FNS Conjoin ORDINALSUFFIXSTRING Ordinal Plural Suffix)))
(DEFINEQ
(Conjoin
[LAMBDA (a b) (* mk: "26-MAY-84 10:38")
(CONCAT a (if (U-CASEP (SUBSTRING a -1 -1))
then (U-CASE b)
else b])
(ORDINALSUFFIXSTRING
(LAMBDA (N CAP) (* JonL " 5-Dec-84 22:52")
(SETQ N (IABS N))
(if (OR (AND (IGEQ N 4)
(ILEQ N 20))
(EQ 0 (SETQ N (IREMAINDER N 10)))
(IGEQ N 4))
then (if CAP
then "TH"
else "th")
else (SELECTQ N
(1 (if CAP
then "ST"
else "st"))
(2 (if CAP
then "ND"
else "nd"))
(3 (if CAP
then "RD"
else "rd"))
(SHOULDNT)))))
(Ordinal
(LAMBDA (N CAP) (* JonL " 5-Dec-84 22:51")
(CONCAT N (ORDINALSUFFIXSTRING N CAP))))
(Plural
[LAMBDA (word n) (* mk: "28-Sep-84 10:04")
(COND
[(NOT (AND (FIXP n)
(EQ n 1)))
(PROG (penult pl lCase)
[if (SETQ pl (GETP (MKATOM (SETQ lCase (L-CASE word)))
(QUOTE PLURAL)))
then (RETURN (MKSTRING (if (EQP word lCase)
then pl
elseif (U-CASEP word)
then (U-CASE pl)
else (L-CASE pl T]
(SETQ penult (SELECTQ (MKATOM (SUBSTRING lCase -2 -2))
((a e i o u)
(QUOTE v))
((s c)
(QUOTE s))
NIL))
(RETURN (SELECTQ (MKATOM (SUBSTRING lCase -1 -1))
(y (if (EQ penult (QUOTE v))
then (Conjoin word "s")
else (Conjoin (SUBSTRING word 1 -2)
"ies")))
(h (if (EQ penult (QUOTE s))
then (Conjoin word "es")
else (Conjoin word "s")))
((j s x z)
(Conjoin word "es"))
(Conjoin word "s"]
(T (MKSTRING word])
(Suffix
[LAMBDA (a b) (* mk: "24-MAY-84 19:57")
(PROG (char)
(RETURN (SELECTQ (SETQ char (MKATOM (SUBSTRING a -1 -1)))
[e (SELECTQ (MKATOM (SUBSTRING b 1 1))
((a e i o u)
(CONCAT (L-CASE (SUBSTRING a 1 -2))
(L-CASE b)))
(CONCAT (L-CASE a)
(L-CASE b]
[y (SELECTQ (MKATOM (SUBSTRING a -2 -2))
((a e i o u)
(CONCAT (L-CASE a)
(L-CASE b)))
(SELECTQ (MKATOM (SUBSTRING b 1 1))
((a e o u)
(CONCAT (L-CASE (SUBSTRING a 1 -2))
"i"
(L-CASE b)))
(S (CONCAT (L-CASE (SUBSTRING a 1 -2))
(L-CASE "ies")))
(CONCAT (L-CASE a)
(L-CASE b]
[(b d c f g l m n p r t)
(OR (CheckDoubling a b)
(CONCAT (L-CASE a)
(U-CASE b]
[s (OR (CheckDoubling a b)
(CheckSibilant a b)
(CONCAT (L-CASE a)
(U-CASE b]
[(h x z)
(OR (CheckSibilant a b)
(CONCAT (L-CASE a)
(L-CASE b]
(CONCAT (L-CASE a)
(L-CASE b])
)
(PUTPROPS PLURAL COPYRIGHT ("Xerox Corporation" 1984))
(DECLARE: DONTCOPY
(FILEMAP (NIL (402 3848 (Conjoin 412 . 622) (ORDINALSUFFIXSTRING 624 . 1202) (Ordinal 1204 . 1361) (
Plural 1363 . 2541) (Suffix 2543 . 3846)))))
STOP