(FILECREATED " 7-SEP-84 08:49:01" {ATSUGI}<JLISP>MIRAI0>CONVERTER.;11 9020
changes to: (FNS INFKANACONVERTER)
previous date: "30-AUG-84 15:34:54" {ATSUGI}<JLISP>MIRAI0>CONVERTER.;10)
(* Copyright (c) 1984 by Fuji Xerox Co. Ltd.)
(PRETTYCOMPRINT CONVERTERCOMS)
(RPAQQ CONVERTERCOMS ((FNS Complete#List CreateInfDict CreateGrammTable ExpandPOSMacro
INFDICTCONVERTER INFDICTCONVERTER1 INFKANACONVERTER EVENTHLIST
INFKANJICONVERTER JISPAIRLIST INFPOSCONVERTER
MAKEUNUSEDPOS#LIST INFPRECONVERTER MAKEUNUSEDPRE#LIST
INFFREQCONVERTER MAKESUFFIXTREE MAKESUFFIXTREE1
MAKESUFFIXTREE2 PutGrammTable1)
(GLOBALVARS POS#LIST POSLIST PRE#LIST PRELIST FUZOKUGOLIST DICTENTRIES
CONNECTIONS GRAMMTABLE)))
(DEFINEQ
(Complete#List
[LAMBDA (LST) (* ryu "10-JUL-84 04:29")
(for ELEM in LST bind (UNUSED#LIST ←(for I from 0 to 255 collect I))
collect (COND
[(ATOM ELEM)
(LIST ELEM (PROG1 (CAR UNUSED#LIST)
(SETQ UNUSED#LIST (REMOVE (CAR UNUSED#LIST)
UNUSED#LIST]
[(NULL (CDR ELEM))
(LIST (CAR ELEM)
(PROG1 (CAR UNUSED#LIST)
(SETQ UNUSED#LIST (REMOVE (CAR UNUSED#LIST)
UNUSED#LIST]
((AND (LISTP ELEM)
(NUMBERP (CADR ELEM)))
(SETQ UNUSED#LIST (REMOVE (CADR ELEM)
UNUSED#LIST))
ELEM)
(T (SHOULDNT])
(CreateInfDict
[LAMBDA NIL (* J.Ikeo "29-AUG-84 14:35")
(MAKEUNUSEDPOS#LIST)
(MAKEUNUSEDPRE#LIST)
(SETQ SUFFIXTREE (LIST NIL NIL))
(MAKESUFFIXTREE (INFDICTCONVERTER DICTENTRIES])
(CreateGrammTable
[LAMBDA NIL (* ryu "12-AUG-84 12:53")
(DECLARE (GROBALVARS CONNECTIONS PRELIST POSLIST PRE#LIST POS#LIST GRAMMTABLE))
(SETQ GRAMMTABLE (BITMAPCREATE 256 256 4)) (* for I from 0 to 255 do (for J from 0 to 255 do
(BITMAPBIT GRAMMTABLE I J 0)))
(* This bitmap is used to simulate a two-dimensional
array)
(SETQ PRE#LIST (Complete#List PRELIST))
(SETQ POS#LIST (Complete#List POSLIST))
(for TRIPLE in CONNECTIONS bind POSs PRE FREQ
do (* CONNECTIONS ia a list each element of which is
(PRE FREQ POS/PRE ...))
(SETQ FREQ (CADR TRIPLE))
[COND
[(NUMBERP FREQ)
(SETQ POSs (ExpandPOSMacro (CDDR TRIPLE]
(T (SETQ FREQ 1)
(SETQ POSs (ExpandPOSMacro (CDR TRIPLE]
(COND
((SETQ PRE (FASSOC (CAR TRIPLE)
PRE#LIST))
(PutGrammTable1 (CADR PRE)
POSs FREQ))
(T (printout T "PRE " (CAR TRIPLE)
" not found " T])
(ExpandPOSMacro
[LAMBDA (LST) (* ryu "10-JUL-84 05:44")
(DECLARE (GROBALVARS CONNECTIONS))
[COND
((ATOM LST)
(SETQ LST (LIST LST]
(for X in LST bind POSs join (COND
((SETQ POSs (FASSOC X CONNECTIONS))
(ExpandPOSMacro (CDDR POSs)))
(T (LIST X])
(INFDICTCONVERTER
[LAMBDA (SOURCELIST) (* ryu "10-JUL-84 06:17")
(MAPCONC SOURCELIST (FUNCTION INFDICTCONVERTER1])
(INFDICTCONVERTER1
[LAMBDA (SOURCE) (* J.Ikeo "29-AUG-84 14:08")
(PROG (CONVERTED)
(COND
((EQ (CAR SOURCE)
(QUOTE *))
(RETURN NIL)))
[SETQ CONVERTED (CONS (INFKANACONVERTER (CAR SOURCE))
(create SUFFIXENTRY
KANAKANJICODES ←(INFKANJICONVERTER (CADR SOURCE))
POS ←(INFPOSCONVERTER (CADDR SOURCE))
PRE ←(INFPRECONVERTER (CADDDR SOURCE))
FREQ ←(INFFREQCONVERTER (CADDDR (CDR SOURCE]
(RETURN (COND
((NULL (fetch (SUFFIXENTRY POS) of (CDR CONVERTED)))
(printout T (CAR SOURCE)
"'s POS "
(CADDR SOURCE)
" invalid" T)
NIL)
((NULL (fetch (SUFFIXENTRY PRE) of (CDR CONVERTED)))
(printout T (CAR SOURCE)
"'s PRE "
(CADDDR SOURCE)
" invalid" T)
NIL)
(T (LIST CONVERTED])
(INFKANACONVERTER
[LAMBDA (WORD) (* J.Ikeo " 7-SEP-84 08:48")
(MAPCAR (EVENTHLIST (MAPCAR (UNPACK WORD)
(FUNCTION CHARCODE)))
(FUNCTION (LAMBDA (KANACODE) (* J.Ikeo " 6-SEP-84 11:45")
(SELECTC KANACODE
(8482 (* for Tou-Ten)
89)
(8483 (* for Ku-Ten)
90)
(8509 (* for -
of Kata-Kana)
109)
(IDIFFERENCE (LOGAND KANACODE 127)
32])
(EVENTHLIST
[LAMBDA (LST) (* J.Ikeo "25-JUN-84 15:20")
(COND
((NULL LST)
NIL)
((NULL (CDR LST))
NIL)
(T (CONS (CADR LST)
(EVENTHLIST (CDDR LST])
(INFKANJICONVERTER
[LAMBDA (WORD) (* J.Ikeo "25-JUN-84 15:24")
(MAPCAR (JISPAIRLIST (MAPCAR (UNPACK WORD)
(FUNCTION CHARCODE)))
(FUNCTION (LAMBDA (PAIR)
(IPLUS (LLSH (CAR PAIR)
8)
(CDR PAIR])
(JISPAIRLIST
[LAMBDA (LST) (* J.Ikeo "25-JUN-84 15:26")
(COND
((NULL LST)
NIL)
((NULL (CDR LST))
NIL)
(T (CONS (CONS (LOGAND (CAR LST)
127)
(LOGAND (CADR LST)
127))
(JISPAIRLIST (CDDR LST])
(INFPOSCONVERTER
[LAMBDA (POSATOM) (* ryu "10-JUL-84 06:06")
(PROG (ELEMENT POS#)
(DECLARE (GLOBALVARS POS#LIST))
(COND
((SETQ ELEMENT (FASSOC POSATOM POS#LIST))
(RETURN (CADR ELEMENT)))
(T NIL])
(MAKEUNUSEDPOS#LIST
[LAMBDA NIL (* ryu " 9-JUL-84 23:03")
(PROG (UNUSEDPOS#LIST)
(DECLARE (GLOBALVARS POS#LIST))
(SETQ UNUSEDPOS#LIST (for I from 0 to 255 collect I))
(MAPC POS#LIST (FUNCTION (LAMBDA (ENTRY)
(SETQ UNUSEDPOS#LIST (REMOVE (CADR ENTRY)
UNUSEDPOS#LIST])
(INFPRECONVERTER
[LAMBDA (POSATOM) (* ryu "10-JUL-84 06:07")
(PROG (ELEMENT PRE#)
(DECLARE (GLOBALVARS PRE#LIST))
(COND
((SETQ ELEMENT (FASSOC POSATOM PRE#LIST))
(RETURN (CADR ELEMENT)))
(T NIL])
(MAKEUNUSEDPRE#LIST
[LAMBDA NIL (* J.Ikeo "25-JUN-84 15:47")
(PROG NIL
(DECLARE (GLOBALVARS UNUSEDPRE#LIST PRE#LIST))
(SETQ UNUSEDPRE#LIST (for I from 0 to 255 collect I))
(MAPC PRE#LIST (FUNCTION (LAMBDA (ENTRY)
(SETQ UNUSEDPRE#LIST (REMOVE (CADR ENTRY)
UNUSEDPRE#LIST])
(INFFREQCONVERTER
[LAMBDA (FREQ) (* J.Ikeo "25-JUN-84 15:34")
FREQ])
(MAKESUFFIXTREE
[LAMBDA (INFDICTENTRIES) (* J.Ikeo "29-AUG-84 13:56")
(MAPC INFDICTENTRIES (FUNCTION MAKESUFFIXTREE1])
(MAKESUFFIXTREE1
[LAMBDA (INFDICTENTRY) (* J.Ikeo "29-AUG-84 13:56")
(DECLARE (GLOBALVARS SUFFIXTREE))
(MAKESUFFIXTREE2 (CAR INFDICTENTRY)
INFDICTENTRY SUFFIXTREE])
(MAKESUFFIXTREE2
[LAMBDA (PHONICCODES INFDICTENTRY TREE) (* J.Ikeo "29-AUG-84 14:37")
(COND
[(NULL PHONICCODES)
(COND
[(CADR TREE)
(RPLACD (CADR TREE)
(CONS (CDR INFDICTENTRY)
(CDADR TREE]
(T (RPLACA (CDR TREE)
(LIST (CAR INFDICTENTRY)
(CDR INFDICTENTRY]
[(FASSOC (CAR PHONICCODES)
(CDDR TREE))
(MAKESUFFIXTREE2 (CDR PHONICCODES)
INFDICTENTRY
(FASSOC (CAR PHONICCODES)
(CDDR TREE]
(T (MAKESUFFIXTREE2 (CDR PHONICCODES)
INFDICTENTRY
(CADR (RPLACD (CDR TREE)
(CONS (LIST (CAR PHONICCODES)
NIL)
(CDDR TREE])
(PutGrammTable1
[LAMBDA (PRE# POSs FREQ) (* ryu "14-AUG-84 09:16")
(for POS in POSs bind POS# (MINUS ← NIL)
do (COND
((EQ POS '-)
(SETQ MINUS T))
(MINUS (COND
((SETQ POS# (FASSOC POS POS#LIST))
(BITMAPBIT GRAMMTABLE PRE# (CADR POS#)
0))
(T (printout T "POS " POS " not found " T)))
(SETQ MINUS NIL))
((SETQ POS# (FASSOC POS POS#LIST))
(BITMAPBIT GRAMMTABLE PRE# (CADR POS#)
FREQ))
(T (printout T "POS " POS " not found " T])
)
(DECLARE: DOEVAL@COMPILE DONTCOPY
(ADDTOVAR GLOBALVARS POS#LIST POSLIST PRE#LIST PRELIST FUZOKUGOLIST DICTENTRIES
CONNECTIONS GRAMMTABLE)
)
(PUTPROPS CONVERTER COPYRIGHT ("Fuji Xerox Co. Ltd." 1984))
(DECLARE: DONTCOPY
(FILEMAP (NIL (762 8793 (Complete#List 772 . 1437) (CreateInfDict 1439 . 1699) (
CreateGrammTable 1701 . 2901) (ExpandPOSMacro 2903 . 3267) (INFDICTCONVERTER 3269 . 3428)
(INFDICTCONVERTER1 3430 . 4328) (INFKANACONVERTER 4330 . 4892) (EVENTHLIST 4894 . 5122) (
INFKANJICONVERTER 5124 . 5399) (JISPAIRLIST 5401 . 5697) (INFPOSCONVERTER 5699 . 5983) (
MAKEUNUSEDPOS#LIST 5985 . 6368) (INFPRECONVERTER 6370 . 6654) (MAKEUNUSEDPRE#LIST 6656 .
7044) (INFFREQCONVERTER 7046 . 7165) (MAKESUFFIXTREE 7167 . 7326) (MAKESUFFIXTREE1 7328 .
7554) (MAKESUFFIXTREE2 7556 . 8206) (PutGrammTable1 8208 . 8791)))))
STOP