home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume37 / lout / part10 < prev    next >
Encoding:
Text File  |  1993-06-19  |  85.2 KB  |  5,945 lines

  1. Newsgroups: comp.sources.misc
  2. From: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  3. Subject: v37i108:  lout - Lout document formatting system, v2, Part10/30
  4. Message-ID: <1993Jun1.051842.25709@sparky.imd.sterling.com>
  5. X-Md4-Signature: 80d190065a1f19f1182ab586b119794e
  6. Sender: kent@sparky.imd.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Tue, 1 Jun 1993 05:18:42 GMT
  9. Approved: kent@sparky.imd.sterling.com
  10.  
  11. Submitted-by: jeff@joyce.cs.su.oz.au (Jeff Kingston)
  12. Posting-number: Volume 37, Issue 108
  13. Archive-name: lout/part10
  14. Environment: UNIX
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  lout/include/lout.hyph lout/z06.c lout/z33.c
  21. # Wrapped by kent@sparky on Sun May 30 19:43:56 1993
  22. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 10 (of 30)."'
  25. if test -f 'lout/include/lout.hyph' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'lout/include/lout.hyph'\"
  27. else
  28.   echo shar: Extracting \"'lout/include/lout.hyph'\" \(27421 characters\)
  29.   sed "s/^X//" >'lout/include/lout.hyph' <<'END_OF_FILE'
  30. X@!$%^&*()_-+=~`{[}]:;'|<,.>?/0123456789
  31. XaA
  32. XbB
  33. XcC
  34. XdD
  35. XeE
  36. XfF
  37. XgG
  38. XhH
  39. XiI
  40. XjJ
  41. XkK
  42. XlL
  43. XmM
  44. XnN
  45. XoO
  46. XpP
  47. XqQ
  48. XrR
  49. XsS
  50. XtT
  51. XuU
  52. XvV
  53. XwW
  54. XxX
  55. XyY
  56. XzZ
  57. X
  58. X.ach4
  59. X.ad4der
  60. X.af1t
  61. X.al3t
  62. X.am5at
  63. X.an5c
  64. X.ang4
  65. X.ani5m
  66. X.ant4
  67. X.an3te
  68. X.anti5s
  69. X.ar5s
  70. X.ar4tie
  71. X.ar4ty
  72. X.as3c
  73. X.as1p
  74. X.as1s
  75. X.aster5
  76. X.atom5
  77. X.au1d
  78. X.av4i
  79. X.awn4
  80. X.ba4g
  81. X.ba5na
  82. X.bas4e
  83. X.ber4
  84. X.be5ra
  85. X.be3sm
  86. X.be5sto
  87. X.bri2
  88. X.but4ti
  89. X.cam4pe
  90. X.can5c
  91. X.capa5b
  92. X.car5ol
  93. X.ca4t
  94. X.ce4la
  95. X.ch4
  96. X.chill5i
  97. X.ci2
  98. X.cit5r
  99. X.co3e
  100. X.co4r
  101. X.cor5ner
  102. X.de4moi
  103. X.de3o
  104. X.de3ra
  105. X.de3ri
  106. X.des4c
  107. X.dictio5
  108. X.do4t
  109. X.du4c
  110. X.dumb5
  111. X.earth5
  112. X.eas3i
  113. X.eb4
  114. X.eer4
  115. X.eg2
  116. X.el5d
  117. X.el3em
  118. X.enam3
  119. X.en3g
  120. X.en3s
  121. X.eq5ui5t
  122. X.er4ri
  123. X.es3
  124. X.eu3
  125. X.eye5
  126. X.fes3
  127. X.for5mer
  128. X.ga2
  129. X.ge2
  130. X.gen3t4
  131. X.ge5og
  132. X.gi5a
  133. X.gi4b
  134. X.go4r
  135. X.hand5i
  136. X.han5k
  137. X.he2
  138. X.hero5i
  139. X.hes3
  140. X.het3
  141. X.hi3b
  142. X.hi3er
  143. X.hon5ey
  144. X.hon3o
  145. X.hov5
  146. X.id4l
  147. X.idol3
  148. X.im3m
  149. X.im5pin
  150. X.in1
  151. X.in3ci
  152. X.ine2
  153. X.in2k
  154. X.in3s
  155. X.ir5r
  156. X.is4i
  157. X.ju3r
  158. X.la4cy
  159. X.la4m
  160. X.lat5er
  161. X.lath5
  162. X.le2
  163. X.leg5e
  164. X.len4
  165. X.lep5
  166. X.lev1
  167. X.li4g
  168. X.lig5a
  169. X.li2n
  170. X.li3o
  171. X.li4t
  172. X.mag5a5
  173. X.mal5o
  174. X.man5a
  175. X.mar5ti
  176. X.me2
  177. X.mer3c
  178. X.me5ter
  179. X.mis1
  180. X.mist5i
  181. X.mon3e
  182. X.mo3ro
  183. X.mu5ta
  184. X.muta5b
  185. X.ni4c
  186. X.od2
  187. X.odd5
  188. X.of5te
  189. X.or5ato
  190. X.or3c
  191. X.or1d
  192. X.or3t
  193. X.os3
  194. X.os4tl
  195. X.oth3
  196. X.out3
  197. X.ped5al
  198. X.pe5te
  199. X.pe5tit
  200. X.pi4e
  201. X.pio5n
  202. X.pi2t
  203. X.pre3m
  204. X.ra4c
  205. X.ran4t
  206. X.ratio5na
  207. X.ree2
  208. X.re5mit
  209. X.res2
  210. X.re5stat
  211. X.ri4g
  212. X.rit5u
  213. X.ro4q
  214. X.ros5t
  215. X.row5d
  216. X.ru4d
  217. X.sci3e
  218. X.self5
  219. X.sell5
  220. X.se2n
  221. X.se5rie
  222. X.sh2
  223. X.si2
  224. X.sing4
  225. X.st4
  226. X.sta5bl
  227. X.sy2
  228. X.ta4
  229. X.te4
  230. X.ten5an
  231. X.th2
  232. X.ti2
  233. X.til4
  234. X.tim5o5
  235. X.ting4
  236. X.tin5k
  237. X.ton4a
  238. X.to4p
  239. X.top5i
  240. X.tou5s
  241. X.trib5ut
  242. X.un1a
  243. X.un3ce
  244. X.under5
  245. X.un1e
  246. X.un5k
  247. X.un5o
  248. X.un3u
  249. X.up3
  250. X.ure3
  251. X.us5a
  252. X.ven4de
  253. X.ve5ra
  254. X.wil5i
  255. X.ye4
  256. X4ab.
  257. Xa5bal
  258. Xa5ban
  259. Xabe2
  260. Xab5erd
  261. Xabi5a
  262. Xab5it5ab
  263. Xab5lat
  264. Xab5o5liz
  265. X4abr
  266. Xab5rog
  267. Xab3ul
  268. Xa4car
  269. Xac5ard
  270. Xac5aro
  271. Xa5ceou
  272. Xac1er
  273. Xa5chet
  274. X4a2ci
  275. Xa3cie
  276. Xac1in
  277. Xa3cio
  278. Xac5rob
  279. Xact5if
  280. Xac3ul
  281. Xac4um
  282. Xa2d
  283. Xad4din
  284. Xad5er.
  285. X2adi
  286. Xa3dia
  287. Xad3ica
  288. Xadi4er
  289. Xa3dio
  290. Xa3dit
  291. Xa5diu
  292. Xad4le
  293. Xad3ow
  294. Xad5ran
  295. Xad4su
  296. X4adu
  297. Xa3duc
  298. Xad5um
  299. Xae4r
  300. Xaeri4e
  301. Xa2f
  302. Xaff4
  303. Xa4gab
  304. Xaga4n
  305. Xag5ell
  306. Xage4o
  307. X4ageu
  308. Xag1i
  309. X4ag4l
  310. Xag1n
  311. Xa2go
  312. X3agog
  313. Xag3oni
  314. Xa5guer
  315. Xag5ul
  316. Xa4gy
  317. Xa3ha
  318. Xa3he
  319. Xah4l
  320. Xa3ho
  321. Xai2
  322. Xa5ia
  323. Xa3ic.
  324. Xai5ly
  325. Xa4i4n
  326. Xain5in
  327. Xain5o
  328. Xait5en
  329. Xa1j
  330. Xak1en
  331. Xal5ab
  332. Xal3ad
  333. Xa4lar
  334. X4aldi
  335. X2ale
  336. Xal3end
  337. Xa4lenti
  338. Xa5le5o
  339. Xal1i
  340. Xal4ia.
  341. Xali4e
  342. Xal5lev
  343. X4allic
  344. X4alm
  345. Xa5log.
  346. Xa4ly.
  347. X4alys
  348. X5a5lyst
  349. X5alyt
  350. X3alyz
  351. X4ama
  352. Xam5ab
  353. Xam3ag
  354. Xama5ra
  355. Xam5asc
  356. Xa4matis
  357. Xa4m5ato
  358. Xam5era
  359. Xam3ic
  360. Xam5if
  361. Xam5ily
  362. Xam1in
  363. Xami4no
  364. Xa2mo
  365. Xa5mon
  366. Xamor5i
  367. Xamp5en
  368. Xa2n
  369. Xan3age
  370. X3analy
  371. Xa3nar
  372. Xan3arc
  373. Xanar4i
  374. Xa3nati
  375. X4and
  376. Xande4s
  377. Xan3dis
  378. Xan1dl
  379. Xan4dow
  380. Xa5nee
  381. Xa3nen
  382. Xan5est.
  383. Xa3neu
  384. X2ang
  385. Xang5ie
  386. Xan1gl
  387. Xa4n1ic
  388. Xa3nies
  389. Xan3i3f
  390. Xan4ime
  391. Xa5nimi
  392. Xa5nine
  393. Xan3io
  394. Xa3nip
  395. Xan3ish
  396. Xan3it
  397. Xa3niu
  398. Xan4kli
  399. X5anniz
  400. Xano4
  401. Xan5ot
  402. Xanoth5
  403. Xan2sa
  404. Xan4sco
  405. Xan4sn
  406. Xan2sp
  407. Xans3po
  408. Xan4st
  409. Xan4sur
  410. Xantal4
  411. Xan4tie
  412. X4anto
  413. Xan2tr
  414. Xan4tw
  415. Xan3ua
  416. Xan3ul
  417. Xa5nur
  418. X4ao
  419. Xapar4
  420. Xap5at
  421. Xap5ero
  422. Xa3pher
  423. X4aphi
  424. Xa4pilla
  425. Xap5illar
  426. Xap3in
  427. Xap3ita
  428. Xa3pitu
  429. Xa2pl
  430. Xapoc5
  431. Xap5ola
  432. Xapor5i
  433. Xapos3t
  434. Xaps5es
  435. Xa3pu
  436. Xaque5
  437. X2a2r
  438. Xar3act
  439. Xa5rade
  440. Xar5adis
  441. Xar3al
  442. Xa5ramete
  443. Xaran4g
  444. Xara3p
  445. Xar4at
  446. Xa5ratio
  447. Xar5ativ
  448. Xa5rau
  449. Xar5av4
  450. Xaraw4
  451. Xarbal4
  452. Xar4chan
  453. Xar5dine
  454. Xar4dr
  455. Xar5eas
  456. Xa3ree
  457. Xar3ent
  458. Xa5ress
  459. Xar4fi
  460. Xar4fl
  461. Xar1i
  462. Xar5ial
  463. Xar3ian
  464. Xa3riet
  465. Xar4im
  466. Xar5inat
  467. Xar3io
  468. Xar2iz
  469. Xar2mi
  470. Xar5o5d
  471. Xa5roni
  472. Xa3roo
  473. Xar2p
  474. Xar3q
  475. Xarre4
  476. Xar4sa
  477. Xar2sh
  478. X4as.
  479. Xas4ab
  480. Xas3ant
  481. Xashi4
  482. Xa5sia.
  483. Xa3sib
  484. Xa3sic
  485. X5a5si4t
  486. Xask3i
  487. Xas4l
  488. Xa4soc
  489. Xas5ph
  490. Xas4sh
  491. Xas3ten
  492. Xas1tr
  493. Xasur5a
  494. Xa2ta
  495. Xat3abl
  496. Xat5ac
  497. Xat3alo
  498. Xat5ap
  499. Xate5c
  500. Xat5ech
  501. Xat3ego
  502. Xat3en.
  503. Xat3era
  504. Xater5n
  505. Xa5terna
  506. Xat3est
  507. Xat5ev
  508. X4ath
  509. Xath5em
  510. Xa5then
  511. Xat4ho
  512. Xath5om
  513. X4ati.
  514. Xa5tia
  515. Xat5i5b
  516. Xat1ic
  517. Xat3if
  518. Xation5ar
  519. Xat3itu
  520. Xa4tog
  521. Xa2tom
  522. Xat5omiz
  523. Xa4top
  524. Xa4tos
  525. Xa1tr
  526. Xat5rop
  527. Xat4sk
  528. Xat4tag
  529. Xat5te
  530. Xat4th
  531. Xa2tu
  532. Xat5ua
  533. Xat5ue
  534. Xat3ul
  535. Xat3ura
  536. Xa2ty
  537. Xau4b
  538. Xaugh3
  539. Xau3gu
  540. Xau4l2
  541. Xaun5d
  542. Xau3r
  543. Xau5sib
  544. Xaut5en
  545. Xau1th
  546. Xa2va
  547. Xav3ag
  548. Xa5van
  549. Xave4no
  550. Xav3era
  551. Xav5ern
  552. Xav5ery
  553. Xav1i
  554. Xavi4er
  555. Xav3ig
  556. Xav5oc
  557. Xa1vor
  558. X3away
  559. Xaw3i
  560. Xaw4ly
  561. Xaws4
  562. Xax4ic
  563. Xax4id
  564. Xay5al
  565. Xaye4
  566. Xays4
  567. Xazi4er
  568. Xazz5i
  569. X5ba.
  570. Xbad5ger
  571. Xba4ge
  572. Xbal1a
  573. Xban5dag
  574. Xban4e
  575. Xban3i
  576. Xbarbi5
  577. Xbari4a
  578. Xbas4si
  579. X1bat
  580. Xba4z
  581. X2b1b
  582. Xb2be
  583. Xb3ber
  584. Xbbi4na
  585. X4b1d
  586. X4be.
  587. Xbeak4
  588. Xbeat3
  589. X4be2d
  590. Xbe3da
  591. Xbe3de
  592. Xbe3di
  593. Xbe3gi
  594. Xbe5gu
  595. X1bel
  596. Xbe1li
  597. Xbe3lo
  598. X4be5m
  599. Xbe5nig
  600. Xbe5nu
  601. X4bes4
  602. Xbe3sp
  603. Xbe5str
  604. X3bet
  605. Xbet5iz
  606. Xbe5tr
  607. Xbe3tw
  608. Xbe3w
  609. Xbe5yo
  610. X2bf
  611. X4b3h
  612. Xbi2b
  613. Xbi4d
  614. X3bie
  615. Xbi5en
  616. Xbi4er
  617. X2b3if
  618. X1bil
  619. Xbi3liz
  620. Xbina5r4
  621. Xbin4d
  622. Xbi5net
  623. Xbi3ogr
  624. Xbi5ou
  625. Xbi2t
  626. X3bi3tio
  627. Xbi3tr
  628. X3bit5ua
  629. Xb5itz
  630. Xb1j
  631. Xbk4
  632. Xb2l2
  633. Xblath5
  634. Xb4le.
  635. Xblen4
  636. X5blesp
  637. Xb3lis
  638. Xb4lo
  639. Xblun4t
  640. X4b1m
  641. X4b3n
  642. Xbne5g
  643. X3bod
  644. Xbod3i
  645. Xbo4e
  646. Xbol3ic
  647. Xbom4bi
  648. Xbon4a
  649. Xbon5at
  650. X3boo
  651. X5bor.
  652. X4b1ora
  653. Xbor5d
  654. X5bore
  655. X5bori
  656. X5bos4
  657. Xb5ota
  658. Xboth5
  659. Xbo4to
  660. Xbound3
  661. X4bp
  662. X4brit
  663. Xbroth3
  664. X2b5s2
  665. Xbsor4
  666. X2bt
  667. Xbt4l
  668. Xb4to
  669. Xb3tr
  670. Xbuf4fer
  671. Xbu4ga
  672. Xbu3li
  673. Xbumi4
  674. Xbu4n
  675. Xbunt4i
  676. Xbu3re
  677. Xbus5ie
  678. Xbuss4e
  679. X5bust
  680. X4buta
  681. X3butio
  682. Xb5uto
  683. Xb1v
  684. X4b5w
  685. X5by.
  686. Xbys4
  687. X1ca
  688. Xcab3in
  689. Xca1bl
  690. Xcach4
  691. Xca5den
  692. X4cag4
  693. X2c5ah
  694. Xca3lat
  695. Xcal4la
  696. Xcall5in
  697. X4calo
  698. Xcan5d
  699. Xcan4e
  700. Xcan4ic
  701. Xcan5is
  702. Xcan3iz
  703. Xcan4ty
  704. Xcany4
  705. Xca5per
  706. Xcar5om
  707. Xcast5er
  708. Xcas5tig
  709. X4casy
  710. Xca4th
  711. X4cativ
  712. Xcav5al
  713. Xc3c
  714. Xccha5
  715. Xcci4a
  716. Xccompa5
  717. Xccon4
  718. Xccou3t
  719. X2ce.
  720. X4ced.
  721. X4ceden
  722. X3cei
  723. X5cel.
  724. X3cell
  725. X1cen
  726. X3cenc
  727. X2cen4e
  728. X4ceni
  729. X3cent
  730. X3cep
  731. Xce5ram
  732. X4cesa
  733. X3cessi
  734. Xces5si5b
  735. Xces5t
  736. Xcet4
  737. Xc5e4ta
  738. Xcew4
  739. X2ch
  740. X4ch.
  741. X4ch3ab
  742. X5chanic
  743. Xch5a5nis
  744. Xche2
  745. Xcheap3
  746. X4ched
  747. Xche5lo
  748. X3chemi
  749. Xch5ene
  750. Xch3er.
  751. Xch3ers
  752. X4ch1in
  753. X5chine.
  754. Xch5iness
  755. X5chini
  756. X5chio
  757. X3chit
  758. Xchi2z
  759. X3cho2
  760. Xch4ti
  761. X1ci
  762. X3cia
  763. Xci2a5b
  764. Xcia5r
  765. Xci5c
  766. X4cier
  767. X5cific.
  768. X4cii
  769. Xci4la
  770. X3cili
  771. X2cim
  772. X2cin
  773. Xc4ina
  774. X3cinat
  775. Xcin3em
  776. Xc1ing
  777. Xc5ing.
  778. X5cino
  779. Xcion4
  780. X4cipe
  781. Xci3ph
  782. X4cipic
  783. X4cista
  784. X4cisti
  785. X2c1it
  786. Xcit3iz
  787. X5ciz
  788. Xck1
  789. Xck3i
  790. X1c4l4
  791. X4clar
  792. Xc5laratio
  793. X5clare
  794. Xcle4m
  795. X4clic
  796. Xclim4
  797. Xcly4
  798. Xc5n
  799. X1co
  800. Xco5ag
  801. Xcoe2
  802. X2cog
  803. Xco4gr
  804. Xcoi4
  805. Xco3inc
  806. Xcol5i
  807. X5colo
  808. Xcol3or
  809. Xcom5er
  810. Xcon4a
  811. Xc4one
  812. Xcon3g
  813. Xcon5t
  814. Xco3pa
  815. Xcop3ic
  816. Xco4pl
  817. X4corb
  818. Xcoro3n
  819. Xcos4e
  820. Xcov1
  821. Xcove4
  822. Xcow5a
  823. Xcoz5e
  824. Xco5zi
  825. Xc1q
  826. Xcras5t
  827. X5crat.
  828. X5cratic
  829. Xcre3at
  830. X5cred
  831. X4c3reta
  832. Xcre4v
  833. Xcri2
  834. Xcri5f
  835. Xc4rin
  836. Xcris4
  837. X5criti
  838. Xcro4pl
  839. Xcrop5o
  840. Xcros4e
  841. Xcru4d
  842. X4c3s2
  843. X2c1t
  844. Xcta4b
  845. Xct5ang
  846. Xc5tant
  847. Xc2te
  848. Xc3ter
  849. Xc4ticu
  850. Xctim3i
  851. Xctu4r
  852. Xc4tw
  853. Xcud5
  854. Xc4uf
  855. Xc4ui
  856. Xcu5ity
  857. X5culi
  858. Xcul4tis
  859. X3cultu
  860. Xcu2ma
  861. Xc3ume
  862. Xcu4mi
  863. X3cun
  864. Xcu3pi
  865. Xcu5py
  866. Xcur5a4b
  867. Xcu5ria
  868. X1cus
  869. Xcuss4i
  870. X3c4ut
  871. Xcu4tie
  872. X4c5utiv
  873. X4cutr
  874. X1cy
  875. Xcze4
  876. X1d2a
  877. X5da.
  878. X2d3a4b
  879. Xdach4
  880. X4daf
  881. X2dag
  882. Xda2m2
  883. Xdan3g
  884. Xdard5
  885. Xdark5
  886. X4dary
  887. X3dat
  888. X4dativ
  889. X4dato
  890. X5dav4
  891. Xdav5e
  892. X5day
  893. Xd1b
  894. Xd5c
  895. Xd1d4
  896. X2de.
  897. Xdeaf5
  898. Xdeb5it
  899. Xde4bon
  900. Xdecan4
  901. Xde4cil
  902. Xde5com
  903. X2d1ed
  904. X4dee.
  905. Xde5if
  906. Xdeli4e
  907. Xdel5i5q
  908. Xde5lo
  909. Xd4em
  910. X5dem.
  911. X3demic
  912. Xdem5ic.
  913. Xde5mil
  914. Xde4mons
  915. Xdemor5
  916. X1den
  917. Xde4nar
  918. Xde3no
  919. Xdenti5f
  920. Xde3nu
  921. Xde1p
  922. Xde3pa
  923. Xdepi4
  924. Xde2pu
  925. Xd3eq
  926. Xd4erh
  927. X5derm
  928. Xdern5iz
  929. Xder5s
  930. Xdes2
  931. Xd2es.
  932. Xde1sc
  933. Xde2s5o
  934. Xdes3ti
  935. Xde3str
  936. Xde4su
  937. Xde1t
  938. Xde2to
  939. Xde1v
  940. Xdev3il
  941. X4dey
  942. X4d1f
  943. Xd4ga
  944. Xd3ge4t
  945. Xdg1i
  946. Xd2gy
  947. Xd1h2
  948. X5di.
  949. X1d4i3a
  950. Xdia5b
  951. Xdi4cam
  952. Xd4ice
  953. X3dict
  954. X3did
  955. X5di3en
  956. Xd1if
  957. Xdi3ge
  958. Xdi4lato
  959. Xd1in
  960. X1dina
  961. X3dine.
  962. X5dini
  963. Xdi5niz
  964. X1dio
  965. Xdio5g
  966. Xdi4pl
  967. Xdir2
  968. Xdi1re
  969. Xdirt5i
  970. Xdis1
  971. X5disi
  972. Xd4is3t
  973. Xd2iti
  974. X1di1v
  975. Xd1j
  976. Xd5k2
  977. X4d5la
  978. X3dle.
  979. X3dled
  980. X3dles.
  981. X4dless
  982. X2d3lo
  983. X4d5lu
  984. X2dly
  985. Xd1m
  986. X4d1n4
  987. X1do
  988. X3do.
  989. Xdo5de
  990. X5doe
  991. X2d5of
  992. Xd4og
  993. Xdo4la
  994. Xdoli4
  995. Xdo5lor
  996. Xdom5iz
  997. Xdo3nat
  998. Xdoni4
  999. Xdoo3d
  1000. Xdop4p
  1001. Xd4or
  1002. X3dos
  1003. X4d5out
  1004. Xdo4v
  1005. X3dox
  1006. Xd1p
  1007. X1dr
  1008. Xdrag5on
  1009. X4drai
  1010. Xdre4
  1011. Xdrea5r
  1012. X5dren
  1013. Xdri4b
  1014. Xdril4
  1015. Xdro4p
  1016. X4drow
  1017. X5drupli
  1018. X4dry
  1019. X2d1s2
  1020. Xds4p
  1021. Xd4sw
  1022. Xd4sy
  1023. Xd2th
  1024. X1du
  1025. Xd1u1a
  1026. Xdu2c
  1027. Xd1uca
  1028. Xduc5er
  1029. X4duct.
  1030. X4ducts
  1031. Xdu5el
  1032. Xdu4g
  1033. Xd3ule
  1034. Xdum4be
  1035. Xdu4n
  1036. X4dup
  1037. Xdu4pe
  1038. Xd1v
  1039. Xd1w
  1040. Xd2y
  1041. X5dyn
  1042. Xdy4se
  1043. Xdys5p
  1044. Xe1a4b
  1045. Xe3act
  1046. Xead1
  1047. Xead5ie
  1048. Xea4ge
  1049. Xea5ger
  1050. Xea4l
  1051. Xeal5er
  1052. Xeal3ou
  1053. Xeam3er
  1054. Xe5and
  1055. Xear3a
  1056. Xear4c
  1057. Xear5es
  1058. Xear4ic
  1059. Xear4il
  1060. Xear5k
  1061. Xear2t
  1062. Xeart3e
  1063. Xea5sp
  1064. Xe3ass
  1065. Xeast3
  1066. Xea2t
  1067. Xeat5en
  1068. Xeath3i
  1069. Xe5atif
  1070. Xe4a3tu
  1071. Xea2v
  1072. Xeav3en
  1073. Xeav5i
  1074. Xeav5o
  1075. X2e1b
  1076. Xe4bel.
  1077. Xe4bels
  1078. Xe4ben
  1079. Xe4bit
  1080. Xe3br
  1081. Xe4cad
  1082. Xecan5c
  1083. Xecca5
  1084. Xe1ce
  1085. Xec5essa
  1086. Xec2i
  1087. Xe4cib
  1088. Xec5ificat
  1089. Xec5ifie
  1090. Xec5ify
  1091. Xec3im
  1092. Xeci4t
  1093. Xe5cite
  1094. Xe4clam
  1095. Xe4clus
  1096. Xe2col
  1097. Xe4comm
  1098. Xe4compe
  1099. Xe4conc
  1100. Xe2cor
  1101. Xec3ora
  1102. Xeco5ro
  1103. Xe1cr
  1104. Xe4crem
  1105. Xec4tan
  1106. Xec4te
  1107. Xe1cu
  1108. Xe4cul
  1109. Xec3ula
  1110. X2e2da
  1111. X4ed3d
  1112. Xe4d1er
  1113. Xede4s
  1114. X4edi
  1115. Xe3dia
  1116. Xed3ib
  1117. Xed3ica
  1118. Xed3im
  1119. Xed1it
  1120. Xedi5z
  1121. X4edo
  1122. Xe4dol
  1123. Xedon2
  1124. Xe4dri
  1125. Xe4dul
  1126. Xed5ulo
  1127. Xee2c
  1128. Xeed3i
  1129. Xee2f
  1130. Xeel3i
  1131. Xee4ly
  1132. Xee2m
  1133. Xee4na
  1134. Xee4p1
  1135. Xee2s4
  1136. Xeest4
  1137. Xee4ty
  1138. Xe5ex
  1139. Xe1f
  1140. Xe4f3ere
  1141. X1eff
  1142. Xe4fic
  1143. X5efici
  1144. Xefil4
  1145. Xe3fine
  1146. Xef5i5nite
  1147. X3efit
  1148. Xefor5es
  1149. Xe4fuse.
  1150. X4egal
  1151. Xeger4
  1152. Xeg5ib
  1153. Xeg4ic
  1154. Xeg5ing
  1155. Xe5git5
  1156. Xeg5n
  1157. Xe4go.
  1158. Xe4gos
  1159. Xeg1ul
  1160. Xe5gur
  1161. X5egy
  1162. Xe1h4
  1163. Xeher4
  1164. Xei2
  1165. Xe5ic
  1166. Xei5d
  1167. Xeig2
  1168. Xei5gl
  1169. Xe3imb
  1170. Xe3inf
  1171. Xe1ing
  1172. Xe5inst
  1173. Xeir4d
  1174. Xeit3e
  1175. Xei3th
  1176. Xe5ity
  1177. Xe1j
  1178. Xe4jud
  1179. Xej5udi
  1180. Xeki4n
  1181. Xek4la
  1182. Xe1la
  1183. Xe4la.
  1184. Xe4lac
  1185. Xelan4d
  1186. Xel5ativ
  1187. Xe4law
  1188. Xelaxa4
  1189. Xe3lea
  1190. Xel5ebra
  1191. X5elec
  1192. Xe4led
  1193. Xel3ega
  1194. Xe5len
  1195. Xe4l1er
  1196. Xe1les
  1197. Xel2f
  1198. Xel2i
  1199. Xe3libe
  1200. Xe4l5ic.
  1201. Xel3ica
  1202. Xe3lier
  1203. Xel5igib
  1204. Xe5lim
  1205. Xe4l3ing
  1206. Xe3lio
  1207. Xe2lis
  1208. Xel5ish
  1209. Xe3liv3
  1210. X4ella
  1211. Xel4lab
  1212. Xello4
  1213. Xe5loc
  1214. Xel5og
  1215. Xel3op.
  1216. Xel2sh
  1217. Xel4ta
  1218. Xe5lud
  1219. Xel5ug
  1220. Xe4mac
  1221. Xe4mag
  1222. Xe5man
  1223. Xem5ana
  1224. Xem5b
  1225. Xe1me
  1226. Xe2mel
  1227. Xe4met
  1228. Xem3ica
  1229. Xemi4e
  1230. Xem5igra
  1231. Xem1in2
  1232. Xem5ine
  1233. Xem3i3ni
  1234. Xe4mis
  1235. Xem5ish
  1236. Xe5miss
  1237. Xem3iz
  1238. X5emniz
  1239. Xemo4g
  1240. Xemoni5o
  1241. Xem3pi
  1242. Xe4mul
  1243. Xem5ula
  1244. Xemu3n
  1245. Xe3my
  1246. Xen5amo
  1247. Xe4nant
  1248. Xench4er
  1249. Xen3dic
  1250. Xe5nea
  1251. Xe5nee
  1252. Xen3em
  1253. Xen5ero
  1254. Xen5esi
  1255. Xen5est
  1256. Xen3etr
  1257. Xe3new
  1258. Xen5ics
  1259. Xe5nie
  1260. Xe5nil
  1261. Xe3nio
  1262. Xen3ish
  1263. Xen3it
  1264. Xe5niu
  1265. X5eniz
  1266. X4enn
  1267. X4eno
  1268. Xeno4g
  1269. Xe4nos
  1270. Xen3ov
  1271. Xen4sw
  1272. Xent5age
  1273. X4enthes
  1274. Xen3ua
  1275. Xen5uf
  1276. Xe3ny.
  1277. X4en3z
  1278. Xe5of
  1279. Xeo2g
  1280. Xe4oi4
  1281. Xe3ol
  1282. Xeop3ar
  1283. Xe1or
  1284. Xeo3re
  1285. Xeo5rol
  1286. Xeos4
  1287. Xe4ot
  1288. Xeo4to
  1289. Xe5out
  1290. Xe5ow
  1291. Xe2pa
  1292. Xe3pai
  1293. Xep5anc
  1294. Xe5pel
  1295. Xe3pent
  1296. Xep5etitio
  1297. Xephe4
  1298. Xe4pli
  1299. Xe1po
  1300. Xe4prec
  1301. Xep5reca
  1302. Xe4pred
  1303. Xep3reh
  1304. Xe3pro
  1305. Xe4prob
  1306. Xep4sh
  1307. Xep5ti5b
  1308. Xe4put
  1309. Xep5uta
  1310. Xe1q
  1311. Xequi3l
  1312. Xe4q3ui3s
  1313. Xer1a
  1314. Xera4b
  1315. X4erand
  1316. Xer3ar
  1317. X4erati.
  1318. X2erb
  1319. Xer4bl
  1320. Xer3ch
  1321. Xer4che
  1322. X2ere.
  1323. Xe3real
  1324. Xere5co
  1325. Xere3in
  1326. Xer5el.
  1327. Xer3emo
  1328. Xer5ena
  1329. Xer5ence
  1330. X4erene
  1331. Xer3ent
  1332. Xere4q
  1333. Xer5ess
  1334. Xer3est
  1335. Xeret4
  1336. Xer1h
  1337. Xer1i
  1338. Xe1ria4
  1339. X5erick
  1340. Xe3rien
  1341. Xeri4er
  1342. Xer3ine
  1343. Xe1rio
  1344. X4erit
  1345. Xer4iu
  1346. Xeri4v
  1347. Xe4riva
  1348. Xer3m4
  1349. Xer4nis
  1350. X4ernit
  1351. X5erniz
  1352. Xer3no
  1353. X2ero
  1354. Xer5ob
  1355. Xe5roc
  1356. Xero4r
  1357. Xer1ou
  1358. Xer1s
  1359. Xer3set
  1360. Xert3er
  1361. X4ertl
  1362. Xer3tw
  1363. X4eru
  1364. Xeru4t
  1365. X5erwau
  1366. Xe1s4a
  1367. Xe4sage.
  1368. Xe4sages
  1369. Xes2c
  1370. Xe2sca
  1371. Xes5can
  1372. Xe3scr
  1373. Xes5cu
  1374. Xe1s2e
  1375. Xe2sec
  1376. Xes5ecr
  1377. Xes5enc
  1378. Xe4sert.
  1379. Xe4serts
  1380. Xe4serva
  1381. X4esh
  1382. Xe3sha
  1383. Xesh5en
  1384. Xe1si
  1385. Xe2sic
  1386. Xe2sid
  1387. Xes5iden
  1388. Xes5igna
  1389. Xe2s5im
  1390. Xes4i4n
  1391. Xesis4te
  1392. Xesi4u
  1393. Xe5skin
  1394. Xes4mi
  1395. Xe2sol
  1396. Xes3olu
  1397. Xe2son
  1398. Xes5ona
  1399. Xe1sp
  1400. Xes3per
  1401. Xes5pira
  1402. Xes4pre
  1403. X2ess
  1404. Xes4si4b
  1405. Xestan4
  1406. Xes3tig
  1407. Xes5tim
  1408. X4es2to
  1409. Xe3ston
  1410. X2estr
  1411. Xe5stro
  1412. Xestruc5
  1413. Xe2sur
  1414. Xes5urr
  1415. Xes4w
  1416. Xeta4b
  1417. Xeten4d
  1418. Xe3teo
  1419. Xethod3
  1420. Xet1ic
  1421. Xe5tide
  1422. Xetin4
  1423. Xeti4no
  1424. Xe5tir
  1425. Xe5titio
  1426. Xet5itiv
  1427. X4etn
  1428. Xet5ona
  1429. Xe3tra
  1430. Xe3tre
  1431. Xet3ric
  1432. Xet5rif
  1433. Xet3rog
  1434. Xet5ros
  1435. Xet3ua
  1436. Xet5ym
  1437. Xet5z
  1438. X4eu
  1439. Xe5un
  1440. Xe3up
  1441. Xeu3ro
  1442. Xeus4
  1443. Xeute4
  1444. Xeuti5l
  1445. Xeu5tr
  1446. Xeva2p5
  1447. Xe2vas
  1448. Xev5ast
  1449. Xe5vea
  1450. Xev3ell
  1451. Xevel3o
  1452. Xe5veng
  1453. Xeven4i
  1454. Xev1er
  1455. Xe5verb
  1456. Xe1vi
  1457. Xev3id
  1458. Xevi4l
  1459. Xe4vin
  1460. Xevi4v
  1461. Xe5voc
  1462. Xe5vu
  1463. Xe1wa
  1464. Xe4wag
  1465. Xe5wee
  1466. Xe3wh
  1467. Xewil5
  1468. Xew3ing
  1469. Xe3wit
  1470. X1exp
  1471. X5eyc
  1472. X5eye.
  1473. Xeys4
  1474. X1fa
  1475. Xfa3bl
  1476. Xfab3r
  1477. Xfa4ce
  1478. X4fag
  1479. Xfain4
  1480. Xfall5e
  1481. X4fa4ma
  1482. Xfam5is
  1483. X5far
  1484. Xfar5th
  1485. Xfa3ta
  1486. Xfa3the
  1487. X4fato
  1488. Xfault5
  1489. X4f5b
  1490. X4fd
  1491. X4fe.
  1492. Xfeas4
  1493. Xfeath3
  1494. Xfe4b
  1495. X4feca
  1496. X5fect
  1497. X2fed
  1498. Xfe3li
  1499. Xfe4mo
  1500. Xfen2d
  1501. Xfend5e
  1502. Xfer1
  1503. X5ferr
  1504. Xfev4
  1505. X4f1f
  1506. Xf4fes
  1507. Xf4fie
  1508. Xf5fin.
  1509. Xf2f5is
  1510. Xf4fly
  1511. Xf2fy
  1512. X4fh
  1513. X1fi
  1514. Xfi3a
  1515. X2f3ic.
  1516. X4f3ical
  1517. Xf3ican
  1518. X4ficate
  1519. Xf3icen
  1520. Xfi3cer
  1521. Xfic4i
  1522. X5ficia
  1523. X5ficie
  1524. X4fics
  1525. Xfi3cu
  1526. Xfi5del
  1527. Xfight5
  1528. Xfil5i
  1529. Xfill5in
  1530. X4fily
  1531. X2fin
  1532. X5fina
  1533. Xfin2d5
  1534. Xfi2ne
  1535. Xf1in3g
  1536. Xfin4n
  1537. Xfis4ti
  1538. Xf4l2
  1539. Xf5less
  1540. Xflin4
  1541. Xflo3re
  1542. Xf2ly5
  1543. X4fm
  1544. X4fn
  1545. X1fo
  1546. X5fon
  1547. Xfon4de
  1548. Xfon4t
  1549. Xfo2r
  1550. Xfo5rat
  1551. Xfor5ay
  1552. Xfore5t
  1553. Xfor4i
  1554. Xfort5a
  1555. Xfos5
  1556. X4f5p
  1557. Xfra4t
  1558. Xf5rea
  1559. Xfres5c
  1560. Xfri2
  1561. Xfril4
  1562. Xfrol5
  1563. X2f3s
  1564. X2ft
  1565. Xf4to
  1566. Xf2ty
  1567. X3fu
  1568. Xfu5el
  1569. X4fug
  1570. Xfu4min
  1571. Xfu5ne
  1572. Xfu3ri
  1573. Xfusi4
  1574. Xfus4s
  1575. X4futa
  1576. X1fy
  1577. X1ga
  1578. Xgaf4
  1579. X5gal.
  1580. X3gali
  1581. Xga3lo
  1582. X2gam
  1583. Xga5met
  1584. Xg5amo
  1585. Xgan5is
  1586. Xga3niz
  1587. Xgani5za
  1588. X4gano
  1589. Xgar5n4
  1590. Xgass4
  1591. Xgath3
  1592. X4gativ
  1593. X4gaz
  1594. Xg3b
  1595. Xgd4
  1596. X2ge.
  1597. X2ged
  1598. Xgeez4
  1599. Xgel4in
  1600. Xge5lis
  1601. Xge5liz
  1602. X4gely
  1603. X1gen
  1604. Xge4nat
  1605. Xge5niz
  1606. X4geno
  1607. X4geny
  1608. X1geo
  1609. Xge3om
  1610. Xg4ery
  1611. X5gesi
  1612. Xgeth5
  1613. X4geto
  1614. Xge4ty
  1615. Xge4v
  1616. X4g1g2
  1617. Xg2ge
  1618. Xg3ger
  1619. Xgglu5
  1620. Xggo4
  1621. Xgh3in
  1622. Xgh5out
  1623. Xgh4to
  1624. X5gi.
  1625. X1gi4a
  1626. Xgia5r
  1627. Xg1ic
  1628. X5gicia
  1629. Xg4ico
  1630. Xgien5
  1631. X5gies.
  1632. Xgil4
  1633. Xg3imen
  1634. X3g4in.
  1635. Xgin5ge
  1636. X5g4ins
  1637. X5gio
  1638. X3gir
  1639. Xgir4l
  1640. Xg3isl
  1641. Xgi4u
  1642. X5giv
  1643. X3giz
  1644. Xgl2
  1645. Xgla4
  1646. Xglad5i
  1647. X5glas
  1648. X1gle
  1649. Xgli4b
  1650. Xg3lig
  1651. X3glo
  1652. Xglo3r
  1653. Xg1m
  1654. Xg4my
  1655. Xgn4a
  1656. Xg4na.
  1657. Xgnet4t
  1658. Xg1ni
  1659. Xg2nin
  1660. Xg4nio
  1661. Xg1no
  1662. Xg4non
  1663. X1go
  1664. X3go.
  1665. Xgob5
  1666. X5goe
  1667. X3g4o4g
  1668. Xgo3is
  1669. Xgon2
  1670. X4g3o3na
  1671. Xgondo5
  1672. Xgo3ni
  1673. X5goo
  1674. Xgo5riz
  1675. Xgor5ou
  1676. X5gos.
  1677. Xgov1
  1678. Xg3p
  1679. X1gr
  1680. X4grada
  1681. Xg4rai
  1682. Xgran2
  1683. X5graph.
  1684. Xg5rapher
  1685. X5graphic
  1686. X4graphy
  1687. X4gray
  1688. Xgre4n
  1689. X4gress.
  1690. X4grit
  1691. Xg4ro
  1692. Xgruf4
  1693. Xgs2
  1694. Xg5ste
  1695. Xgth3
  1696. Xgu4a
  1697. X3guard
  1698. X2gue
  1699. X5gui5t
  1700. X3gun
  1701. X3gus
  1702. X4gu4t
  1703. Xg3w
  1704. X1gy
  1705. X2g5y3n
  1706. Xgy5ra
  1707. Xh3ab4l
  1708. Xhach4
  1709. Xhae4m
  1710. Xhae4t
  1711. Xh5agu
  1712. Xha3la
  1713. Xhala3m
  1714. Xha4m
  1715. Xhan4ci
  1716. Xhan4cy
  1717. X5hand.
  1718. Xhan4g
  1719. Xhang5er
  1720. Xhang5o
  1721. Xh5a5niz
  1722. Xhan4k
  1723. Xhan4te
  1724. Xhap3l
  1725. Xhap5t
  1726. Xha3ran
  1727. Xha5ras
  1728. Xhar2d
  1729. Xhard3e
  1730. Xhar4le
  1731. Xharp5en
  1732. Xhar5ter
  1733. Xhas5s
  1734. Xhaun4
  1735. X5haz
  1736. Xhaz3a
  1737. Xh1b
  1738. X1head
  1739. X3hear
  1740. Xhe4can
  1741. Xh5ecat
  1742. Xh4ed
  1743. Xhe5do5
  1744. Xhe3l4i
  1745. Xhel4lis
  1746. Xhel4ly
  1747. Xh5elo
  1748. Xhem4p
  1749. Xhe2n
  1750. Xhena4
  1751. Xhen5at
  1752. Xheo5r
  1753. Xhep5
  1754. Xh4era
  1755. Xhera3p
  1756. Xher4ba
  1757. Xhere5a
  1758. Xh3ern
  1759. Xh5erou
  1760. Xh3ery
  1761. Xh1es
  1762. Xhe2s5p
  1763. Xhe4t
  1764. Xhet4ed
  1765. Xheu4
  1766. Xh1f
  1767. Xh1h
  1768. Xhi5an
  1769. Xhi4co
  1770. Xhigh5
  1771. Xh4il2
  1772. Xhimer4
  1773. Xh4ina
  1774. Xhion4e
  1775. Xhi4p
  1776. Xhir4l
  1777. Xhi3ro
  1778. Xhir4p
  1779. Xhir4r
  1780. Xhis3el
  1781. Xhis4s
  1782. Xhith5er
  1783. Xhi2v
  1784. X4hk
  1785. X4h1l4
  1786. Xhlan4
  1787. Xh2lo
  1788. Xhlo3ri
  1789. X4h1m
  1790. Xhmet4
  1791. X2h1n
  1792. Xh5odiz
  1793. Xh5ods
  1794. Xho4g
  1795. Xhoge4
  1796. Xhol5ar
  1797. X3hol4e
  1798. Xho4ma
  1799. Xhome3
  1800. Xhon4a
  1801. Xho5ny
  1802. X3hood
  1803. Xhoon4
  1804. Xhor5at
  1805. Xho5ris
  1806. Xhort3e
  1807. Xho5ru
  1808. Xhos4e
  1809. Xho5sen
  1810. Xhos1p
  1811. X1hous
  1812. Xhouse3
  1813. Xhov5el
  1814. X4h5p
  1815. X4hr4
  1816. Xhree5
  1817. Xhro5niz
  1818. Xhro3po
  1819. X4h1s2
  1820. Xh4sh
  1821. Xh4tar
  1822. Xht1en
  1823. Xht5es
  1824. Xh4ty
  1825. Xhu4g
  1826. Xhu4min
  1827. Xhun5ke
  1828. Xhun4t
  1829. Xhus3t4
  1830. Xhu4t
  1831. Xh1w
  1832. Xh4wart
  1833. Xhy3pe
  1834. Xhy3ph
  1835. Xhy2s
  1836. X2i1a
  1837. Xi2al
  1838. Xiam4
  1839. Xiam5ete
  1840. Xi2an
  1841. X4ianc
  1842. Xian3i
  1843. X4ian4t
  1844. Xia5pe
  1845. Xiass4
  1846. Xi4ativ
  1847. Xia4tric
  1848. Xi4atu
  1849. Xibe4
  1850. Xib3era
  1851. Xib5ert
  1852. Xib5ia
  1853. Xib3in
  1854. Xib5it.
  1855. Xib5ite
  1856. Xi1bl
  1857. Xib3li
  1858. Xi5bo
  1859. Xi1br
  1860. Xi2b5ri
  1861. Xi5bun
  1862. X4icam
  1863. X5icap
  1864. X4icar
  1865. Xi4car.
  1866. Xi4cara
  1867. Xicas5
  1868. Xi4cay
  1869. Xiccu4
  1870. X4iceo
  1871. X4ich
  1872. X2ici
  1873. Xi5cid
  1874. Xic5ina
  1875. Xi2cip
  1876. Xic3ipa
  1877. Xi4cly
  1878. Xi2c5oc
  1879. X4i1cr
  1880. X5icra
  1881. Xi4cry
  1882. Xic4te
  1883. Xictu2
  1884. Xic4t3ua
  1885. Xic3ula
  1886. Xic4um
  1887. Xic5uo
  1888. Xi3cur
  1889. X2id
  1890. Xi4dai
  1891. Xid5anc
  1892. Xid5d
  1893. Xide3al
  1894. Xide4s
  1895. Xi2di
  1896. Xid5ian
  1897. Xidi4ar
  1898. Xi5die
  1899. Xid3io
  1900. Xidi5ou
  1901. Xid1it
  1902. Xid5iu
  1903. Xi3dle
  1904. Xi4dom
  1905. Xid3ow
  1906. Xi4dr
  1907. Xi2du
  1908. Xid5uo
  1909. X2ie4
  1910. Xied4e
  1911. X5ie5ga
  1912. Xield3
  1913. Xien5a4
  1914. Xien4e
  1915. Xi5enn
  1916. Xi3enti
  1917. Xi1er.
  1918. Xi3esc
  1919. Xi1est
  1920. Xi3et
  1921. X4if.
  1922. Xif5ero
  1923. Xiff5en
  1924. Xif4fr
  1925. X4ific.
  1926. Xi3fie
  1927. Xi3fl
  1928. X4ift
  1929. X2ig
  1930. Xiga5b
  1931. Xig3era
  1932. Xight3i
  1933. X4igi
  1934. Xi3gib
  1935. Xig3il
  1936. Xig3in
  1937. Xig3it
  1938. Xi4g4l
  1939. Xi2go
  1940. Xig3or
  1941. Xig5ot
  1942. Xi5gre
  1943. Xigu5i
  1944. Xig1ur
  1945. Xi3h
  1946. X4i5i4
  1947. Xi3j
  1948. X4ik
  1949. Xi1la
  1950. Xil3a4b
  1951. Xi4lade
  1952. Xi2l5am
  1953. Xila5ra
  1954. Xi3leg
  1955. Xil1er
  1956. Xilev4
  1957. Xil5f
  1958. Xil1i
  1959. Xil3ia
  1960. Xil2ib
  1961. Xil3io
  1962. Xil4ist
  1963. X2ilit
  1964. Xil2iz
  1965. Xill5ab
  1966. X4iln
  1967. Xil3oq
  1968. Xil4ty
  1969. Xil5ur
  1970. Xil3v
  1971. Xi4mag
  1972. Xim3age
  1973. Xima5ry
  1974. Ximenta5r
  1975. X4imet
  1976. Xim1i
  1977. Xim5ida
  1978. Ximi5le
  1979. Xi5mini
  1980. X4imit
  1981. Xim4ni
  1982. Xi3mon
  1983. Xi2mu
  1984. Xim3ula
  1985. X2in.
  1986. Xi4n3au
  1987. X4inav
  1988. Xincel4
  1989. Xin3cer
  1990. X4ind
  1991. Xin5dling
  1992. X2ine
  1993. Xi3nee
  1994. Xiner4ar
  1995. Xi5ness
  1996. X4inga
  1997. X4inge
  1998. Xin5gen
  1999. X4ingi
  2000. Xin5gling
  2001. X4ingo
  2002. X4ingu
  2003. X2ini
  2004. Xi5ni.
  2005. Xi4nia
  2006. Xin3io
  2007. Xin1is
  2008. Xi5nite.
  2009. X5initio
  2010. Xin3ity
  2011. X4ink
  2012. X4inl
  2013. X2inn
  2014. X2i1no
  2015. Xi4no4c
  2016. Xino4s
  2017. Xi4not
  2018. X2ins
  2019. Xin3se
  2020. Xinsur5a
  2021. X2int.
  2022. X2in4th
  2023. Xin1u
  2024. Xi5nus
  2025. X4iny
  2026. X2io
  2027. X4io.
  2028. Xioge4
  2029. Xio2gr
  2030. Xi1ol
  2031. Xio4m
  2032. Xion3at
  2033. Xion4ery
  2034. Xion3i
  2035. Xio5ph
  2036. Xior3i
  2037. Xi4os
  2038. Xio5th
  2039. Xi5oti
  2040. Xio4to
  2041. Xi4our
  2042. X2ip
  2043. Xipe4
  2044. Xiphras4
  2045. Xip3i
  2046. Xip4ic
  2047. Xip4re4
  2048. Xip3ul
  2049. Xi3qua
  2050. Xiq5uef
  2051. Xiq3uid
  2052. Xiq3ui3t
  2053. X4ir
  2054. Xi1ra
  2055. Xira4b
  2056. Xi4rac
  2057. Xird5e
  2058. Xire4de
  2059. Xi4ref
  2060. Xi4rel4
  2061. Xi4res
  2062. Xir5gi
  2063. Xir1i
  2064. Xiri5de
  2065. Xir4is
  2066. Xiri3tu
  2067. X5i5r2iz
  2068. Xir4min
  2069. Xiro4g
  2070. X5iron.
  2071. Xir5ul
  2072. X2is.
  2073. Xis5ag
  2074. Xis3ar
  2075. Xisas5
  2076. X2is1c
  2077. Xis3ch
  2078. X4ise
  2079. Xis3er
  2080. X3isf
  2081. Xis5han
  2082. Xis3hon
  2083. Xish5op
  2084. Xis3ib
  2085. Xisi4d
  2086. Xi5sis
  2087. Xis5itiv
  2088. X4is4k
  2089. Xislan4
  2090. X4isms
  2091. Xi2so
  2092. Xiso5mer
  2093. Xis1p
  2094. Xis2pi
  2095. Xis4py
  2096. X4is1s
  2097. Xis4sal
  2098. Xissen4
  2099. Xis4ses
  2100. Xis4ta.
  2101. Xis1te
  2102. Xis1ti
  2103. Xist4ly
  2104. X4istral
  2105. Xi2su
  2106. Xis5us
  2107. X4ita.
  2108. Xita4bi
  2109. Xi4tag
  2110. X4ita5m
  2111. Xi3tan
  2112. Xi3tat
  2113. X2ite
  2114. Xit3era
  2115. Xi5teri
  2116. Xit4es
  2117. X2ith
  2118. Xi1ti
  2119. X4itia
  2120. X4i2tic
  2121. Xit3ica
  2122. X5i5tick
  2123. Xit3ig
  2124. Xit5ill
  2125. Xi2tim
  2126. X2itio
  2127. X4itis
  2128. Xi4tism
  2129. Xi2t5o5m
  2130. X4iton
  2131. Xi4tram
  2132. Xit5ry
  2133. X4itt
  2134. Xit3uat
  2135. Xi5tud
  2136. Xit3ul
  2137. X4itz.
  2138. Xi1u
  2139. X2iv
  2140. Xiv3ell
  2141. Xiv3en.
  2142. Xi4v3er.
  2143. Xi4vers.
  2144. Xiv5il.
  2145. Xiv5io
  2146. Xiv1it
  2147. Xi5vore
  2148. Xiv3o3ro
  2149. Xi4v3ot
  2150. X4i5w
  2151. Xix4o
  2152. X4iy
  2153. X4izar
  2154. Xizi4
  2155. X5izont
  2156. X5ja
  2157. Xjac4q
  2158. Xja4p
  2159. X1je
  2160. Xjer5s
  2161. X4jestie
  2162. X4jesty
  2163. Xjew3
  2164. Xjo4p
  2165. X5judg
  2166. X3ka.
  2167. Xk3ab
  2168. Xk5ag
  2169. Xkais4
  2170. Xkal4
  2171. Xk1b
  2172. Xk2ed
  2173. X1kee
  2174. Xke4g
  2175. Xke5li
  2176. Xk3en4d
  2177. Xk1er
  2178. Xkes4
  2179. Xk3est.
  2180. Xke4ty
  2181. Xk3f
  2182. Xkh4
  2183. Xk1i
  2184. X5ki.
  2185. X5k2ic
  2186. Xk4ill
  2187. Xkilo5
  2188. Xk4im
  2189. Xk4in.
  2190. Xkin4de
  2191. Xk5iness
  2192. Xkin4g
  2193. Xki4p
  2194. Xkis4
  2195. Xk5ish
  2196. Xkk4
  2197. Xk1l
  2198. X4kley
  2199. X4kly
  2200. Xk1m
  2201. Xk5nes
  2202. X1k2no
  2203. Xko5r
  2204. Xkosh4
  2205. Xk3ou
  2206. Xkro5n
  2207. X4k1s2
  2208. Xk4sc
  2209. Xks4l
  2210. Xk4sy
  2211. Xk5t
  2212. Xk1w
  2213. Xlab3ic
  2214. Xl4abo
  2215. Xlaci4
  2216. Xl4ade
  2217. Xla3dy
  2218. Xlag4n
  2219. Xlam3o
  2220. X3land
  2221. Xlan4dl
  2222. Xlan5et
  2223. Xlan4te
  2224. Xlar4g
  2225. Xlar3i
  2226. Xlas4e
  2227. Xla5tan
  2228. X4lateli
  2229. X4lativ
  2230. X4lav
  2231. Xla4v4a
  2232. X2l1b
  2233. Xlbin4
  2234. X4l1c2
  2235. Xlce4
  2236. Xl3ci
  2237. X2ld
  2238. Xl2de
  2239. Xld4ere
  2240. Xld4eri
  2241. Xldi4
  2242. Xld5is
  2243. Xl3dr
  2244. Xl4dri
  2245. Xle2a
  2246. Xle4bi
  2247. Xleft5
  2248. X5leg.
  2249. X5legg
  2250. Xle4mat
  2251. Xlem5atic
  2252. X4len.
  2253. X3lenc
  2254. X5lene.
  2255. X1lent
  2256. Xle3ph
  2257. Xle4pr
  2258. Xlera5b
  2259. Xler4e
  2260. X3lerg
  2261. X3l4eri
  2262. Xl4ero
  2263. Xles2
  2264. Xle5sco
  2265. X5lesq
  2266. X3less
  2267. X5less.
  2268. Xl3eva
  2269. Xlev4er.
  2270. Xlev4era
  2271. Xlev4ers
  2272. X3ley
  2273. X4leye
  2274. X2lf
  2275. Xl5fr
  2276. X4l1g4
  2277. Xl5ga
  2278. Xlgar3
  2279. Xl4ges
  2280. Xlgo3
  2281. X2l3h
  2282. Xli4ag
  2283. Xli2am
  2284. Xliar5iz
  2285. Xli4as
  2286. Xli4ato
  2287. Xli5bi
  2288. X5licio
  2289. Xli4cor
  2290. X4lics
  2291. X4lict.
  2292. Xl4icu
  2293. Xl3icy
  2294. Xl3ida
  2295. Xlid5er
  2296. X3lidi
  2297. Xlif3er
  2298. Xl4iff
  2299. Xli4fl
  2300. X5ligate
  2301. X3ligh
  2302. Xli4gra
  2303. X3lik
  2304. X4l4i4l
  2305. Xlim4bl
  2306. Xlim3i
  2307. Xli4mo
  2308. Xl4im4p
  2309. Xl4ina
  2310. X1l4ine
  2311. Xlin3ea
  2312. Xlin3i
  2313. Xlink5er
  2314. Xli5og
  2315. X4l4iq
  2316. Xlis4p
  2317. Xl1it
  2318. Xl2it.
  2319. X5litica
  2320. Xl5i5tics
  2321. Xliv3er
  2322. Xl1iz
  2323. X4lj
  2324. Xlka3
  2325. Xl3kal
  2326. Xlka4t
  2327. Xl1l
  2328. Xl4law
  2329. Xl2le
  2330. Xl5lea
  2331. Xl3lec
  2332. Xl3leg
  2333. Xl3lel
  2334. Xl3le4n
  2335. Xl3le4t
  2336. Xll2i
  2337. Xl2lin4
  2338. Xl5lina
  2339. Xll4o
  2340. Xlloqui5
  2341. Xll5out
  2342. Xl5low
  2343. X2lm
  2344. Xl5met
  2345. Xlm3ing
  2346. Xl4mod
  2347. Xlmon4
  2348. X2l1n2
  2349. X3lo.
  2350. Xlob5al
  2351. Xlo4ci
  2352. X4lof
  2353. X3logic
  2354. Xl5ogo
  2355. X3logu
  2356. Xlom3er
  2357. X5long
  2358. Xlon4i
  2359. Xl3o3niz
  2360. Xlood5
  2361. X5lope.
  2362. Xlop3i
  2363. Xl3opm
  2364. Xlora4
  2365. Xlo4rato
  2366. Xlo5rie
  2367. Xlor5ou
  2368. X5los.
  2369. Xlos5et
  2370. X5losophiz
  2371. X5losophy
  2372. Xlos4t
  2373. Xlo4ta
  2374. Xloun5d
  2375. X2lout
  2376. X4lov
  2377. X2lp
  2378. Xlpa5b
  2379. Xl3pha
  2380. Xl5phi
  2381. Xlp5ing
  2382. Xl3pit
  2383. Xl4pl
  2384. Xl5pr
  2385. X4l1r
  2386. X2l1s2
  2387. Xl4sc
  2388. Xl2se
  2389. Xl4sie
  2390. X4lt
  2391. Xlt5ag
  2392. Xltane5
  2393. Xl1te
  2394. Xlten4
  2395. Xltera4
  2396. Xlth3i
  2397. Xl5ties.
  2398. Xltis4
  2399. Xl1tr
  2400. Xltu2
  2401. Xltur3a
  2402. Xlu5a
  2403. Xlu3br
  2404. Xluch4
  2405. Xlu3ci
  2406. Xlu3en
  2407. Xluf4
  2408. Xlu5id
  2409. Xlu4ma
  2410. X5lumi
  2411. Xl5umn.
  2412. X5lumnia
  2413. Xlu3o
  2414. Xluo3r
  2415. X4lup
  2416. Xluss4
  2417. Xlus3te
  2418. X1lut
  2419. Xl5ven
  2420. Xl5vet4
  2421. X2l1w
  2422. X1ly
  2423. X4lya
  2424. X4lyb
  2425. Xly5me
  2426. Xly3no
  2427. X2lys4
  2428. Xl5yse
  2429. X1ma
  2430. X2mab
  2431. Xma2ca
  2432. Xma5chine
  2433. Xma4cl
  2434. Xmag5in
  2435. X5magn
  2436. X2mah
  2437. Xmaid5
  2438. X4mald
  2439. Xma3lig
  2440. Xma5lin
  2441. Xmal4li
  2442. Xmal4ty
  2443. X5mania
  2444. Xman5is
  2445. Xman3iz
  2446. X4map
  2447. Xma5rine.
  2448. Xma5riz
  2449. Xmar4ly
  2450. Xmar3v
  2451. Xma5sce
  2452. Xmas4e
  2453. Xmas1t
  2454. X5mate
  2455. Xmath3
  2456. Xma3tis
  2457. X4matiza
  2458. X4m1b
  2459. Xmba4t5
  2460. Xm5bil
  2461. Xm4b3ing
  2462. Xmbi4v
  2463. X4m5c
  2464. X4me.
  2465. X2med
  2466. X4med.
  2467. X5media
  2468. Xme3die
  2469. Xm5e5dy
  2470. Xme2g
  2471. Xmel5on
  2472. Xmel4t
  2473. Xme2m
  2474. Xmem1o3
  2475. X1men
  2476. Xmen4a
  2477. Xmen5ac
  2478. Xmen4de
  2479. X4mene
  2480. Xmen4i
  2481. Xmens4
  2482. Xmensu5
  2483. X3ment
  2484. Xmen4te
  2485. Xme5on
  2486. Xm5ersa
  2487. X2mes
  2488. X3mesti
  2489. Xme4ta
  2490. Xmet3al
  2491. Xme1te
  2492. Xme5thi
  2493. Xm4etr
  2494. X5metric
  2495. Xme5trie
  2496. Xme3try
  2497. Xme4v
  2498. X4m1f
  2499. X2mh
  2500. X5mi.
  2501. Xmi3a
  2502. Xmid4a
  2503. Xmid4g
  2504. Xmig4
  2505. X3milia
  2506. Xm5i5lie
  2507. Xm4ill
  2508. Xmin4a
  2509. X3mind
  2510. Xm5inee
  2511. Xm4ingl
  2512. Xmin5gli
  2513. Xm5ingly
  2514. Xmin4t
  2515. Xm4inu
  2516. Xmiot4
  2517. Xm2is
  2518. Xmis4er.
  2519. Xmis5l
  2520. Xmis4ti
  2521. Xm5istry
  2522. X4mith
  2523. Xm2iz
  2524. X4mk
  2525. X4m1l
  2526. Xm1m
  2527. Xmma5ry
  2528. X4m1n
  2529. Xmn4a
  2530. Xm4nin
  2531. Xmn4o
  2532. X1mo
  2533. X4mocr
  2534. X5mocratiz
  2535. Xmo2d1
  2536. Xmo4go
  2537. Xmois2
  2538. Xmoi5se
  2539. X4mok
  2540. Xmo5lest
  2541. Xmo3me
  2542. Xmon5et
  2543. Xmon5ge
  2544. Xmoni3a
  2545. Xmon4ism
  2546. Xmon4ist
  2547. Xmo3niz
  2548. Xmonol4
  2549. Xmo3ny.
  2550. Xmo2r
  2551. X4mora.
  2552. Xmos2
  2553. Xmo5sey
  2554. Xmo3sp
  2555. Xmoth3
  2556. Xm5ouf
  2557. X3mous
  2558. Xmo2v
  2559. X4m1p
  2560. Xmpara5
  2561. Xmpa5rab
  2562. Xmpar5i
  2563. Xm3pet
  2564. Xmphas4
  2565. Xm2pi
  2566. Xmpi4a
  2567. Xmp5ies
  2568. Xm4p1in
  2569. Xm5pir
  2570. Xmp5is
  2571. Xmpo3ri
  2572. Xmpos5ite
  2573. Xm4pous
  2574. Xmpov5
  2575. Xmp4tr
  2576. Xm2py
  2577. X4m3r
  2578. X4m1s2
  2579. Xm4sh
  2580. Xm5si
  2581. X4mt
  2582. X1mu
  2583. Xmula5r4
  2584. X5mult
  2585. Xmulti3
  2586. X3mum
  2587. Xmun2
  2588. X4mup
  2589. Xmu4u
  2590. X4mw
  2591. X1na
  2592. X2n1a2b
  2593. Xn4abu
  2594. X4nac.
  2595. Xna4ca
  2596. Xn5act
  2597. Xnag5er.
  2598. Xnak4
  2599. Xna4li
  2600. Xna5lia
  2601. X4nalt
  2602. Xna5mit
  2603. Xn2an
  2604. Xnanci4
  2605. Xnan4it
  2606. Xnank4
  2607. Xnar3c
  2608. X4nare
  2609. Xnar3i
  2610. Xnar4l
  2611. Xn5arm
  2612. Xn4as
  2613. Xnas4c
  2614. Xnas5ti
  2615. Xn2at
  2616. Xna3tal
  2617. Xnato5miz
  2618. Xn2au
  2619. Xnau3se
  2620. X3naut
  2621. Xnav4e
  2622. X4n1b4
  2623. Xncar5
  2624. Xn4ces.
  2625. Xn3cha
  2626. Xn5cheo
  2627. Xn5chil
  2628. Xn3chis
  2629. Xnc1in
  2630. Xnc4it
  2631. Xncour5a
  2632. Xn1cr
  2633. Xn1cu
  2634. Xn4dai
  2635. Xn5dan
  2636. Xn1de
  2637. Xnd5est.
  2638. Xndi4b
  2639. Xn5d2if
  2640. Xn1dit
  2641. Xn3diz
  2642. Xn5duc
  2643. Xndu4r
  2644. Xnd2we
  2645. X2ne.
  2646. Xn3ear
  2647. Xne2b
  2648. Xneb3u
  2649. Xne2c
  2650. X5neck
  2651. X2ned
  2652. Xne4gat
  2653. Xneg5ativ
  2654. X5nege
  2655. Xne4la
  2656. Xnel5iz
  2657. Xne5mi
  2658. Xne4mo
  2659. X1nen
  2660. X4nene
  2661. X3neo
  2662. Xne4po
  2663. Xne2q
  2664. Xn1er
  2665. Xnera5b
  2666. Xn4erar
  2667. Xn2ere
  2668. Xn4er5i
  2669. Xner4r
  2670. X1nes
  2671. X2nes.
  2672. X4nesp
  2673. X2nest
  2674. X4nesw
  2675. X3netic
  2676. Xne4v
  2677. Xn5eve
  2678. Xne4w
  2679. Xn3f
  2680. Xn4gab
  2681. Xn3gel
  2682. Xnge4n4e
  2683. Xn5gere
  2684. Xn3geri
  2685. Xng5ha
  2686. Xn3gib
  2687. Xng1in
  2688. Xn5git
  2689. Xn4gla
  2690. Xngov4
  2691. Xng5sh
  2692. Xn1gu
  2693. Xn4gum
  2694. Xn2gy
  2695. X4n1h4
  2696. Xnha4
  2697. Xnhab3
  2698. Xnhe4
  2699. X3n4ia
  2700. Xni3an
  2701. Xni4ap
  2702. Xni3ba
  2703. Xni4bl
  2704. Xni4d
  2705. Xni5di
  2706. Xni4er
  2707. Xni2fi
  2708. Xni5ficat
  2709. Xn5igr
  2710. Xnik4
  2711. Xn1im
  2712. Xni3miz
  2713. Xn1in
  2714. X5nine.
  2715. Xnin4g
  2716. Xni4o
  2717. X5nis.
  2718. Xnis4ta
  2719. Xn2it
  2720. Xn4ith
  2721. X3nitio
  2722. Xn3itor
  2723. Xni3tr
  2724. Xn1j
  2725. X4nk2
  2726. Xn5kero
  2727. Xn3ket
  2728. Xnk3in
  2729. Xn1kl
  2730. X4n1l
  2731. Xn5m
  2732. Xnme4
  2733. Xnmet4
  2734. X4n1n2
  2735. Xnne4
  2736. Xnni3al
  2737. Xnni4v
  2738. Xnob4l
  2739. Xno3ble
  2740. Xn5ocl
  2741. X4n3o2d
  2742. X3noe
  2743. X4nog
  2744. Xnoge4
  2745. Xnois5i
  2746. Xno5l4i
  2747. X5nologis
  2748. X3nomic
  2749. Xn5o5miz
  2750. Xno4mo
  2751. Xno3my
  2752. Xno4n
  2753. Xnon4ag
  2754. Xnon5i
  2755. Xn5oniz
  2756. X4nop
  2757. X5nop5o5li
  2758. Xnor5ab
  2759. Xno4rary
  2760. X4nosc
  2761. Xnos4e
  2762. Xnos5t
  2763. Xno5ta
  2764. X1nou
  2765. X3noun
  2766. Xnov3el3
  2767. Xnowl3
  2768. Xn1p4
  2769. Xnpi4
  2770. Xnpre4c
  2771. Xn1q
  2772. Xn1r
  2773. Xnru4
  2774. X2n1s2
  2775. Xns5ab
  2776. Xnsati4
  2777. Xns4c
  2778. Xn2se
  2779. Xn4s3es
  2780. Xnsid1
  2781. Xnsig4
  2782. Xn2sl
  2783. Xns3m
  2784. Xn4soc
  2785. Xns4pe
  2786. Xn5spi
  2787. Xnsta5bl
  2788. Xn1t
  2789. Xnta4b
  2790. Xnter3s
  2791. Xnt2i
  2792. Xn5tib
  2793. Xnti4er
  2794. Xnti2f
  2795. Xn3tine
  2796. Xn4t3ing
  2797. Xnti4p
  2798. Xntrol5li
  2799. Xnt4s
  2800. Xntu3me
  2801. Xnu1a
  2802. Xnu4d
  2803. Xnu5en
  2804. Xnuf4fe
  2805. Xn3uin
  2806. X3nu3it
  2807. Xn4um
  2808. Xnu1me
  2809. Xn5umi
  2810. X3nu4n
  2811. Xn3uo
  2812. Xnu3tr
  2813. Xn1v2
  2814. Xn1w4
  2815. Xnym4
  2816. Xnyp4
  2817. X4nz
  2818. Xn3za
  2819. X4oa
  2820. Xoad3
  2821. Xo5a5les
  2822. Xoard3
  2823. Xoas4e
  2824. Xoast5e
  2825. Xoat5i
  2826. Xob3a3b
  2827. Xo5bar
  2828. Xobe4l
  2829. Xo1bi
  2830. Xo2bin
  2831. Xob5ing
  2832. Xo3br
  2833. Xob3ul
  2834. Xo1ce
  2835. Xoch4
  2836. Xo3chet
  2837. Xocif3
  2838. Xo4cil
  2839. Xo4clam
  2840. Xo4cod
  2841. Xoc3rac
  2842. Xoc5ratiz
  2843. Xocre3
  2844. X5ocrit
  2845. Xoctor5a
  2846. Xoc3ula
  2847. Xo5cure
  2848. Xod5ded
  2849. Xod3ic
  2850. Xodi3o
  2851. Xo2do4
  2852. Xodor3
  2853. Xod5uct.
  2854. Xod5ucts
  2855. Xo4el
  2856. Xo5eng
  2857. Xo3er
  2858. Xoe4ta
  2859. Xo3ev
  2860. Xo2fi
  2861. Xof5ite
  2862. Xofit4t
  2863. Xo2g5a5r
  2864. Xog5ativ
  2865. Xo4gato
  2866. Xo1ge
  2867. Xo5gene
  2868. Xo5geo
  2869. Xo4ger
  2870. Xo3gie
  2871. X1o1gis
  2872. Xog3it
  2873. Xo4gl
  2874. Xo5g2ly
  2875. X3ogniz
  2876. Xo4gro
  2877. Xogu5i
  2878. X1ogy
  2879. X2ogyn
  2880. Xo1h2
  2881. Xohab5
  2882. Xoi2
  2883. Xoic3es
  2884. Xoi3der
  2885. Xoiff4
  2886. Xoig4
  2887. Xoi5let
  2888. Xo3ing
  2889. Xoint5er
  2890. Xo5ism
  2891. Xoi5son
  2892. Xoist5en
  2893. Xoi3ter
  2894. Xo5j
  2895. X2ok
  2896. Xo3ken
  2897. Xok5ie
  2898. Xo1la
  2899. Xo4lan
  2900. Xolass4
  2901. Xol2d
  2902. Xold1e
  2903. Xol3er
  2904. Xo3lesc
  2905. Xo3let
  2906. Xol4fi
  2907. Xol2i
  2908. Xo3lia
  2909. Xo3lice
  2910. Xol5id.
  2911. Xo3li4f
  2912. Xo5lil
  2913. Xol3ing
  2914. Xo5lio
  2915. Xo5lis.
  2916. Xol3ish
  2917. Xo5lite
  2918. Xo5litio
  2919. Xo5liv
  2920. Xolli4e
  2921. Xol5ogiz
  2922. Xolo4r
  2923. Xol5pl
  2924. Xol2t
  2925. Xol3ub
  2926. Xol3ume
  2927. Xol3un
  2928. Xo5lus
  2929. Xol2v
  2930. Xo2ly
  2931. Xom5ah
  2932. Xoma5l
  2933. Xom5atiz
  2934. Xom2be
  2935. Xom4bl
  2936. Xo2me
  2937. Xom3ena
  2938. Xom5erse
  2939. Xo4met
  2940. Xom5etry
  2941. Xo3mia
  2942. Xom3ic.
  2943. Xom3ica
  2944. Xo5mid
  2945. Xom1in
  2946. Xo5mini
  2947. X5ommend
  2948. Xomo4ge
  2949. Xo4mon
  2950. Xom3pi
  2951. Xompro5
  2952. Xo2n
  2953. Xon1a
  2954. Xon4ac
  2955. Xo3nan
  2956. Xon1c
  2957. X3oncil
  2958. X2ond
  2959. Xon5do
  2960. Xo3nen
  2961. Xon5est
  2962. Xon4gu
  2963. Xon1ic
  2964. Xo3nio
  2965. Xon1is
  2966. Xo5niu
  2967. Xon3key
  2968. Xon4odi
  2969. Xon3omy
  2970. Xon3s
  2971. Xonspi4
  2972. Xonspir5a
  2973. Xonsu4
  2974. Xonten4
  2975. Xon3t4i
  2976. Xontif5
  2977. Xon5um
  2978. Xonva5
  2979. Xoo2
  2980. Xood5e
  2981. Xood5i
  2982. Xoo4k
  2983. Xoop3i
  2984. Xo3ord
  2985. Xoost5
  2986. Xo2pa
  2987. Xope5d
  2988. Xop1er
  2989. X3opera
  2990. X4operag
  2991. X2oph
  2992. Xo5phan
  2993. Xo5pher
  2994. Xop3ing
  2995. Xo3pit
  2996. Xo5pon
  2997. Xo4posi
  2998. Xo1pr
  2999. Xop1u
  3000. Xopy5
  3001. Xo1q
  3002. Xo1ra
  3003. Xo5ra.
  3004. Xo4r3ag
  3005. Xor5aliz
  3006. Xor5ange
  3007. Xore5a
  3008. Xo5real
  3009. Xor3ei
  3010. Xore5sh
  3011. Xor5est.
  3012. Xorew4
  3013. Xor4gu
  3014. X4o5ria
  3015. Xor3ica
  3016. Xo5ril
  3017. Xor1in
  3018. Xo1rio
  3019. Xor3ity
  3020. Xo3riu
  3021. Xor2mi
  3022. Xorn2e
  3023. Xo5rof
  3024. Xor3oug
  3025. Xor5pe
  3026. X3orrh
  3027. Xor4se
  3028. Xors5en
  3029. Xorst4
  3030. Xor3thi
  3031. Xor3thy
  3032. Xor4ty
  3033. Xo5rum
  3034. Xo1ry
  3035. Xos3al
  3036. Xos2c
  3037. Xos4ce
  3038. Xo3scop
  3039. X4oscopi
  3040. Xo5scr
  3041. Xos4i4e
  3042. Xos5itiv
  3043. Xos3ito
  3044. Xos3ity
  3045. Xosi4u
  3046. Xos4l
  3047. Xo2so
  3048. Xos4pa
  3049. Xos4po
  3050. Xos2ta
  3051. Xo5stati
  3052. Xos5til
  3053. Xos5tit
  3054. Xo4tan
  3055. Xotele4g
  3056. Xot3er.
  3057. Xot5ers
  3058. Xo4tes
  3059. X4oth
  3060. Xoth5esi
  3061. Xoth3i4
  3062. Xot3ic.
  3063. Xot5ica
  3064. Xo3tice
  3065. Xo3tif
  3066. Xo3tis
  3067. Xoto5s
  3068. Xou2
  3069. Xou3bl
  3070. Xouch5i
  3071. Xou5et
  3072. Xou4l
  3073. Xounc5er
  3074. Xoun2d
  3075. Xou5v
  3076. Xov4en
  3077. Xover4ne
  3078. Xover3s
  3079. Xov4ert
  3080. Xo3vis
  3081. Xoviti4
  3082. Xo5v4ol
  3083. Xow3der
  3084. Xow3el
  3085. Xow5est
  3086. Xow1i
  3087. Xown5i
  3088. Xo4wo
  3089. Xoy1a
  3090. X1pa
  3091. Xpa4ca
  3092. Xpa4ce
  3093. Xpac4t
  3094. Xp4ad
  3095. X5pagan
  3096. Xp3agat
  3097. Xp4ai
  3098. Xpain4
  3099. Xp4al
  3100. Xpan4a
  3101. Xpan3el
  3102. Xpan4ty
  3103. Xpa3ny
  3104. Xpa1p
  3105. Xpa4pu
  3106. Xpara5bl
  3107. Xpar5age
  3108. Xpar5di
  3109. X3pare
  3110. Xpar5el
  3111. Xp4a4ri
  3112. Xpar4is
  3113. Xpa2te
  3114. Xpa5ter
  3115. X5pathic
  3116. Xpa5thy
  3117. Xpa4tric
  3118. Xpav4
  3119. X3pay
  3120. X4p1b
  3121. Xpd4
  3122. X4pe.
  3123. X3pe4a
  3124. Xpear4l
  3125. Xpe2c
  3126. X2p2ed
  3127. X3pede
  3128. X3pedi
  3129. Xpedia4
  3130. Xped4ic
  3131. Xp4ee
  3132. Xpee4d
  3133. Xpek4
  3134. Xpe4la
  3135. Xpeli4e
  3136. Xpe4nan
  3137. Xp4enc
  3138. Xpen4th
  3139. Xpe5on
  3140. Xp4era.
  3141. Xpera5bl
  3142. Xp4erag
  3143. Xp4eri
  3144. Xperi5st
  3145. Xper4mal
  3146. Xperme5
  3147. Xp4ern
  3148. Xper3o
  3149. Xper3ti
  3150. Xpe5ru
  3151. Xper1v
  3152. Xpe2t
  3153. Xpe5ten
  3154. Xpe5tiz
  3155. X4pf
  3156. X4pg
  3157. X4ph.
  3158. Xphar5i
  3159. Xphe3no
  3160. Xph4er
  3161. Xph4es.
  3162. Xph1ic
  3163. X5phie
  3164. Xph5ing
  3165. X5phisti
  3166. X3phiz
  3167. Xph2l
  3168. X3phob
  3169. X3phone
  3170. X5phoni
  3171. Xpho4r
  3172. X4phs
  3173. Xph3t
  3174. X5phu
  3175. X1phy
  3176. Xpi3a
  3177. Xpian4
  3178. Xpi4cie
  3179. Xpi4cy
  3180. Xp4id
  3181. Xp5ida
  3182. Xpi3de
  3183. X5pidi
  3184. X3piec
  3185. Xpi3en
  3186. Xpi4grap
  3187. Xpi3lo
  3188. Xpi2n
  3189. Xp4in.
  3190. Xpind4
  3191. Xp4ino
  3192. X3pi1o
  3193. Xpion4
  3194. Xp3ith
  3195. Xpi5tha
  3196. Xpi2tu
  3197. X2p3k2
  3198. X1p2l2
  3199. X3plan
  3200. Xplas5t
  3201. Xpli3a
  3202. Xpli5er
  3203. X4plig
  3204. Xpli4n
  3205. Xploi4
  3206. Xplu4m
  3207. Xplum4b
  3208. X4p1m
  3209. X2p3n
  3210. Xpo4c
  3211. X5pod.
  3212. Xpo5em
  3213. Xpo3et5
  3214. X5po4g
  3215. Xpoin2
  3216. X5point
  3217. Xpoly5t
  3218. Xpo4ni
  3219. Xpo4p
  3220. X1p4or
  3221. Xpo4ry
  3222. X1pos
  3223. Xpos1s
  3224. Xp4ot
  3225. Xpo4ta
  3226. X5poun
  3227. X4p1p
  3228. Xppa5ra
  3229. Xp2pe
  3230. Xp4ped
  3231. Xp5pel
  3232. Xp3pen
  3233. Xp3per
  3234. Xp3pet
  3235. Xppo5site
  3236. Xpr2
  3237. Xpray4e
  3238. X5preci
  3239. Xpre5co
  3240. Xpre3em
  3241. Xpref5ac
  3242. Xpre4la
  3243. Xpre3r
  3244. Xp3rese
  3245. X3press
  3246. Xpre5ten
  3247. Xpre3v
  3248. X5pri4e
  3249. Xprin4t3
  3250. Xpri4s
  3251. Xpris3o
  3252. Xp3roca
  3253. Xprof5it
  3254. Xpro3l
  3255. Xpros3e
  3256. Xpro1t
  3257. X2p1s2
  3258. Xp2se
  3259. Xps4h
  3260. Xp4sib
  3261. X2p1t
  3262. Xpt5a4b
  3263. Xp2te
  3264. Xp2th
  3265. Xpti3m
  3266. Xptu4r
  3267. Xp4tw
  3268. Xpub3
  3269. Xpue4
  3270. Xpuf4
  3271. Xpul3c
  3272. Xpu4m
  3273. Xpu2n
  3274. Xpur4r
  3275. X5pus
  3276. Xpu2t
  3277. X5pute
  3278. Xput3er
  3279. Xpu3tr
  3280. Xput4ted
  3281. Xput4tin
  3282. Xp3w
  3283. Xqu2
  3284. Xqua5v
  3285. X2que.
  3286. X3quer
  3287. X3quet
  3288. X2rab
  3289. Xra3bi
  3290. Xrach4e
  3291. Xr5acl
  3292. Xraf5fi
  3293. Xraf4t
  3294. Xr2ai
  3295. Xra4lo
  3296. Xram3et
  3297. Xr2ami
  3298. Xrane5o
  3299. Xran4ge
  3300. Xr4ani
  3301. Xra5no
  3302. Xrap3er
  3303. X3raphy
  3304. Xrar5c
  3305. Xrare4
  3306. Xrar5ef
  3307. X4raril
  3308. Xr2as
  3309. Xration4
  3310. Xrau4t
  3311. Xra5vai
  3312. Xrav3el
  3313. Xra5zie
  3314. Xr1b
  3315. Xr4bab
  3316. Xr4bag
  3317. Xrbi2
  3318. Xrbi4f
  3319. Xr2bin
  3320. Xr5bine
  3321. Xrb5ing.
  3322. Xrb4o
  3323. Xr1c
  3324. Xr2ce
  3325. Xrcen4
  3326. Xr3cha
  3327. Xrch4er
  3328. Xr4ci4b
  3329. Xrc4it
  3330. Xrcum3
  3331. Xr4dal
  3332. Xrd2i
  3333. Xrdi4a
  3334. Xrdi4er
  3335. Xrdin4
  3336. Xrd3ing
  3337. X2re.
  3338. Xre1al
  3339. Xre3an
  3340. Xre5arr
  3341. X5reav
  3342. Xre4aw
  3343. Xr5ebrat
  3344. Xrec5oll
  3345. Xrec5ompe
  3346. Xre4cre
  3347. X2r2ed
  3348. Xre1de
  3349. Xre3dis
  3350. Xred5it
  3351. Xre4fac
  3352. Xre2fe
  3353. Xre5fer.
  3354. Xre3fi
  3355. Xre4fy
  3356. Xreg3is
  3357. Xre5it
  3358. Xre1li
  3359. Xre5lu
  3360. Xr4en4ta
  3361. Xren4te
  3362. Xre1o
  3363. Xre5pin
  3364. Xre4posi
  3365. Xre1pu
  3366. Xr1er4
  3367. Xr4eri
  3368. Xrero4
  3369. Xre5ru
  3370. Xr4es.
  3371. Xre4spi
  3372. Xress5ib
  3373. Xres2t
  3374. Xre5stal
  3375. Xre3str
  3376. Xre4ter
  3377. Xre4ti4z
  3378. Xre3tri
  3379. Xreu2
  3380. Xre5uti
  3381. Xrev2
  3382. Xre4val
  3383. Xrev3el
  3384. Xr5ev5er.
  3385. Xre5vers
  3386. Xre5vert
  3387. Xre5vil
  3388. Xrev5olu
  3389. Xre4wh
  3390. Xr1f
  3391. Xrfu4
  3392. Xr4fy
  3393. Xrg2
  3394. Xrg3er
  3395. Xr3get
  3396. Xr3gic
  3397. Xrgi4n
  3398. Xrg3ing
  3399. Xr5gis
  3400. Xr5git
  3401. Xr1gl
  3402. Xrgo4n
  3403. Xr3gu
  3404. Xrh4
  3405. X4rh.
  3406. X4rhal
  3407. Xri3a
  3408. Xria4b
  3409. Xri4ag
  3410. Xr4ib
  3411. Xrib3a
  3412. Xric5as
  3413. Xr4ice
  3414. X4rici
  3415. X5ricid
  3416. Xri4cie
  3417. Xr4ico
  3418. Xrid5er
  3419. Xri3enc
  3420. Xri3ent
  3421. Xri1er
  3422. Xri5et
  3423. Xrig5an
  3424. X5rigi
  3425. Xril3iz
  3426. X5riman
  3427. Xrim5i
  3428. X3rimo
  3429. Xrim4pe
  3430. Xr2ina
  3431. X5rina.
  3432. Xrin4d
  3433. Xrin4e
  3434. Xrin4g
  3435. Xri1o
  3436. X5riph
  3437. Xriph5e
  3438. Xri2pl
  3439. Xrip5lic
  3440. Xr4iq
  3441. Xr2is
  3442. Xr4is.
  3443. Xris4c
  3444. Xr3ish
  3445. Xris4p
  3446. Xri3ta3b
  3447. Xr5ited.
  3448. Xrit5er.
  3449. Xrit5ers
  3450. Xrit3ic
  3451. Xri2tu
  3452. Xrit5ur
  3453. Xriv5el
  3454. Xriv3et
  3455. Xriv3i
  3456. Xr3j
  3457. Xr3ket
  3458. Xrk4le
  3459. Xrk4lin
  3460. Xr1l
  3461. Xrle4
  3462. Xr2led
  3463. Xr4lig
  3464. Xr4lis
  3465. Xrl5ish
  3466. Xr3lo4
  3467. Xr1m
  3468. Xrma5c
  3469. Xr2me
  3470. Xr3men
  3471. Xrm5ers
  3472. Xrm3ing
  3473. Xr4ming.
  3474. Xr4mio
  3475. Xr3mit
  3476. Xr4my
  3477. Xr4nar
  3478. Xr3nel
  3479. Xr4ner
  3480. Xr5net
  3481. Xr3ney
  3482. Xr5nic
  3483. Xr1nis4
  3484. Xr3nit
  3485. Xr3niv
  3486. Xrno4
  3487. Xr4nou
  3488. Xr3nu
  3489. Xrob3l
  3490. Xr2oc
  3491. Xro3cr
  3492. Xro4e
  3493. Xro1fe
  3494. Xro5fil
  3495. Xrok2
  3496. Xro5ker
  3497. X5role.
  3498. Xrom5ete
  3499. Xrom4i
  3500. Xrom4p
  3501. Xron4al
  3502. Xron4e
  3503. Xro5n4is
  3504. Xron4ta
  3505. X1room
  3506. X5root
  3507. Xro3pel
  3508. Xrop3ic
  3509. Xror3i
  3510. Xro5ro
  3511. Xros5per
  3512. Xros4s
  3513. Xro4the
  3514. Xro4ty
  3515. Xro4va
  3516. Xrov5el
  3517. Xrox5
  3518. Xr1p
  3519. Xr4pea
  3520. Xr5pent
  3521. Xrp5er.
  3522. Xr3pet
  3523. Xrp4h4
  3524. Xrp3ing
  3525. Xr3po
  3526. Xr1r4
  3527. Xrre4c
  3528. Xrre4f
  3529. Xr4reo
  3530. Xrre4st
  3531. Xrri4o
  3532. Xrri4v
  3533. Xrron4
  3534. Xrros4
  3535. Xrrys4
  3536. X4rs2
  3537. Xr1sa
  3538. Xrsa5ti
  3539. Xrs4c
  3540. Xr2se
  3541. Xr3sec
  3542. Xrse4cr
  3543. Xrs5er.
  3544. Xrs3es
  3545. Xrse5v2
  3546. Xr1sh
  3547. Xr5sha
  3548. Xr1si
  3549. Xr4si4b
  3550. Xrson3
  3551. Xr1sp
  3552. Xr5sw
  3553. Xrtach4
  3554. Xr4tag
  3555. Xr3teb
  3556. Xrten4d
  3557. Xrte5o
  3558. Xr1ti
  3559. Xrt5ib
  3560. Xrti4d
  3561. Xr4tier
  3562. Xr3tig
  3563. Xrtil3i
  3564. Xrtil4l
  3565. Xr4tily
  3566. Xr4tist
  3567. Xr4tiv
  3568. Xr3tri
  3569. Xrtroph4
  3570. Xrt4sh
  3571. Xru3a
  3572. Xru3e4l
  3573. Xru3en
  3574. Xru4gl
  3575. Xru3in
  3576. Xrum3pl
  3577. Xru2n
  3578. Xrunk5
  3579. Xrun4ty
  3580. Xr5usc
  3581. Xruti5n
  3582. Xrv4e
  3583. Xrvel4i
  3584. Xr3ven
  3585. Xrv5er.
  3586. Xr5vest
  3587. Xr3vey
  3588. Xr3vic
  3589. Xrvi4v
  3590. Xr3vo
  3591. Xr1w
  3592. Xry4c
  3593. X5rynge
  3594. Xry3t
  3595. Xsa2
  3596. X2s1ab
  3597. X5sack
  3598. Xsac3ri
  3599. Xs3act
  3600. X5sai
  3601. Xsalar4
  3602. Xsal4m
  3603. Xsa5lo
  3604. Xsal4t
  3605. X3sanc
  3606. Xsan4de
  3607. Xs1ap
  3608. Xsa5ta
  3609. X5sa3tio
  3610. Xsat3u
  3611. Xsau4
  3612. Xsa5vor
  3613. X5saw
  3614. X4s5b
  3615. Xscan4t5
  3616. Xsca4p
  3617. Xscav5
  3618. Xs4ced
  3619. X4scei
  3620. Xs4ces
  3621. Xsch2
  3622. Xs4cho
  3623. X3s4cie
  3624. X5scin4d
  3625. Xscle5
  3626. Xs4cli
  3627. Xscof4
  3628. X4scopy
  3629. Xscour5a
  3630. Xs1cu
  3631. X4s5d
  3632. X4se.
  3633. Xse4a
  3634. Xseas4
  3635. Xsea5w
  3636. Xse2c3o
  3637. X3sect
  3638. X4s4ed
  3639. Xse4d4e
  3640. Xs5edl
  3641. Xse2g
  3642. Xseg3r
  3643. X5sei
  3644. Xse1le
  3645. X5self
  3646. X5selv
  3647. X4seme
  3648. Xse4mol
  3649. Xsen5at
  3650. X4senc
  3651. Xsen4d
  3652. Xs5ened
  3653. Xsen5g
  3654. Xs5enin
  3655. X4sentd
  3656. X4sentl
  3657. Xsep3a3
  3658. X4s1er.
  3659. Xs4erl
  3660. Xser4o
  3661. X4servo
  3662. Xs1e4s
  3663. Xse5sh
  3664. Xses5t
  3665. X5se5um
  3666. X5sev
  3667. Xsev3en
  3668. Xsew4i
  3669. X5sex
  3670. X4s3f
  3671. X2s3g
  3672. Xs2h
  3673. X2sh.
  3674. Xsh1er
  3675. X5shev
  3676. Xsh1in
  3677. Xsh3io
  3678. X3ship
  3679. Xshiv5
  3680. Xsho4
  3681. Xsh5old
  3682. Xshon3
  3683. Xshor4
  3684. Xshort5
  3685. X4shw
  3686. Xsi1b
  3687. Xs5icc
  3688. X3side.
  3689. X5sides
  3690. X5sidi
  3691. Xsi5diz
  3692. X4signa
  3693. Xsil4e
  3694. X4sily
  3695. X2s1in
  3696. Xs2ina
  3697. X5sine.
  3698. Xs3ing
  3699. X1sio
  3700. X5sion
  3701. Xsion5a
  3702. Xsi2r
  3703. Xsir5a
  3704. X1sis
  3705. X3sitio
  3706. X5siu
  3707. X1siv
  3708. X5siz
  3709. Xsk2
  3710. X4ske
  3711. Xs3ket
  3712. Xsk5ine
  3713. Xsk5ing
  3714. Xs1l2
  3715. Xs3lat
  3716. Xs2le
  3717. Xslith5
  3718. X2s1m
  3719. Xs3ma
  3720. Xsmall3
  3721. Xsman3
  3722. Xsmel4
  3723. Xs5men
  3724. X5smith
  3725. Xsmol5d4
  3726. Xs1n4
  3727. X1so
  3728. Xso4ce
  3729. Xsoft3
  3730. Xso4lab
  3731. Xsol3d2
  3732. Xso3lic
  3733. X5solv
  3734. X3som
  3735. X3s4on.
  3736. Xsona4
  3737. Xson4g
  3738. Xs4op
  3739. X5sophic
  3740. Xs5ophiz
  3741. Xs5ophy
  3742. Xsor5c
  3743. Xsor5d
  3744. X4sov
  3745. Xso5vi
  3746. X2spa
  3747. X5spai
  3748. Xspa4n
  3749. Xspen4d
  3750. X2s5peo
  3751. X2sper
  3752. Xs2phe
  3753. X3spher
  3754. Xspho5
  3755. Xspil4
  3756. Xsp5ing
  3757. X4spio
  3758. Xs4ply
  3759. Xs4pon
  3760. Xspor4
  3761. X4spot
  3762. Xsqual4l
  3763. Xs1r
  3764. X2ss
  3765. Xs1sa
  3766. Xssas3
  3767. Xs2s5c
  3768. Xs3sel
  3769. Xs5seng
  3770. Xs4ses.
  3771. Xs5set
  3772. Xs1si
  3773. Xs4sie
  3774. Xssi4er
  3775. Xss5ily
  3776. Xs4sl
  3777. Xss4li
  3778. Xs4sn
  3779. Xsspend4
  3780. Xss2t
  3781. Xssur5a
  3782. Xss5w
  3783. X2st.
  3784. Xs2tag
  3785. Xs2tal
  3786. Xstam4i
  3787. X5stand
  3788. Xs4ta4p
  3789. X5stat.
  3790. Xs4ted
  3791. Xstern5i
  3792. Xs5tero
  3793. Xste2w
  3794. Xstew5a
  3795. Xs3the
  3796. Xst2i
  3797. Xs4ti.
  3798. Xs5tia
  3799. Xs1tic
  3800. X5stick
  3801. Xs4tie
  3802. Xs3tif
  3803. Xst3ing
  3804. X5stir
  3805. Xs1tle
  3806. X5stock
  3807. Xstom3a
  3808. X5stone
  3809. Xs4top
  3810. X3store
  3811. Xst4r
  3812. Xs4trad
  3813. X5stratu
  3814. Xs4tray
  3815. Xs4trid
  3816. X4stry
  3817. X4st3w
  3818. Xs2ty
  3819. X1su
  3820. Xsu1al
  3821. Xsu4b3
  3822. Xsu2g3
  3823. Xsu5is
  3824. Xsuit3
  3825. Xs4ul
  3826. Xsu2m
  3827. Xsum3i
  3828. Xsu2n
  3829. Xsu2r
  3830. X4sv
  3831. Xsw2
  3832. X4swo
  3833. Xs4y
  3834. X4syc
  3835. X3syl
  3836. Xsyn5o
  3837. Xsy5rin
  3838. X1ta
  3839. X3ta.
  3840. X2tab
  3841. Xta5bles
  3842. X5taboliz
  3843. X4taci
  3844. Xta5do
  3845. X4taf4
  3846. Xtai5lo
  3847. Xta2l
  3848. Xta5la
  3849. Xtal5en
  3850. Xtal3i
  3851. X4talk
  3852. Xtal4lis
  3853. Xta5log
  3854. Xta5mo
  3855. Xtan4de
  3856. Xtanta3
  3857. Xta5per
  3858. Xta5pl
  3859. Xtar4a
  3860. X4tarc
  3861. X4tare
  3862. Xta3riz
  3863. Xtas4e
  3864. Xta5sy
  3865. X4tatic
  3866. Xta4tur
  3867. Xtaun4
  3868. Xtav4
  3869. X2taw
  3870. Xtax4is
  3871. X2t1b
  3872. X4tc
  3873. Xt4ch
  3874. Xtch5et
  3875. X4t1d
  3876. X4te.
  3877. Xtead4i
  3878. X4teat
  3879. Xtece4
  3880. X5tect
  3881. X2t1ed
  3882. Xte5di
  3883. X1tee
  3884. Xteg4
  3885. Xte5ger
  3886. Xte5gi
  3887. X3tel.
  3888. Xteli4
  3889. X5tels
  3890. Xte2ma2
  3891. Xtem3at
  3892. X3tenan
  3893. X3tenc
  3894. X3tend
  3895. X4tenes
  3896. X1tent
  3897. Xten4tag
  3898. X1teo
  3899. Xte4p
  3900. Xte5pe
  3901. Xter3c
  3902. X5ter3d
  3903. X1teri
  3904. Xter5ies
  3905. Xter3is
  3906. Xteri5za
  3907. X5ternit
  3908. Xter5v
  3909. X4tes.
  3910. X4tess
  3911. Xt3ess.
  3912. Xteth5e
  3913. X3teu
  3914. X3tex
  3915. X4tey
  3916. X2t1f
  3917. X4t1g
  3918. X2th.
  3919. Xthan4
  3920. Xth2e
  3921. X4thea
  3922. Xth3eas
  3923. Xthe5at
  3924. Xthe3is
  3925. X3thet
  3926. Xth5ic.
  3927. Xth5ica
  3928. X4thil
  3929. X5think
  3930. X4thl
  3931. Xth5ode
  3932. X5thodic
  3933. X4thoo
  3934. Xthor5it
  3935. Xtho5riz
  3936. X2ths
  3937. X1tia
  3938. Xti4ab
  3939. Xti4ato
  3940. X2ti2b
  3941. X4tick
  3942. Xt4ico
  3943. Xt4ic1u
  3944. X5tidi
  3945. X3tien
  3946. Xtif2
  3947. Xti5fy
  3948. X2tig
  3949. X5tigu
  3950. Xtill5in
  3951. X1tim
  3952. X4timp
  3953. Xtim5ul
  3954. X2t1in
  3955. Xt2ina
  3956. X3tine.
  3957. X3tini
  3958. X1tio
  3959. Xti5oc
  3960. Xtion5ee
  3961. X5tiq
  3962. Xti3sa
  3963. X3tise
  3964. Xtis4m
  3965. Xti5so
  3966. Xtis4p
  3967. X5tistica
  3968. Xti3tl
  3969. Xti4u
  3970. X1tiv
  3971. Xtiv4a
  3972. X1tiz
  3973. Xti3za
  3974. Xti3zen
  3975. X2tl
  3976. Xt5la
  3977. Xtlan4
  3978. X3tle.
  3979. X3tled
  3980. X3tles.
  3981. Xt5let.
  3982. Xt5lo
  3983. X4t1m
  3984. Xtme4
  3985. X2t1n2
  3986. X1to
  3987. Xto3b
  3988. Xto5crat
  3989. X4todo
  3990. X2tof
  3991. Xto2gr
  3992. Xto5ic
  3993. Xto2ma
  3994. Xtom4b
  3995. Xto3my
  3996. Xton4ali
  3997. Xto3nat
  3998. X4tono
  3999. X4tony
  4000. Xto2ra
  4001. Xto3rie
  4002. Xtor5iz
  4003. Xtos2
  4004. X5tour
  4005. X4tout
  4006. Xto3war
  4007. X4t1p
  4008. X1tra
  4009. Xtra3b
  4010. Xtra5ch
  4011. Xtraci4
  4012. Xtrac4it
  4013. Xtrac4te
  4014. Xtras4
  4015. Xtra5ven
  4016. Xtrav5es5
  4017. Xtre5f
  4018. Xtre4m
  4019. Xtrem5i
  4020. X5tria
  4021. Xtri5ces
  4022. X5tricia
  4023. X4trics
  4024. X2trim
  4025. Xtri4v
  4026. Xtro5mi
  4027. Xtron5i
  4028. X4trony
  4029. Xtro5phe
  4030. Xtro3sp
  4031. Xtro3v
  4032. Xtru5i
  4033. Xtrus4
  4034. X4t1s2
  4035. Xt4sc
  4036. Xtsh4
  4037. Xt4sw
  4038. X4t3t2
  4039. Xt4tes
  4040. Xt5to
  4041. Xttu4
  4042. X1tu
  4043. Xtu1a
  4044. Xtu3ar
  4045. Xtu4bi
  4046. Xtud2
  4047. X4tue
  4048. X4tuf4
  4049. X5tu3i
  4050. X3tum
  4051. Xtu4nis
  4052. X2t3up.
  4053. X3ture
  4054. X5turi
  4055. Xtur3is
  4056. Xtur5o
  4057. Xtu5ry
  4058. X3tus
  4059. X4tv
  4060. Xtw4
  4061. X4t1wa
  4062. Xtwis4
  4063. X4two
  4064. X1ty
  4065. X4tya
  4066. X2tyl
  4067. Xtype3
  4068. Xty5ph
  4069. X4tz
  4070. Xtz4e
  4071. X4uab
  4072. Xuac4
  4073. Xua5na
  4074. Xuan4i
  4075. Xuar5ant
  4076. Xuar2d
  4077. Xuar3i
  4078. Xuar3t
  4079. Xu1at
  4080. Xuav4
  4081. Xub4e
  4082. Xu4bel
  4083. Xu3ber
  4084. Xu4bero
  4085. Xu1b4i
  4086. Xu4b5ing
  4087. Xu3ble.
  4088. Xu3ca
  4089. Xuci4b
  4090. Xuc4it
  4091. Xucle3
  4092. Xu3cr
  4093. Xu3cu
  4094. Xu4cy
  4095. Xud5d
  4096. Xud3er
  4097. Xud5est
  4098. Xudev4
  4099. Xu1dic
  4100. Xud3ied
  4101. Xud3ies
  4102. Xud5is
  4103. Xu5dit
  4104. Xu4don
  4105. Xud4si
  4106. Xu4du
  4107. Xu4ene
  4108. Xuens4
  4109. Xuen4te
  4110. Xuer4il
  4111. X3ufa
  4112. Xu3fl
  4113. Xugh3en
  4114. Xug5in
  4115. X2ui2
  4116. Xuil5iz
  4117. Xui4n
  4118. Xu1ing
  4119. Xuir4m
  4120. Xuita4
  4121. Xuiv3
  4122. Xuiv4er.
  4123. Xu5j
  4124. X4uk
  4125. Xu1la
  4126. Xula5b
  4127. Xu5lati
  4128. Xulch4
  4129. X5ulche
  4130. Xul3der
  4131. Xul4e
  4132. Xu1len
  4133. Xul4gi
  4134. Xul2i
  4135. Xu5lia
  4136. Xul3ing
  4137. Xul5ish
  4138. Xul4lar
  4139. Xul4li4b
  4140. Xul4lis
  4141. X4ul3m
  4142. Xu1l4o
  4143. X4uls
  4144. Xuls5es
  4145. Xul1ti
  4146. Xultra3
  4147. X4ultu
  4148. Xu3lu
  4149. Xul5ul
  4150. Xul5v
  4151. Xum5ab
  4152. Xum4bi
  4153. Xum4bly
  4154. Xu1mi
  4155. Xu4m3ing
  4156. Xumor5o
  4157. Xum2p
  4158. Xunat4
  4159. Xu2ne
  4160. Xun4er
  4161. Xu1ni
  4162. Xun4im
  4163. Xu2nin
  4164. Xun5ish
  4165. Xuni3v
  4166. Xun3s4
  4167. Xun4sw
  4168. Xunt3ab
  4169. Xun4ter.
  4170. Xun4tes
  4171. Xunu4
  4172. Xun5y
  4173. Xun5z
  4174. Xu4ors
  4175. Xu5os
  4176. Xu1ou
  4177. Xu1pe
  4178. Xuper5s
  4179. Xu5pia
  4180. Xup3ing
  4181. Xu3pl
  4182. Xup3p
  4183. Xupport5
  4184. Xupt5ib
  4185. Xuptu4
  4186. Xu1ra
  4187. X4ura.
  4188. Xu4rag
  4189. Xu4ras
  4190. Xur4be
  4191. Xurc4
  4192. Xur1d
  4193. Xure5at
  4194. Xur4fer
  4195. Xur4fr
  4196. Xu3rif
  4197. Xuri4fic
  4198. Xur1in
  4199. Xu3rio
  4200. Xu1rit
  4201. Xur3iz
  4202. Xur2l
  4203. Xurl5ing.
  4204. Xur4no
  4205. Xuros4
  4206. Xur4pe
  4207. Xur4pi
  4208. Xurs5er
  4209. Xur5tes
  4210. Xur3the
  4211. Xurti4
  4212. Xur4tie
  4213. Xu3ru
  4214. X2us
  4215. Xu5sad
  4216. Xu5san
  4217. Xus4ap
  4218. Xusc2
  4219. Xus3ci
  4220. Xuse5a
  4221. Xu5sia
  4222. Xu3sic
  4223. Xus4lin
  4224. Xus1p
  4225. Xus5sl
  4226. Xus5tere
  4227. Xus1tr
  4228. Xu2su
  4229. Xusur4
  4230. Xuta4b
  4231. Xu3tat
  4232. X4ute.
  4233. X4utel
  4234. X4uten
  4235. Xuten4i
  4236. X4u1t2i
  4237. Xuti5liz
  4238. Xu3tine
  4239. Xut3ing
  4240. Xution5a
  4241. Xu4tis
  4242. X5u5tiz
  4243. Xu4t1l
  4244. Xut5of
  4245. Xuto5g
  4246. Xuto5matic
  4247. Xu5ton
  4248. Xu4tou
  4249. Xuts4
  4250. Xu3u
  4251. Xuu4m
  4252. Xu1v2
  4253. Xuxu3
  4254. Xuz4e
  4255. X1va
  4256. X5va.
  4257. X2v1a4b
  4258. Xvac5il
  4259. Xvac3u
  4260. Xvag4
  4261. Xva4ge
  4262. Xva5lie
  4263. Xval5o
  4264. Xval1u
  4265. Xva5mo
  4266. Xva5niz
  4267. Xva5pi
  4268. Xvar5ied
  4269. X3vat
  4270. X4ve.
  4271. X4ved
  4272. Xveg3
  4273. Xv3el.
  4274. Xvel3li
  4275. Xve4lo
  4276. Xv4ely
  4277. Xven3om
  4278. Xv5enue
  4279. Xv4erd
  4280. X5vere.
  4281. Xv4erel
  4282. Xv3eren
  4283. Xver5enc
  4284. Xv4eres
  4285. Xver3ie
  4286. Xvermi4n
  4287. X3verse
  4288. Xver3th
  4289. Xv4e2s
  4290. X4ves.
  4291. Xves4te
  4292. Xve4te
  4293. Xvet3er
  4294. Xve4ty
  4295. Xvi5ali
  4296. X5vian
  4297. X5vide.
  4298. X5vided
  4299. X4v3iden
  4300. X5vides
  4301. X5vidi
  4302. Xv3if
  4303. Xvi5gn
  4304. Xvik4
  4305. X2vil
  4306. X5vilit
  4307. Xv3i3liz
  4308. Xv1in
  4309. X4vi4na
  4310. Xv2inc
  4311. Xvin5d
  4312. X4ving
  4313. Xvio3l
  4314. Xv3io4r
  4315. Xvi1ou
  4316. Xvi4p
  4317. Xvi5ro
  4318. Xvis3it
  4319. Xvi3so
  4320. Xvi3su
  4321. X4viti
  4322. Xvit3r
  4323. X4vity
  4324. X3viv
  4325. X5vo.
  4326. Xvoi4
  4327. X3vok
  4328. Xvo4la
  4329. Xv5ole
  4330. X5volt
  4331. X3volv
  4332. Xvom5i
  4333. Xvor5ab
  4334. Xvori4
  4335. Xvo4ry
  4336. Xvo4ta
  4337. X4votee
  4338. X4vv4
  4339. Xv4y
  4340. Xw5abl
  4341. X2wac
  4342. Xwa5ger
  4343. Xwag5o
  4344. Xwait5
  4345. Xw5al.
  4346. Xwam4
  4347. Xwar4t
  4348. Xwas4t
  4349. Xwa1te
  4350. Xwa5ver
  4351. Xw1b
  4352. Xwea5rie
  4353. Xweath3
  4354. Xwed4n
  4355. Xweet3
  4356. Xwee5v
  4357. Xwel4l
  4358. Xw1er
  4359. Xwest3
  4360. Xw3ev
  4361. Xwhi4
  4362. Xwi2
  4363. Xwil2
  4364. Xwill5in
  4365. Xwin4de
  4366. Xwin4g
  4367. Xwir4
  4368. X3wise
  4369. Xwith3
  4370. Xwiz5
  4371. Xw4k
  4372. Xwl4es
  4373. Xwl3in
  4374. Xw4no
  4375. X1wo2
  4376. Xwom1
  4377. Xwo5ven
  4378. Xw5p
  4379. Xwra4
  4380. Xwri4
  4381. Xwrita4
  4382. Xw3sh
  4383. Xws4l
  4384. Xws4pe
  4385. Xw5s4t
  4386. X4wt
  4387. Xwy4
  4388. Xx1a
  4389. Xxac5e
  4390. Xx4ago
  4391. Xxam3
  4392. Xx4ap
  4393. Xxas5
  4394. Xx3c2
  4395. Xx1e
  4396. Xxe4cuto
  4397. Xx2ed
  4398. Xxer4i
  4399. Xxe5ro
  4400. Xx1h
  4401. Xxhi2
  4402. Xxhil5
  4403. Xxhu4
  4404. Xx3i
  4405. Xxi5a
  4406. Xxi5c
  4407. Xxi5di
  4408. Xx4ime
  4409. Xxi5miz
  4410. Xx3o
  4411. Xx4ob
  4412. Xx3p
  4413. Xxpan4d
  4414. Xxpecto5
  4415. Xxpe3d
  4416. Xx1t2
  4417. Xx3ti
  4418. Xx1u
  4419. Xxu3a
  4420. Xxx4
  4421. Xy5ac
  4422. X3yar4
  4423. Xy5at
  4424. Xy1b
  4425. Xy1c
  4426. Xy2ce
  4427. Xyc5er
  4428. Xy3ch
  4429. Xych4e
  4430. Xycom4
  4431. Xycot4
  4432. Xy1d
  4433. Xy5ee
  4434. Xy1er
  4435. Xy4erf
  4436. Xyes4
  4437. Xye4t
  4438. Xy5gi
  4439. X4y3h
  4440. Xy1i
  4441. Xy3la
  4442. Xylla5bl
  4443. Xy3lo
  4444. Xy5lu
  4445. Xymbol5
  4446. Xyme4
  4447. Xympa3
  4448. Xyn3chr
  4449. Xyn5d
  4450. Xyn5g
  4451. Xyn5ic
  4452. X5ynx
  4453. Xy1o4
  4454. Xyo5d
  4455. Xy4o5g
  4456. Xyom4
  4457. Xyo5net
  4458. Xy4ons
  4459. Xy4os
  4460. Xy4ped
  4461. Xyper5
  4462. Xyp3i
  4463. Xy3po
  4464. Xy4poc
  4465. Xyp2ta
  4466. Xy5pu
  4467. Xyra5m
  4468. Xyr5ia
  4469. Xy3ro
  4470. Xyr4r
  4471. Xys4c
  4472. Xy3s2e
  4473. Xys3ica
  4474. Xys3io
  4475. X3ysis
  4476. Xy4so
  4477. Xyss4
  4478. Xys1t
  4479. Xys3ta
  4480. Xysur4
  4481. Xy3thin
  4482. Xyt3ic
  4483. Xy1w
  4484. Xza1
  4485. Xz5a2b
  4486. Xzar2
  4487. X4zb
  4488. X2ze
  4489. Xze4n
  4490. Xze4p
  4491. Xz1er
  4492. Xze3ro
  4493. Xzet4
  4494. X2z1i
  4495. Xz4il
  4496. Xz4is
  4497. X5zl
  4498. X4zm
  4499. X1zo
  4500. Xzo4m
  4501. Xzo5ol
  4502. Xzte4
  4503. X4z1z2
  4504. Xz4zy
  4505. END_OF_FILE
  4506.   if test 27421 -ne `wc -c <'lout/include/lout.hyph'`; then
  4507.     echo shar: \"'lout/include/lout.hyph'\" unpacked with wrong size!
  4508.   fi
  4509.   # end of 'lout/include/lout.hyph'
  4510. fi
  4511. if test -f 'lout/z06.c' -a "${1}" != "-c" ; then 
  4512.   echo shar: Will not clobber existing file \"'lout/z06.c'\"
  4513. else
  4514.   echo shar: Extracting \"'lout/z06.c'\" \(27162 characters\)
  4515.   sed "s/^X//" >'lout/z06.c' <<'END_OF_FILE'
  4516. X/*@z06.c:Parser:InitParser(), Parse()@****************************************/
  4517. X/*                                                                           */
  4518. X/*  LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.03)       */
  4519. X/*  COPYRIGHT (C) 1993 Jeffrey H. Kingston                                   */
  4520. X/*                                                                           */
  4521. X/*  Jeffrey H. Kingston (jeff@cs.su.oz.au)                                   */
  4522. X/*  Basser Department of Computer Science                                    */
  4523. X/*  The University of Sydney 2006                                            */
  4524. X/*  AUSTRALIA                                                                */
  4525. X/*                                                                           */
  4526. X/*  This program is free software; you can redistribute it and/or modify     */
  4527. X/*  it under the terms of the GNU General Public License as published by     */
  4528. X/*  the Free Software Foundation; either version 1, or (at your option)      */
  4529. X/*  any later version.                                                       */
  4530. X/*                                                                           */
  4531. X/*  This program is distributed in the hope that it will be useful,          */
  4532. X/*  but WITHOUT ANY WARRANTY; without even the implied warranty of           */
  4533. X/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            */
  4534. X/*  GNU General Public License for more details.                             */
  4535. X/*                                                                           */
  4536. X/*  You should have received a copy of the GNU General Public License        */
  4537. X/*  along with this program; if not, write to the Free Software              */
  4538. X/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                */
  4539. X/*                                                                           */
  4540. X/*  FILE:         z06.c                                                      */
  4541. X/*  MODULE:       Parser                                                     */
  4542. X/*  EXTERNS:      InitParser(), Parse()                                      */
  4543. X/*                                                                           */
  4544. X/*****************************************************************************/
  4545. X#include "externs"
  4546. X#define    is_cat_op(x)    ((x) >= ACAT && (x) <= TJUXTA)
  4547. X#define    LEFT_ASSOC    0
  4548. X#define    RIGHT_ASSOC    1
  4549. Xstatic    OBJECT        cross_name;        /* name of the cr database   */
  4550. X
  4551. X
  4552. X/*****************************************************************************/
  4553. X/*                                                                           */
  4554. X/*  static Stack Handler ADT:                                                */
  4555. X/*                                                                           */
  4556. X/*      DebugStacks()       Print debug output of the stacks state           */
  4557. X/*      Shift()             Shift one token onto the stacks                  */
  4558. X/*      ShiftObj()          Optimized shift for object with no parameters    */
  4559. X/*      Reduce()            Perform one reduction of the stacks              */
  4560. X/*                                                                           */
  4561. X/*****************************************************************************/
  4562. X
  4563. X#define    MAX_STACK    50            /* size of parser stacks     */
  4564. Xstatic    OBJECT        obj_stack[MAX_STACK];    /* stack of objects          */
  4565. Xstatic    int        otop = -1;        /* top of obj_stack          */
  4566. Xstatic    OBJECT        tok_stack[MAX_STACK];    /* stack of tokens           */
  4567. Xstatic    int        ttop = -1;        /* top of tok_stack          */
  4568. Xstatic    BOOLEAN        obj_prev;        /* TRUE when object is prev  */
  4569. X
  4570. X
  4571. X/*****************************************************************************/
  4572. X/*                                                                           */
  4573. X/*  PushObj(x)                                                               */
  4574. X/*  PushToken(t)                                                             */
  4575. X/*  OBJECT PopObj()                                                          */
  4576. X/*  OBJECT PopToken()                                                        */
  4577. X/*  OBJECT TokenTop                                                          */
  4578. X/*  OBJECT ObjTop                                                            */
  4579. X/*                                                                           */
  4580. X/*  Push and pop from the object and token stacks; examine top item.         */
  4581. X/*                                                                           */
  4582. X/*****************************************************************************/
  4583. X
  4584. X#define PushObj(x)                            \
  4585. X{ zz_hold = x;                                \
  4586. X  if( ++otop < MAX_STACK ) obj_stack[otop] = zz_hold;            \
  4587. X  else Error(FATAL, &fpos(obj_stack[otop-1]),                \
  4588. X    "object stack overflow: need to simplify expression");        \
  4589. X}
  4590. X
  4591. X#define PushToken(t)                            \
  4592. X{ if( ++ttop < MAX_STACK ) tok_stack[ttop] = t;                \
  4593. X  else Error(FATAL, &fpos(tok_stack[ttop-1]),                \
  4594. X    "operator stack overflow: need to simplify expression");    \
  4595. X}
  4596. X
  4597. X#define PopObj()    obj_stack[otop--]
  4598. X#define PopToken()    tok_stack[ttop--]
  4599. X#define    TokenTop    tok_stack[ttop]
  4600. X#define    ObjTop        obj_stack[otop]
  4601. X
  4602. X
  4603. X#if DEBUG_ON
  4604. Xstatic DebugStacks(initial_ttop)
  4605. Xint initial_ttop;
  4606. X{ int i;
  4607. X  fprintf(stderr, "obj_prev: %s; otop: %d; ttop: %d\n",
  4608. X    bool(obj_prev), otop, ttop);
  4609. X  for( i = 0;  i <= otop; i++ )
  4610. X    fprintf(stderr, "obj[%d] = %s\n", i, EchoObject(null, obj_stack[i]));
  4611. X  for( i = 0;  i <= ttop;  i++ )
  4612. X  { if( i == initial_ttop+1 ) fprintf(stderr, "$\n");
  4613. X    fprintf(stderr, "tok[%d] = %s.%d\n", i, type(tok_stack[i]) == CLOSURE ?
  4614. X    SymName(actual(tok_stack[i])) : Image(type(tok_stack[i])),
  4615. X    precedence(tok_stack[i]));
  4616. X  }
  4617. X}
  4618. X#endif
  4619. X
  4620. X/*****************************************************************************/
  4621. X/*                                                                           */
  4622. X/*  insert_space(t)                                                          */
  4623. X/*                                                                           */
  4624. X/*  Add any missing catenation operator in front of token t.                 */
  4625. X/*                                                                           */
  4626. X/*****************************************************************************/
  4627. X
  4628. X#define insert_space(t)                            \
  4629. Xif( obj_prev )                                \
  4630. X{ int typ, prec;                            \
  4631. X  if( hspace(t) + vspace(t) > 0 )                    \
  4632. X  { typ = TSPACE;                            \
  4633. X    prec = ACAT_PREC;                            \
  4634. X  }                                    \
  4635. X  else                                    \
  4636. X  { typ = TJUXTA;                            \
  4637. X    prec = JUXTA_PREC;                            \
  4638. X  }                                    \
  4639. X  while( obj_prev && precedence(TokenTop) >= prec )  Reduce();        \
  4640. X  if( obj_prev )                            \
  4641. X  { tmp = New(typ);                            \
  4642. X    precedence(tmp) = prec;                        \
  4643. X    vspace(tmp) = vspace(t);                        \
  4644. X    hspace(tmp) = hspace(t);                        \
  4645. X    mark(gap(tmp)) = FALSE;                        \
  4646. X    join(gap(tmp)) = TRUE;                        \
  4647. X    FposCopy( fpos(tmp), fpos(t) );                    \
  4648. X    PushToken(tmp);                            \
  4649. X  }                                    \
  4650. X} /* end insert_space */
  4651. X
  4652. X#define Shift(t, prec, rassoc, leftpar, rightpar)            \
  4653. X{ if( leftpar )                                \
  4654. X  { for(;;)                                \
  4655. X    { if( !obj_prev )                            \
  4656. X      {    PushObj( MakeWord("", &fpos(t)) );                \
  4657. X    obj_prev = TRUE;                        \
  4658. X      }                                    \
  4659. X      else if( precedence(TokenTop) >= prec + rassoc )            \
  4660. X      {    Reduce();                            \
  4661. X      }                                    \
  4662. X      else break;                            \
  4663. X    }                                    \
  4664. X  }                                    \
  4665. X  else insert_space(t);                            \
  4666. X  PushToken(t);                                \
  4667. X  if( rightpar )  obj_prev = FALSE;                    \
  4668. X  else                                    \
  4669. X  { obj_prev = TRUE;                            \
  4670. X    Reduce();                                \
  4671. X  }                                    \
  4672. X} /* end Shift */
  4673. X
  4674. X#define ShiftObj(t)                            \
  4675. X{ insert_space(t);                            \
  4676. X  PushObj(t);                                \
  4677. X  obj_prev = TRUE;                            \
  4678. X}
  4679. X
  4680. Xstatic Reduce()
  4681. X{ OBJECT p1, p2, p3, s1, s2, tmp;
  4682. X  OBJECT op;
  4683. X  assert( obj_prev, "Reduce: obj_prev!" );
  4684. X
  4685. X  op = PopToken();
  4686. X  obj_prev = TRUE;
  4687. X  switch( type(op) )
  4688. X  {
  4689. X
  4690. X    case GSTUB_INT:
  4691. X    case GSTUB_EXT:
  4692. X    
  4693. X    TransferEnd( PopObj() );
  4694. X    obj_prev = TRUE;
  4695. X    PushObj(New(NULL_CLOS));
  4696. X    Dispose(op);
  4697. X    break;
  4698. X
  4699. X
  4700. X    case GSTUB_NONE:
  4701. X
  4702. X    PushObj(New(NULL_CLOS));
  4703. X    Dispose(op);
  4704. X    break;
  4705. X
  4706. X
  4707. X    case NULL_CLOS:
  4708. X    case CROSS:
  4709. X    case ONE_ROW:
  4710. X    case ONE_COL:
  4711. X    case WIDE:
  4712. X    case HIGH:
  4713. X    case HSCALE:
  4714. X    case VSCALE:
  4715. X    case SCALE:
  4716. X    case HCONTRACT:
  4717. X    case VCONTRACT:
  4718. X    case HEXPAND:
  4719. X    case VEXPAND:
  4720. X    case PADJUST:
  4721. X    case HADJUST:
  4722. X    case VADJUST:
  4723. X    case ROTATE:
  4724. X    case CASE:
  4725. X    case YIELD:
  4726. X    case FONT:
  4727. X    case SPACE:
  4728. X    case BREAK:
  4729. X    case NEXT:
  4730. X    case TAGGED:
  4731. X    case INCGRAPHIC:
  4732. X    case SINCGRAPHIC:
  4733. X    case GRAPHIC:
  4734. X    case OPEN:
  4735. X
  4736. X    if( has_rpar(actual(op)) )
  4737. X    { s2 = PopObj();
  4738. X      Link(op, s2);
  4739. X    }
  4740. X    if( has_lpar(actual(op)) )
  4741. X    { s1 = PopObj();
  4742. X      Link(Down(op), s1);
  4743. X      if( type(op)==CROSS && type(s1)!=CLOSURE ) Error(WARN, &fpos(s1),
  4744. X        "left parameter of %s is not a symbol (or not visible)", KW_CROSS);
  4745. X    }
  4746. X    PushObj(op);
  4747. X    break;
  4748. X
  4749. X
  4750. X    case CLOSURE:
  4751. X    
  4752. X    if( has_rpar(actual(op)) )
  4753. X    { s2 = New(PAR);
  4754. X      tmp = PopObj();
  4755. X      Link(s2, tmp);
  4756. X      FposCopy(fpos(s2), fpos(tmp));
  4757. X      actual(s2) = ChildSym(actual(op), RPAR);
  4758. X      Link(op, s2);
  4759. X    }
  4760. X    if( has_lpar(actual(op)) )
  4761. X    { s1 = New(PAR);
  4762. X      tmp = PopObj();
  4763. X      Link(s1, tmp);
  4764. X      FposCopy(fpos(s1), fpos(tmp));
  4765. X      actual(s1) = ChildSym(actual(op), LPAR);
  4766. X      Link(Down(op), s1);
  4767. X    }
  4768. X    PushObj(op);
  4769. X    break;
  4770. X
  4771. X
  4772. X    case LBR:
  4773. X    
  4774. X    Error(WARN, &fpos(op), "unmatched %s - inserted %s", KW_LBR, KW_RBR);
  4775. X    Dispose(op);
  4776. X    break;
  4777. X
  4778. X
  4779. X    case BEGIN:
  4780. X    
  4781. X    Error(INTERN, &fpos(op), "Reduce: unmatched BEGIN");
  4782. X    break;
  4783. X
  4784. X
  4785. X    case RBR:
  4786. X    
  4787. X    if( type(TokenTop) == LBR )
  4788. X    { /* *** FposCopy(fpos(ObjTop), fpos(TokenTop)); *** */
  4789. X      Dispose( PopToken() );
  4790. X    }
  4791. X    else if( type(TokenTop) == BEGIN )
  4792. X      Error(WARN, &fpos(op), "unmatched %s; inserted %s at%s (after %s)",
  4793. X        KW_RBR, KW_LBR, EchoFilePos(&fpos(TokenTop)), KW_BEGIN);
  4794. X    else Error(INTERN, &fpos(op), "Reduce: unmatched RBR");
  4795. X    Dispose(op);
  4796. X    break;
  4797. X
  4798. X
  4799. X    case END:
  4800. X    
  4801. X    if( type(TokenTop) != BEGIN )
  4802. X      Error(INTERN, &fpos(op), "Reduce: unmatched END");
  4803. X    else
  4804. X    { if( actual(op) != actual(TokenTop) )
  4805. X        if( actual(op) == StartSym )
  4806. X          Error(WARN, &fpos(op),
  4807. X        "%s %s appended at end of file to match %s at%s",
  4808. X        KW_END, SymName(actual(TokenTop)),
  4809. X        KW_BEGIN, EchoFilePos(&fpos(TokenTop)) );
  4810. X        else if( actual(op) == nil )
  4811. X          Error(WARN, &fpos(op),
  4812. X        "%s replaced by %s %s to match %s at%s",
  4813. X        KW_END, KW_END, SymName(actual(TokenTop)),
  4814. X        KW_BEGIN, EchoFilePos(&fpos(TokenTop)) );
  4815. X        else
  4816. X          Error(WARN, &fpos(op),
  4817. X        "%s %s replaced by %s %s to match %s at%s",
  4818. X        KW_END, SymName(actual(op)),
  4819. X        KW_END, SymName(actual(TokenTop)),
  4820. X        KW_BEGIN, EchoFilePos(&fpos(TokenTop)) );
  4821. X      Dispose( PopToken() );
  4822. X    }
  4823. X    Dispose(op);
  4824. X    break;
  4825. X
  4826. X
  4827. X    case GAP_OBJ:
  4828. X
  4829. X    p1 = PopObj();
  4830. X    Link(op, p1);
  4831. X    PushObj(op);
  4832. X    obj_prev = FALSE;
  4833. X    break;
  4834. X
  4835. X
  4836. X    case VCAT:
  4837. X    case HCAT:
  4838. X    case ACAT:
  4839. X    
  4840. X    p3 = PopObj();  p2 = PopObj();  p1 = PopObj();
  4841. X    if( type(p1) == type(op) )  Dispose(op);
  4842. X    else
  4843. X    { Link(op, p1);
  4844. X      p1 = op;
  4845. X    }
  4846. X    Link(p1, p2);
  4847. X    Link(p1, p3);
  4848. X    PushObj(p1);
  4849. X    break;
  4850. X
  4851. X
  4852. X    case TSPACE:
  4853. X    case TJUXTA:
  4854. X
  4855. X    p2 = PopObj();  p1 = PopObj();
  4856. X    if( type(p1) != ACAT )
  4857. X    { tmp = New(ACAT);
  4858. X      Link(tmp, p1);
  4859. X      FposCopy(fpos(tmp), fpos(p1));
  4860. X      p1 = tmp;
  4861. X    }
  4862. X    type(op) = GAP_OBJ;
  4863. X    Link(p1, op);
  4864. X    Link(p1, p2);
  4865. X    PushObj(p1);
  4866. X    break;
  4867. X
  4868. X
  4869. X    default:
  4870. X    
  4871. X    Error(INTERN, &fpos(op), "Reduce: %s", Image(type(op)) );
  4872. X    break;
  4873. X
  4874. X  } /* end switch */
  4875. X  debug0(DOP, DD, "Reduce returning; ");
  4876. X  ifdebug(DOP, DD, DebugStacks(0) );
  4877. X} /* end Reduce */
  4878. X
  4879. X
  4880. X/*@@**************************************************************************/
  4881. X/*                                                                           */
  4882. X/*  static SetScope(env, count)                                              */
  4883. X/*                                                                           */
  4884. X/*  Push scopes required to parse object whose environment is env.           */
  4885. X/*  Add to *count the number of scope pushes made.                           */
  4886. X/*                                                                           */
  4887. X/*****************************************************************************/
  4888. X
  4889. Xstatic SetScope(env, count)
  4890. XOBJECT env;  int *count;
  4891. X{ OBJECT link, y, yenv;
  4892. X  debug2(DOP, D, "SetScope( %s, %d )", EchoObject(null, env), *count);
  4893. X  assert( env != nil && type(env) == ENV, "SetScope: type(env) != ENV!" );
  4894. X  if( Down(env) != env )
  4895. X  { Child(y, Down(env));
  4896. X    assert( LastDown(y) != y, "SetScope: LastDown(y)!" );
  4897. X    link = LastDown(env) != Down(env) ? LastDown(env) : LastDown(y);
  4898. X    Child(yenv, link);
  4899. X    assert( type(yenv) == ENV, "SetScope: type(yenv) != ENV!" );
  4900. X    SetScope(yenv, count);
  4901. X    PushScope(actual(y), FALSE, FALSE);  (*count)++;
  4902. X  }
  4903. X  debug1(DOP, D, "SetScope returning, count = %d", *count);
  4904. X} /* end SetScope */
  4905. X
  4906. X
  4907. X/*****************************************************************************/
  4908. X/*                                                                           */
  4909. X/*  InitParser()                                                             */
  4910. X/*                                                                           */
  4911. X/*  Initialise the parser to contain just GstubExt.                          */
  4912. X/*  Remember cross_db, the name of the cross reference database, for Parse.  */
  4913. X/*                                                                           */
  4914. X/*****************************************************************************/
  4915. X
  4916. XInitParser(cross_db)
  4917. Xunsigned char *cross_db;
  4918. X{ if( strlen(cross_db) + strlen(INDEX_SUFFIX) >= MAX_LINE )
  4919. X    Error(FATAL, no_fpos, "cross reference database file name %s%s is too long",
  4920. X    cross_db, INDEX_SUFFIX);
  4921. X  cross_name = MakeWordTwo(cross_db, INDEX_SUFFIX, no_fpos);
  4922. X  PushToken( NewToken(GSTUB_EXT, no_fpos, 0, 0, DEFAULT_PREC, StartSym) );
  4923. X} /* end InitParser */
  4924. X
  4925. X
  4926. X/*@@**************************************************************************/
  4927. X/*                                                                           */
  4928. X/*  static OBJECT ParseEnvClosure(t, encl)                                   */
  4929. X/*                                                                           */
  4930. X/*  Parse an object which is a closure with environment.  Consume the        */
  4931. X/*  concluding @Clos.                                                        */
  4932. X/*                                                                           */
  4933. X/*****************************************************************************/
  4934. X
  4935. Xstatic OBJECT ParseEnvClosure(t, encl)
  4936. XOBJECT t, encl;
  4937. X{ OBJECT env, res, y;  int count, i;
  4938. X  debug0(DOP, DD, "ParseEnvClosure(t, encl)");
  4939. X  assert( type(t) == ENV, "ParseEnvClosure: type(t) != ENV!" );
  4940. X  env = t;  t = LexGetToken();
  4941. X  while( type(t) != CLOS )  switch( type(t) )
  4942. X  {
  4943. X    case LBR:    count = 0;
  4944. X        SetScope(env, &count);
  4945. X        y = Parse(&t, encl, FALSE, FALSE);
  4946. X        if( type(y) != CLOSURE )  Error(FATAL, &fpos(y),
  4947. X            "syntax error in cross reference database");
  4948. X        for( i = 1;  i <= count;  i++ )  PopScope();
  4949. X        AttachEnv(env, y);
  4950. X        env = SetEnv(y, nil);
  4951. X        t = LexGetToken();
  4952. X        break;
  4953. X
  4954. X    case ENV:    y = ParseEnvClosure(t, encl);
  4955. X        env = SetEnv(y, env);
  4956. X        t = LexGetToken();
  4957. X        break;
  4958. X
  4959. X    default:    Error(FATAL, &fpos(t), "error in cross reference database");
  4960. X        break;
  4961. X  }
  4962. X  Dispose(t);
  4963. X  if( Down(env) == env || Down(env) != LastDown(env) )
  4964. X    Error(FATAL, &fpos(env), "error in cross reference database");
  4965. X  Child(res, Down(env));
  4966. X  DeleteNode(env);
  4967. X  debug1(DOP, DD, "ParseEnvClosure returning %s", EchoObject(null, res));
  4968. X  assert( type(res) == CLOSURE, "ParseEnvClosure: type(res) != CLOSURE!" );
  4969. X  return res;
  4970. X} /* end ParseEnvClosure */
  4971. X
  4972. X
  4973. X
  4974. X/*@@**************************************************************************/
  4975. X/*                                                                           */
  4976. X/*  OBJECT Parse(token, encl, defs_allowed, transfer_allowed)                */
  4977. X/*                                                                           */
  4978. X/*  Parse input tokens, beginning with *token, looking for an object of the  */
  4979. X/*  form { ... } or @Begin ... @End <sym>, and return the object.            */
  4980. X/*  The parent definition is encl, and scope has been set appropriately.     */
  4981. X/*  Parse reads up to and including the last token of the object             */
  4982. X/*  (the right brace or <sym>), and returns nil in *token.                   */
  4983. X/*                                                                           */
  4984. X/*  If defs_allowed == TRUE, there may be local definitions in the object.   */
  4985. X/*  In this case, encl is guaranteed to be the enclosing definition.         */
  4986. X/*                                                                           */
  4987. X/*  If transfer_allowed == TRUE, the parser may transfer components to the   */
  4988. X/*  galley handler as they are read.                                         */
  4989. X/*                                                                           */
  4990. X/*  Note: the lexical analyser returns "@End \Input" at end of input, so the */
  4991. X/*  parser does not have to handle end of input separately.                  */
  4992. X/*                                                                           */
  4993. X/*****************************************************************************/
  4994. X
  4995. XOBJECT Parse(token, encl, defs_allowed, transfer_allowed)
  4996. XOBJECT *token, encl;  BOOLEAN defs_allowed, transfer_allowed;
  4997. X{ OBJECT t, x, tmp, xsym, env, y, res;
  4998. X  int i, initial_ttop = ttop;
  4999. X  unsigned char buff[MAX_LINE];  FILE_NUM index_fnum;
  5000. X
  5001. X  debug4(DOP, D, "[ Parse(%s, %s, %s, %s)", EchoToken(*token), SymName(encl),
  5002. X    bool(defs_allowed), bool(transfer_allowed));
  5003. X  assert( type(*token) == LBR || type(*token) == BEGIN, "Parse: *token!" );
  5004. X
  5005. X  obj_prev = FALSE;
  5006. X  Shift(*token, precedence(*token), 0, FALSE, TRUE);
  5007. X  t = LexGetToken();
  5008. X  if( defs_allowed )
  5009. X  { ReadDefinitions(&t, encl, LOCAL);
  5010. X    if( encl == StartSym ) /* transition point from defs to content */
  5011. X    {
  5012. X      /* if error in definitions, stop now */
  5013. X      if( ErrorSeen() )  Error(FATAL, &fpos(t), "Exiting now");
  5014. X
  5015. X      /* load cross-references from previous run, open new cross refs */
  5016. X      if( AllowCrossDb )
  5017. X      {    index_fnum = DefineFile(cross_name, INDEX_FILE, SOURCE_PATH);
  5018. X    OldCrossDb = DbLoad(index_fnum,string(cross_name),&fpos(t),FALSE,nil);
  5019. X    NewCrossDb = DbCreate(string(cross_name), &fpos(t));
  5020. X      }
  5021. X      else OldCrossDb = NewCrossDb = nil;
  5022. X
  5023. X      /* tidy up and possibly print symbol table */
  5024. X      FlattenUses();
  5025. X      ifdebug(DST, D, EchoObject(stderr, StartSym) );
  5026. X
  5027. X      /* read @Use commands and construct env */
  5028. X      env = New(ENV);
  5029. X      while( type(t) == USE )
  5030. X      {
  5031. X    OBJECT crs, res_env;  STYLE style;
  5032. X    Dispose(t);  t = LexGetToken();
  5033. X    if( type(t) != LBR )
  5034. X      Error(FATAL, &fpos(t), "%s expected after %s", KW_LBR, KW_USE);
  5035. X    y = Parse(&t, encl, FALSE, FALSE);
  5036. X    if( type(y) == CROSS )
  5037. X    { y = CrossExpand(y, env, &style, FALSE, &crs, &res_env);
  5038. X      AttachEnv(res_env, y);
  5039. X      env = SetEnv(y, env);
  5040. X    }
  5041. X    else if( type(y) == CLOSURE )
  5042. X    { AttachEnv(env, y);
  5043. X      env = SetEnv(y, nil);
  5044. X    }
  5045. X    else Error(FATAL, &fpos(y), "invalid parameter of %s", KW_USE);
  5046. X
  5047. X    PushScope(actual(y), FALSE, TRUE);
  5048. X    t = LexGetToken();
  5049. X      }
  5050. X      TransferInit(env);
  5051. X    }
  5052. X  }
  5053. X
  5054. X  for(;;)
  5055. X  { 
  5056. X    ifdebug(DOP, DD, DebugStacks(initial_ttop) );
  5057. X    debug2(DOP, DD, ">> %s.%d", EchoToken(t), precedence(t) );
  5058. X
  5059. X    switch( type(t) )
  5060. X    {
  5061. X
  5062. X      case WORD:
  5063. X      
  5064. X    if( string(t)[0] == '@' )
  5065. X      Error(WARN, &fpos(t), "symbol %s unknown or misspelt", string(t));
  5066. X    ShiftObj(t);
  5067. X    t = LexGetToken();
  5068. X    break;
  5069. X
  5070. X
  5071. X      case VCAT:
  5072. X      case HCAT:
  5073. X      case ACAT:
  5074. X      
  5075. X    /* clean up left context */
  5076. X    Shift(t, precedence(t), LEFT_ASSOC, TRUE, TRUE);
  5077. X
  5078. X    /* invoke transfer subroutines if appropriate */
  5079. X    if( type(t) == VCAT && !has_join(actual(t))
  5080. X        && type(tok_stack[ttop-2]) == GSTUB_EXT )
  5081. X    { TransferComponent( PopObj() );
  5082. X      obj_prev = FALSE;
  5083. X      tmp = New(NULL_CLOS);
  5084. X      FposCopy( fpos(tmp), fpos(t) );
  5085. X      PushObj(tmp);
  5086. X    }
  5087. X
  5088. X    /* push GAP_OBJ token, to cope with 3 parameters */
  5089. X    x = New(GAP_OBJ);
  5090. X    mark(gap(x)) = has_mark(actual(t));
  5091. X    join(gap(x)) = has_join(actual(t));
  5092. X    precedence(x) = GAP_PREC;
  5093. X    FposCopy( fpos(x), fpos(t) );
  5094. X    Shift(x, GAP_PREC, LEFT_ASSOC, FALSE, TRUE);
  5095. X
  5096. X    /* if op is followed by space, insert {} */
  5097. X    t = LexGetToken();
  5098. X    if( hspace(t) + vspace(t) > 0 )
  5099. X    { ShiftObj(MakeWord("", &fpos(x)));
  5100. X    }
  5101. X    break;
  5102. X
  5103. X
  5104. X      case CROSS:
  5105. X      case NULL_CLOS:
  5106. X      case ONE_COL:
  5107. X      case ONE_ROW:
  5108. X      case WIDE:
  5109. X      case HIGH:
  5110. X      case HSCALE:
  5111. X      case VSCALE:
  5112. X      case SCALE:
  5113. X      case HCONTRACT:
  5114. X      case VCONTRACT:
  5115. X      case HEXPAND:
  5116. X      case VEXPAND:
  5117. X      case PADJUST:
  5118. X      case HADJUST:
  5119. X      case VADJUST:
  5120. X      case ROTATE:
  5121. X      case CASE:
  5122. X      case YIELD:
  5123. X      case FONT:
  5124. X      case SPACE:
  5125. X      case BREAK:
  5126. X      case NEXT:
  5127. X      case TAGGED:
  5128. X      case INCGRAPHIC:
  5129. X      case SINCGRAPHIC:
  5130. X      case GRAPHIC:
  5131. X
  5132. X    /* clean up left context of t (these ops are all right associative) */
  5133. X    Shift(t, precedence(t), RIGHT_ASSOC,
  5134. X        has_lpar(actual(t)), has_rpar(actual(t)));
  5135. X    t = LexGetToken();
  5136. X    break;
  5137. X
  5138. X
  5139. X      case BEGIN:
  5140. X      
  5141. X    if( actual(t) == nil )
  5142. X    { Error(WARN, &fpos(t), "%s replaced by %s", KW_BEGIN, KW_LBR);
  5143. X      type(t) = LBR;
  5144. X    }
  5145. X    /* NB NO BREAK! */
  5146. X
  5147. X
  5148. X      case LBR:
  5149. X      
  5150. X    Shift(t, LBR_PREC, 0, FALSE, TRUE);
  5151. X    t = LexGetToken();
  5152. X    break;
  5153. X
  5154. X
  5155. X      case END:
  5156. X      
  5157. X    x = LexGetToken();
  5158. X    if( type(x) == CLOSURE )
  5159. X    { actual(t) = actual(x);
  5160. X      Dispose(x);
  5161. X      x = nil;
  5162. X    }
  5163. X    else if( type(x) == WORD && string(x)[0] == '@' )
  5164. X    { Error(WARN,&fpos(x),"unknown or misspelt symbol %s after %s deleted",
  5165. X        string(x), KW_END);
  5166. X      actual(t) = nil;
  5167. X      Dispose(x);
  5168. X      x = nil;
  5169. X    }
  5170. X    else
  5171. X    { Error(WARN, &fpos(x), "symbol expected after %s", KW_END);
  5172. X      actual(t) = nil;
  5173. X    }
  5174. X    Shift(t, precedence(t), 0, TRUE, FALSE);
  5175. X    if( ttop == initial_ttop )
  5176. X    { ifdebug(DOP, DD, DebugStacks(initial_ttop));
  5177. X      *token = x;
  5178. X      debug0(DOP, D, "] Parse returning");
  5179. X      ifdebug(DOP, D, EchoObject(stderr, ObjTop));
  5180. X      obj_prev = FALSE;
  5181. X      return PopObj();
  5182. X    }
  5183. X    t = (x != nil) ? x : LexGetToken();
  5184. X    break;
  5185. X
  5186. X
  5187. X      case RBR:
  5188. X      
  5189. X    Shift(t, precedence(t), 0, TRUE, FALSE);
  5190. X    if( ttop == initial_ttop )
  5191. X    { ifdebug(DOP, DD, DebugStacks(initial_ttop));
  5192. X      *token = nil;
  5193. X      debug0(DOP, D, "] Parse returning");
  5194. X      ifdebug(DOP, D, EchoObject(stderr, ObjTop));
  5195. X      obj_prev = FALSE;
  5196. X      return PopObj();
  5197. X    }
  5198. X    t = LexGetToken();
  5199. X    break;
  5200. X                
  5201. X
  5202. X      case USE:
  5203. X      
  5204. X    Error(FATAL, &fpos(t), "%s symbol out of place", SymName(actual(t)));
  5205. X    break;
  5206. X
  5207. X
  5208. X      case ENV:
  5209. X      
  5210. X    /* only occurs in cross reference databases */
  5211. X    res = ParseEnvClosure(t, encl);
  5212. X    ShiftObj(res);
  5213. X    t = LexGetToken();
  5214. X    break;
  5215. X
  5216. X
  5217. X      case LVIS:
  5218. X      
  5219. X    /* only occurs in cross-reference databases */
  5220. X    SuppressVisible();
  5221. X    Dispose(t);  t = LexGetToken();
  5222. X    UnSuppressVisible();
  5223. X    if( type(t) != CLOSURE )
  5224. X      Error(FATAL, &fpos(t), "symbol expected following %s", KW_LVIS);
  5225. X    /* NB NO BREAK! */
  5226. X
  5227. X
  5228. X      case CLOSURE:
  5229. X      
  5230. X    x = t;  xsym = actual(x);
  5231. X
  5232. X    /* look ahead one token, which could be an NPAR */
  5233. X    PushScope(xsym, TRUE, FALSE);
  5234. X    t = LexGetToken();
  5235. X    PopScope();
  5236. X
  5237. X    /* if x starts a cross-reference, make it a CLOSURE */
  5238. X    if( type(t) == CROSS )
  5239. X    { ShiftObj(x);
  5240. X      break;
  5241. X    }
  5242. X
  5243. X    /* clean up left context of x */
  5244. X    Shift(x, precedence(x),right_assoc(xsym),has_lpar(xsym),has_rpar(xsym));
  5245. X
  5246. X    /* update uses relation if required */
  5247. X    if( encl != StartSym )
  5248. X    { if( !has_target(xsym) )  InsertUses(encl, xsym);
  5249. X      else uses_galley(encl) = TRUE;
  5250. X    }
  5251. X
  5252. X    /* read named parameters */
  5253. X    while( type(t) == CLOSURE && enclosing(actual(t)) == xsym
  5254. X                       && type(actual(t)) == NPAR )
  5255. X    {    
  5256. X      /* check syntax and attach the named parameter to x */
  5257. X      OBJECT new_par = t;
  5258. X      t = LexGetToken();
  5259. X      if( type(t) != LBR )
  5260. X      { Error(WARN, &fpos(new_par), "%s must follow named parameter %s",
  5261. X            KW_LBR, SymName(actual(new_par)) );
  5262. X        Dispose(new_par);
  5263. X        break;
  5264. X      }
  5265. X
  5266. X      /* read the named parameter's body */
  5267. X      PushScope(actual(new_par), FALSE, FALSE);
  5268. X      tmp = Parse(&t, encl, FALSE, FALSE);
  5269. X      type(new_par) = PAR;
  5270. X      Link(x, new_par);
  5271. X      Link(new_par, tmp);
  5272. X      PopScope();
  5273. X
  5274. X      /* get next token, possibly another NPAR */
  5275. X      PushScope(xsym, TRUE, FALSE);     /* allow NPARs only */
  5276. X      if( t == nil )  t = LexGetToken();
  5277. X      PopScope();
  5278. X
  5279. X    } /* end while */
  5280. X    obj_prev = !has_rpar(xsym);
  5281. X
  5282. X    /* record symbol name in BEGIN following, if any */
  5283. X    if( type(t) == BEGIN )
  5284. X    { if( !has_rpar(xsym) )
  5285. X        Error(WARN, &fpos(x), "%s takes no right parameter", SymName(xsym));
  5286. X      else actual(t) = xsym;
  5287. X    }
  5288. X
  5289. X    /* if x can be transferred, do so */
  5290. X    if( transfer_allowed && has_target(xsym) && !has_key(xsym) )
  5291. X    {   
  5292. X      if( !has_rpar(xsym) || uses_count(ChildSym(xsym, RPAR)) <= 1 )
  5293. X      {
  5294. X        debug1(DGT, DD, "examining transfer of %s", SymName(xsym));
  5295. X        ifdebug(DGT, DD, DebugStacks(initial_ttop));
  5296. X        i = has_rpar(xsym) ? ttop -1 : ttop;
  5297. X        while( is_cat_op(type(tok_stack[i])) )   i--;
  5298. X        if( (type(tok_stack[i])==LBR || type(tok_stack[i])==BEGIN)
  5299. X          && type(tok_stack[i-1]) == GSTUB_EXT )
  5300. X        {
  5301. X          /* at this point it is likely that x is transferable */
  5302. X          if( has_rpar(xsym) )
  5303. X          { tmp = New(CLOSURE);
  5304. X        actual(tmp) = InputSym;
  5305. X        FposCopy( fpos(tmp), fpos(t) );
  5306. X        PushObj(tmp);  obj_prev = TRUE;
  5307. X        Reduce();
  5308. X          }
  5309. X          x = PopObj();
  5310. X          x = TransferBegin(x);
  5311. X          if( type(x) == CLOSURE )    /* failure: unReduce */
  5312. X          {    if( has_rpar(xsym) )
  5313. X        { Child(tmp, LastDown(x));
  5314. X          assert(type(tmp)==PAR && type(actual(tmp))==RPAR,
  5315. X                "Parse: can't undo rpar" );
  5316. X          DisposeChild(LastDown(x));
  5317. X          if( has_lpar(xsym) )
  5318. X          { Child(tmp, Down(x));
  5319. X            assert(type(tmp)==PAR && type(actual(tmp))==LPAR,
  5320. X                "Parse: can't undo lpar" );
  5321. X            Child(tmp, Down(tmp));
  5322. X            PushObj(tmp);
  5323. X            DeleteLink(Up(tmp));
  5324. X            DisposeChild(Down(x));
  5325. X          }
  5326. X          PushToken(x);  obj_prev = FALSE;
  5327. X        }
  5328. X        else
  5329. X        { PushObj(x);
  5330. X          obj_prev = TRUE;
  5331. X        }
  5332. X          }
  5333. X          else /* success */
  5334. X          { obj_prev = FALSE;
  5335. X            Shift(x, NO_PREC, 0, FALSE, has_rpar(xsym));
  5336. X          }
  5337. X        }
  5338. X      }
  5339. X    } /* end if has_target */
  5340. X
  5341. X    if( has_body(xsym) )
  5342. X    { if( type(t) == BEGIN || type(t) == LBR )
  5343. X      { PushScope(xsym, FALSE, TRUE);
  5344. X        PushScope(ChildSym(xsym, RPAR), FALSE, FALSE);
  5345. X        PushObj( Parse(&t, encl, FALSE, TRUE) );
  5346. X        obj_prev = TRUE;
  5347. X        Reduce();
  5348. X        PopScope();
  5349. X        PopScope();
  5350. X        if( t == nil )  t = LexGetToken();
  5351. X      }
  5352. X      else
  5353. X      { Error(WARN, &fpos(t),
  5354. X          "%s parameter of %s must be enclosed in %s .. %s",
  5355. X          KW_BODY, SymName(xsym), KW_LBR, KW_RBR);
  5356. X      }
  5357. X    }
  5358. X    break;
  5359. X
  5360. X
  5361. X      case OPEN:
  5362. X
  5363. X    x = t;  xsym = nil;
  5364. X    Shift(t, precedence(t), RIGHT_ASSOC, TRUE, TRUE);
  5365. X    if( type(ObjTop) == CLOSURE )  xsym = actual(ObjTop);
  5366. X    else if( type(ObjTop) == CROSS && Down(ObjTop) != ObjTop )
  5367. X    { Child(tmp, Down(ObjTop));
  5368. X      if( type(tmp) == CLOSURE )  xsym = actual(tmp);
  5369. X    }
  5370. X    t = LexGetToken();
  5371. X
  5372. X    if( xsym == nil )
  5373. X      Error(WARN, &fpos(x), "invalid left parameter of %s", KW_OPEN);
  5374. X    else if( type(t) != BEGIN && type(t) != LBR )
  5375. X      Error(WARN, &fpos(t), "%s parameter of %s not enclosed in %s .. %s",
  5376. X           KW_RIGHT, KW_OPEN, KW_LBR, KW_RBR);
  5377. X    else
  5378. X    { PushScope(xsym, FALSE, TRUE);
  5379. X      tmp = Parse(&t, encl, FALSE, FALSE);
  5380. X      ShiftObj(tmp);
  5381. X      PopScope();
  5382. X      if( t == nil )  t = LexGetToken();
  5383. X      Reduce();
  5384. X    }
  5385. X    break;
  5386. X
  5387. X
  5388. X      default:
  5389. X      
  5390. X    Error(INTERN, &fpos(t), "Parse: type %s", Image(type(t)) );
  5391. X    break;
  5392. X
  5393. X    } /* end switch */
  5394. X  } /* end for */
  5395. X
  5396. X} /* end Parse */
  5397. END_OF_FILE
  5398.   if test 27162 -ne `wc -c <'lout/z06.c'`; then
  5399.     echo shar: \"'lout/z06.c'\" unpacked with wrong size!
  5400.   fi
  5401.   # end of 'lout/z06.c'
  5402. fi
  5403. if test -f 'lout/z33.c' -a "${1}" != "-c" ; then 
  5404.   echo shar: Will not clobber existing file \"'lout/z33.c'\"
  5405. else
  5406.   echo shar: Extracting \"'lout/z33.c'\" \(24078 characters\)
  5407.   sed "s/^X//" >'lout/z33.c' <<'END_OF_FILE'
  5408. X/*@z33.c:Database Service:DbCreate(), DbRetrieve()@***************************/
  5409. X/*                                                                           */
  5410. X/*  LOUT: A HIGH-LEVEL LANGUAGE FOR DOCUMENT FORMATTING (VERSION 2.03)       */
  5411. X/*  COPYRIGHT (C) 1993 Jeffrey H. Kingston                                   */
  5412. X/*                                                                           */
  5413. X/*  Jeffrey H. Kingston (jeff@cs.su.oz.au)                                   */
  5414. X/*  Basser Department of Computer Science                                    */
  5415. X/*  The University of Sydney 2006                                            */
  5416. X/*  AUSTRALIA                                                                */
  5417. X/*                                                                           */
  5418. X/*  This program is free software; you can redistribute it and/or modify     */
  5419. X/*  it under the terms of the GNU General Public License as published by     */
  5420. X/*  the Free Software Foundation; either version 1, or (at your option)      */
  5421. X/*  any later version.                                                       */
  5422. X/*                                                                           */
  5423. X/*  This program is distributed in the hope that it will be useful,          */
  5424. X/*  but WITHOUT ANY WARRANTY; without even the implied warranty of           */
  5425. X/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            */
  5426. X/*  GNU General Public License for more details.                             */
  5427. X/*                                                                           */
  5428. X/*  You should have received a copy of the GNU General Public License        */
  5429. X/*  along with this program; if not, write to the Free Software              */
  5430. X/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                */
  5431. X/*                                                                           */
  5432. X/*  FILE:         z33.c                                                      */
  5433. X/*  MODULE:       Database Service                                           */
  5434. X/*  EXTERNS:      OldCrossDb, NewCrossDb, DbCreate(), DbInsert(),            */
  5435. X/*                DbConvert(), DbLoad(), DbRetrieve(), DbRetrieveNext()      */
  5436. X/*                                                                           */
  5437. X/*****************************************************************************/
  5438. X#include "externs"
  5439. X#define    reading(x)    threaded(x)
  5440. X
  5441. X
  5442. X/*****************************************************************************/
  5443. X/*                                                                           */
  5444. X/*  OldCrossDb     Database containing cross references from previous run.   */
  5445. X/*  NewCrossDb     Writable database of cross references from this run.      */
  5446. X/*                                                                           */
  5447. X/*****************************************************************************/
  5448. X
  5449. XOBJECT OldCrossDb, NewCrossDb;
  5450. X
  5451. X
  5452. X/*****************************************************************************/
  5453. X/*                                                                           */
  5454. X/*  OBJECT DbCreate(str, fpos)                                               */
  5455. X/*                                                                           */
  5456. X/*  Create a new writable database with name (i.e. file stem) str and file   */
  5457. X/*  position fpos for error messages.                                        */
  5458. X/*                                                                           */
  5459. X/*****************************************************************************/
  5460. X
  5461. XOBJECT DbCreate(str, fposn)
  5462. Xunsigned char *str;  FILE_POS *fposn;
  5463. X{ OBJECT db;
  5464. X  debug2(DBS, D, "DbCreate( %s,%s )", str, EchoFilePos(fposn));
  5465. X  db = MakeWord(str, fposn);
  5466. X  reading(db) = FALSE;
  5467. X  filep(db) = null;
  5468. X  debug1(DBS, D, "DbCreate returning %s", EchoObject(null, db));
  5469. X  return db;
  5470. X} /* end DbCreate */
  5471. X
  5472. X
  5473. X/*****************************************************************************/
  5474. X/*                                                                           */
  5475. X/*  #define SymToNum(db, sym, num, gall)                                     */
  5476. X/*                                                                           */
  5477. X/*  Set num to the number used to refer to sym in database db.  If sym is    */
  5478. X/*  not currently referred to in db, create a new number and record sym.     */
  5479. X/*  If gall is true, sym is the target of galleys stored in this database.   */
  5480. X/*  Store in boolean fields db_targ(link) and is_extern_target(sym).         */
  5481. X/*                                                                           */
  5482. X/*****************************************************************************/
  5483. X
  5484. X#define SymToNum(db, sym, num, gall)                    \
  5485. X{ OBJECT link, yy;  int count;                        \
  5486. X  count = 0;                                \
  5487. X  for( link = Down(db);  link != db;  link = NextDown(link) )        \
  5488. X  { Child(yy, link);                            \
  5489. X    assert(type(yy)==CROSS_SYM || type(yy)==ACAT, "SymToNum: yy!");    \
  5490. X    if( type(yy) != CROSS_SYM )  continue;                \
  5491. X    if( symb(yy) == sym )  break;                    \
  5492. X    if( number(link) > count )  count = number(link);            \
  5493. X  }                                    \
  5494. X  if( link == db )                            \
  5495. X  { if( cross_sym(sym) == nil )  CrossInit(sym);            \
  5496. X    link = Link(db, cross_sym(sym));                    \
  5497. X    number(link) = count + 1;                        \
  5498. X    db_targ(link) = FALSE;                        \
  5499. X  }                                    \
  5500. X  num = number(link);                            \
  5501. X  if( gall )  db_targ(link) = is_extern_target(sym) =            \
  5502. X                uses_extern_target(sym) = TRUE;        \
  5503. X} /* end SymToNum */
  5504. X
  5505. X
  5506. X/*@@**************************************************************************/
  5507. X/*                                                                           */
  5508. X/*  #define NumToSym(db, num, sym)                                           */
  5509. X/*                                                                           */
  5510. X/*  Set sym to the symbol which is referred to in database db by num.        */
  5511. X/*                                                                           */
  5512. X/*****************************************************************************/
  5513. X
  5514. X#define NumToSym(db, num, sym)                        \
  5515. X{ OBJECT link, y;                            \
  5516. X  for( link = Down(db);  link != db;  link = NextDown(link) )        \
  5517. X  { Child(y, link);                            \
  5518. X    if( type(y) == CROSS_SYM && number(link) == num )  break;        \
  5519. X  }                                    \
  5520. X  if( link == db )  Error(INTERN, &fpos(db), "NumToSym: no sym!");    \
  5521. X  assert( type(y) == CROSS_SYM, "NumToSym: y!" );            \
  5522. X  sym = symb(y);                            \
  5523. X} /* end NumToSym */
  5524. X
  5525. X
  5526. X/*****************************************************************************/
  5527. X/*                                                                           */
  5528. X/*  DbInsert(db, gall, sym, tag, seq, dfnum, dfpos)                          */
  5529. X/*                                                                           */
  5530. X/*  Insert a new entry into writable database db.  The primary key of the    */
  5531. X/*  entry has these three parts:                                             */
  5532. X/*                                                                           */
  5533. X/*      gall        TRUE if inserting a galley                               */
  5534. X/*      sym         The symbol which is the target of this entry             */
  5535. X/*      tag         The tag of this target (must be a non-null string)       */
  5536. X/*                                                                           */
  5537. X/*  There is also an auxiliary key, seq, which enforces an ordering on       */
  5538. X/*  entries with equal primary keys.  This is used for sorted galleys.       */
  5539. X/*  The value of the entry has the following parts:                          */
  5540. X/*                                                                           */
  5541. X/*      dfnum       The file containing the object                           */
  5542. X/*      dfpos       The position of the object in that file                  */
  5543. X/*                                                                           */
  5544. X/*****************************************************************************/
  5545. X
  5546. XDbInsert(db, gall, sym, tag, seq, dfnum, dfpos)
  5547. XOBJECT db;  BOOLEAN gall;  OBJECT sym;  unsigned char *tag, *seq;
  5548. XFILE_NUM dfnum;  long dfpos;
  5549. X{ int symnum;
  5550. X  unsigned char buff[MAX_LINE];
  5551. X  assert( type(db) == WORD, "DbInsert: db!" );
  5552. X  assert( tag[0] != '\0', "DbInsert: null tag!" );
  5553. X  assert( seq[0] != '\0', "DbInsert: null seq!" );
  5554. X  ifdebug(DPP, D, ProfileOn("DbInsert"));
  5555. X  debug6(DBS, D, "DbInsert(%s, %s, %s, %s, %s, %s, dfpos)",
  5556. X    string(db), bool(gall), SymName(sym), tag, seq,
  5557. X    dfnum == NO_FILE ? (unsigned char *) "." : FileName(dfnum));
  5558. X  if( reading(db) )  Error(INTERN, &fpos(db), "insert into reading database!");
  5559. X  if( filep(db) == null )
  5560. X  { if( strlen(string(db)) + strlen(NEW_INDEX_SUFFIX) >= MAX_LINE )
  5561. X      Error(FATAL, no_fpos, "database file name %s%s is too long",
  5562. X    string(db), NEW_INDEX_SUFFIX);
  5563. X    sprintf(buff, "%s%s", string(db), NEW_INDEX_SUFFIX);
  5564. X    filep(db) = fopen(buff, "w");
  5565. X    if( filep(db) == null )
  5566. X      Error(FATAL, &fpos(db), "cannot write to database file %s", buff);
  5567. X  }
  5568. X  SymToNum(db, sym, symnum, gall);
  5569. X  fprintf(filep(db), "%s%d&%s\t%s\t%ld\t%s\n", gall ? "&" : "", symnum,
  5570. X    tag, seq, dfpos, dfnum==NO_FILE ? (unsigned char *) "." : FileName(dfnum));
  5571. X  debug0(DBS, D, "DbInsert returning.");
  5572. X  ifdebug(DPP, D, ProfileOff("DbInsert"));
  5573. X} /* end DbInsert */
  5574. X
  5575. X
  5576. X/*@@**************************************************************************/
  5577. X/*                                                                           */
  5578. X/*  DbConvert(db, full_name)                                                 */
  5579. X/*                                                                           */
  5580. X/*  Convert database db from writable to readable, then dispose it.          */
  5581. X/*  full_name is TRUE if symbols are to be known by their full path name.    */
  5582. X/*                                                                           */
  5583. X/*****************************************************************************/
  5584. X
  5585. XDbConvert(db, full_name)
  5586. XOBJECT db;  BOOLEAN full_name;
  5587. X{ unsigned char buff[2*MAX_LINE + 20], oldname[MAX_LINE+10], newname[MAX_LINE];
  5588. X  OBJECT link, y;
  5589. X  ifdebug(DPP, D, ProfileOn("DbConvert"));
  5590. X  debug2(DBS, D, "DbConvert( %d %s )", (int) db,string(db));
  5591. X  if( reading(db) )  Error(INTERN, &fpos(db), "DbConvert: reading database!");
  5592. X  sprintf(newname, "%s", string(db));
  5593. X  sprintf(oldname, "%s%s", string(db), NEW_INDEX_SUFFIX);
  5594. X  if( filep(db) != null )
  5595. X  { for( link = Down(db);  link != db;  link = NextDown(link) )
  5596. X    { Child(y, link);
  5597. X      assert( type(y) == CROSS_SYM || type(y) == ACAT, "DbConvert: y!" );
  5598. X      if( type(y) != CROSS_SYM )  continue;
  5599. X      fprintf(filep(db), "%s %d %s\n", db_targ(link) ? "#target" : "#symbol",
  5600. X    number(link), full_name ? FullSymName(symb(y)," ") : SymName(symb(y)));
  5601. X    }
  5602. X    fclose(filep(db));
  5603. X    sprintf(buff, "sort -o %s %s", newname, oldname);
  5604. X    system(buff);
  5605. X  }
  5606. X  else unlink(newname);
  5607. X  unlink(oldname);
  5608. X  DeleteNode(db);
  5609. X  debug0(DBS, D, "DbConvert returning.");
  5610. X  ifdebug(DPP, D, ProfileOff("DbConvert"));
  5611. X} /* end DbConvert */
  5612. X
  5613. X
  5614. X/*****************************************************************************/
  5615. X/*                                                                           */
  5616. X/*  OBJECT DbLoad(index_fnum, str, fpos, create, symbs)                      */
  5617. X/*                                                                           */
  5618. X/*  Open the database whose name (i.e. <stem>.li) is str for reading.        */
  5619. X/*  This file has already been defined; its internal name is index_fnum.     */
  5620. X/*  If it won't open and create is true, try to create it from <stem>.ld.    */
  5621. X/*                                                                           */
  5622. X/*  symbs is an ACAT of CLOSUREs showing the symbols that the database may   */
  5623. X/*  contain; or nil if the database may contain any symbol.                  */
  5624. X/*                                                                           */
  5625. X/*****************************************************************************/
  5626. X
  5627. XOBJECT DbLoad(index_fnum, str, fposn, create, symbs)
  5628. XFILE_NUM index_fnum;  unsigned char *str;  FILE_POS *fposn;
  5629. XBOOLEAN create;  OBJECT symbs;
  5630. X{ FILE *fp;  OBJECT db, t, res, tag, par, sym, link, y;
  5631. X  int i, lnum, num, count;  unsigned char line[MAX_LINE];
  5632. X  unsigned char indexname[MAX_LINE], dataname[MAX_LINE], sym_name[MAX_LINE];
  5633. X  FILE_NUM dfnum;  long dfpos;  BOOLEAN gall;
  5634. X  ifdebug(DPP, D, ProfileOn("DbLoad"));
  5635. X  debug4(DBS, D, "DbLoad(%s, %s, %s, %s, symbs)", FileName(index_fnum),
  5636. X    str, EchoFilePos(fposn), bool(create));
  5637. X
  5638. X  /* open or else create index file fp */
  5639. X  fp = OpenFile(index_fnum, create);
  5640. X  if( fp == null && create )
  5641. X  { db = nil;
  5642. X    strcpy(dataname, str);
  5643. X    strcpy(&dataname[strlen(dataname) - strlen(INDEX_SUFFIX)], DATA_SUFFIX);
  5644. X    dfnum = DefineFile(MakeWord(dataname, fposn), DATABASE_FILE, DATABASE_PATH);
  5645. X    dfpos = 0L;
  5646. X    LexPush(dfnum, 0, DATABASE_FILE);
  5647. X    t = LexGetToken();
  5648. X    while( type(t) == LBR )
  5649. X    { res = Parse(&t, StartSym, FALSE, FALSE);
  5650. X      if( t != nil || type(res) != CLOSURE )
  5651. X    Error(FATAL, &fpos(res), "syntax error in database file %s", dataname);
  5652. X      assert( symbs != nil, "DbLoad: create && symbs == nil!" );
  5653. X      if( symbs != nil )
  5654. X      {    for( link = Down(symbs);  link != symbs;  link = NextDown(link) )
  5655. X    { Child(y, link);
  5656. X      if( type(y) == CLOSURE && actual(y) == actual(res) )  break;
  5657. X    }
  5658. X    if( link == symbs )  Error(FATAL, &fpos(res),
  5659. X      "%s found in database but not declared in %s line",
  5660. X      SymName(actual(res)), KW_DATABASE);
  5661. X      }
  5662. X      tag = nil;
  5663. X      for( link = Down(res);  link != res;  link = NextDown(link) )
  5664. X      {    Child(par, link);
  5665. X    if( type(par) == PAR && is_tag(actual(par)) && Down(par) != par )
  5666. X    { Child(tag, Down(par));
  5667. X      break;
  5668. X    }
  5669. X      }
  5670. X      if( tag == nil )
  5671. X    Error(FATAL, &fpos(res), "database symbol %s has no tag", SymName(res));
  5672. X      tag = ReplaceWithTidy(tag);
  5673. X      if( type(tag) != WORD )
  5674. X    Error(FATAL, &fpos(res), "database symbol's tag is not a simple word");
  5675. X      if( string(tag)[0] == '\0' )
  5676. X    Error(FATAL, &fpos(res), "database symbol's tag is an empty word");
  5677. X      if( db == nil )
  5678. X      {    strcpy(indexname, FileName(dfnum));
  5679. X    strcpy(&indexname[strlen(indexname)-strlen(DATA_SUFFIX)], INDEX_SUFFIX);
  5680. X    db = DbCreate(indexname, fposn);
  5681. X      }
  5682. X      DbInsert(db, FALSE, actual(res), string(tag), "0", NO_FILE, dfpos);
  5683. X      DisposeObject(res);
  5684. X      dfpos = LexNextTokenPos();
  5685. X      t = LexGetToken();
  5686. X    }
  5687. X    if( type(t) != END )
  5688. X      Error(FATAL, &fpos(t), "%s or end of file expected here", KW_LBR);
  5689. X    LexPop();
  5690. X    if( db == nil )
  5691. X    { strcpy(indexname, FileName(dfnum));
  5692. X      strcpy(&indexname[strlen(indexname)-strlen(DATA_SUFFIX)], INDEX_SUFFIX);
  5693. X      db = DbCreate(indexname, fposn);
  5694. X    }
  5695. X    DbConvert(db, FALSE);
  5696. X    fp = OpenFile(index_fnum, FALSE);
  5697. X    if( fp == null )
  5698. X      Error(FATAL, &fpos(db), "cannot open database file %s", indexname);
  5699. X  }
  5700. X  else strcpy(indexname, str);
  5701. X
  5702. X  /* set up database record */
  5703. X  db = MakeWord(FileName(index_fnum), fposn);
  5704. X  reading(db) = TRUE;
  5705. X  filep(db) = fp;
  5706. X  if( symbs != nil )
  5707. X  { assert( type(symbs) = ACAT, "DbLoad: type(symbs)!" );
  5708. X    Link(db, symbs);
  5709. X  }
  5710. X  if( fp == null )
  5711. X  { debug1(DBS, D, "DbLoad returning (empty) %s", string(db));
  5712. X    ifdebug(DPP, D, ProfileOff("DbLoad"));
  5713. X    return db;
  5714. X  }
  5715. X
  5716. X  /* read header lines of index file, find its symbols */
  5717. X  left_pos(db) = 0;
  5718. X  lnum = 0;
  5719. X  while( fgets(line, MAX_LINE, fp) != NULL && line[0] == '#' )
  5720. X  { lnum++;
  5721. X    left_pos(db) = (int) ftell(fp);
  5722. X    gall = line[1] == 't';
  5723. X    sscanf(line, gall ? "#target %d" : "#symbol %d", &num);
  5724. X    for( i = 8;  line[i] != ' ' && line[i] != '\0';  i++ );
  5725. X    if( symbs == nil )
  5726. X    {
  5727. X      /* any symbols are possible, full path names in index file required */
  5728. X      count = 0;  sym = StartSym;
  5729. X      while( line[i] != '\n' && line[i] != '\0' )
  5730. X      {    PushScope(sym, FALSE, FALSE);  count++;
  5731. X    sscanf(&line[i+1], "%s", sym_name);
  5732. X    sym = SearchSym(sym_name, strlen(sym_name));
  5733. X    i += strlen(sym_name) + 1;
  5734. X      }
  5735. X      for( i = 1;  i <= count;  i++ )  PopScope();
  5736. X    }
  5737. X    else
  5738. X    {
  5739. X      /* only symbs symbols possible, full path names not required */
  5740. X      sym = nil;
  5741. X      sscanf(&line[i+1], "%s", sym_name);
  5742. X      for( link = Down(symbs);  link != symbs;  link = NextDown(link) )
  5743. X      {    Child(y, link);
  5744. X    assert( type(y) == CLOSURE, "DbLoad: type(y) != CLOSURE!" );
  5745. X    if( strcmp(sym_name, SymName(actual(y))) == 0 )
  5746. X    { sym = actual(y);
  5747. X      break;
  5748. X    }
  5749. X      }
  5750. X    }
  5751. X    if( sym != nil && sym != StartSym )
  5752. X    { if( cross_sym(sym) == nil )  CrossInit(sym);
  5753. X      link = Link(db, cross_sym(sym));
  5754. X      number(link) = num;
  5755. X      db_targ(link) = gall;
  5756. X      if( gall )  is_extern_target(sym) = uses_extern_target(sym) = TRUE;
  5757. X    }
  5758. X    else
  5759. X    { Error(WARN, &fpos(db), "undefined symbol in database file %s (line %d)",
  5760. X            indexname, lnum);
  5761. X      debug1(DBS, D, "DbLoad returning %s (error)", string(db));
  5762. X      fclose(filep(db));    /* effectively an empty database */
  5763. X      filep(db) = null;
  5764. X      ifdebug(DPP, D, ProfileOff("DbLoad"));
  5765. X      return db;
  5766. X    }
  5767. X  }
  5768. X  debug1(DBS, D, "DbLoad returning %s", string(db));
  5769. X  ifdebug(DPP, D, ProfileOff("DbLoad"));
  5770. X  return db;
  5771. X} /* end DbLoad */
  5772. X
  5773. X
  5774. X/*@@**************************************************************************/
  5775. X/*                                                                           */
  5776. X/*  static BOOLEAN SearchFile(fp, left, right, str, line)                    */
  5777. X/*                                                                           */
  5778. X/*  File fp is a text file.  left is the beginning of a line, right is the   */
  5779. X/*  end of a line.   Search the file by binary search for a line beginning   */
  5780. X/*  with str.  If found, return it in line, else return FALSE.               */
  5781. X/*                                                                           */
  5782. X/*****************************************************************************/
  5783. X
  5784. Xstatic BOOLEAN SearchFile(fp, left, right, str, line)
  5785. XFILE *fp;  int left, right;  unsigned char *str, *line;
  5786. X{ int l, r, mid, mid_end;  unsigned char buff[MAX_LINE];  BOOLEAN res;
  5787. X  ifdebug(DPP, D, ProfileOn("SearchFile"));
  5788. X  debug3(DBS, DD, "SearchFile(fp, %d, %d, %s, line)", left, right, str);
  5789. X
  5790. X  l = left;  r = right;
  5791. X  while( l <= r )
  5792. X  {
  5793. X    /* loop invt: (l==0 or fp[l-1]=='\n') and (fp[r] == '\n')       */
  5794. X    /* and first key >= str lies in the range fp[l..r+1]            */
  5795. X
  5796. X    /* find line near middle of the range; mid..mid_end brackets it */
  5797. X    debug2(DBS, DD, "  start loop: l = %d, r = %d", l, r);
  5798. X    mid = (l + r)/2;
  5799. X    fseek(fp, (long) mid, 0);
  5800. X    do { mid++; } while( getc(fp) != '\n' );
  5801. X    if( mid == r + 1 )
  5802. X    { mid = l;
  5803. X      fseek(fp, (long) mid, 0);
  5804. X    }
  5805. X    fgets(line, MAX_LINE, fp);
  5806. X    mid_end = (int) ftell(fp) - 1;
  5807. X    debug3(DBS, DD, "  mid: %d, mid_end: %d, line: %s", mid, mid_end, line);
  5808. X    assert( l <= mid,      "SearchFile: l > mid!"        );
  5809. X    assert( mid < mid_end, "SearchFile: mid >= mid_end!" );
  5810. X    assert( mid_end <= r,  "SearchFile: mid_end > r!"    );
  5811. X
  5812. X    /* compare str with this line and prepare next step */
  5813. X    debug2(DBS, DD, "  comparing key %s with line %s", str, line);
  5814. X    if( strcmp(str, line) <= 0 )  r = mid - 1;
  5815. X    else l = mid_end + 1;
  5816. X  } /* end while */
  5817. X
  5818. X  /* now first key >= str lies in fp[l]; compare it with str */
  5819. X  if( l < right )
  5820. X  { fseek(fp, (long) l, 0);
  5821. X    fgets(line, MAX_LINE, fp);
  5822. X    sscanf(line, "%s", buff);
  5823. X    res = strcmp(str, buff) == 0;
  5824. X  }
  5825. X  else res = FALSE;
  5826. X  debug1(DBS, DD, "SearchFile returning %s", bool(res));
  5827. X  ifdebug(DPP, D, ProfileOff("SearchFile"));
  5828. X  return res;
  5829. X} /* end SearchFile */
  5830. X
  5831. X
  5832. X/*@@**************************************************************************/
  5833. X/*                                                                           */
  5834. X/*  BOOLEAN DbRetrieve(db, gall, sym, tag, seq, dfnum, dfpos, cont)          */
  5835. X/*                                                                           */
  5836. X/*  Retrieve the first entry of database db with the given gall, sym and     */
  5837. X/*  tag.  Set *seq, *dfnum, *dfpos to the associated value.                  */
  5838. X/*  Set *cont to a private value for passing to DbRetrieveNext.              */
  5839. X/*                                                                           */
  5840. X/*****************************************************************************/
  5841. X
  5842. XBOOLEAN DbRetrieve(db, gall, sym, tag, seq, dfnum, dfpos, cont)
  5843. XOBJECT db;  BOOLEAN gall;  OBJECT sym;  unsigned char *tag, *seq;
  5844. XFILE_NUM *dfnum;  long *dfpos;  long *cont;
  5845. X{ int symnum;  unsigned char line[MAX_LINE], buff[MAX_LINE];  OBJECT y;
  5846. X  ifdebug(DPP, D, ProfileOn("DbRetrieve"));
  5847. X  debug4(DBS, D, "DbRetrieve(%s, %s%s&%s)", string(db), gall ? "&" : "",
  5848. X    SymName(sym), tag);
  5849. X  if( !reading(db) || filep(db) == null )
  5850. X  { debug0(DBS, D, "DbRetrieve returning FALSE (empty or not reading)");
  5851. X    ifdebug(DPP, D, ProfileOff("DbRetrieve"));
  5852. X    return FALSE;
  5853. X  }
  5854. X  SymToNum(db, sym, symnum, FALSE);
  5855. X  sprintf(buff, "%s%d&%s", gall ? "&" : "", symnum, tag);
  5856. X  fseek(filep(db), 0L, 2);
  5857. X  if( !SearchFile(filep(db), left_pos(db), (int) ftell(filep(db))-1,buff,line) )
  5858. X  { debug0(DBS, D, "DbRetrieve returning FALSE (key not present)");
  5859. X    ifdebug(DPP, D, ProfileOff("DbRetrieve"));
  5860. X    return FALSE;
  5861. X  }
  5862. X  sscanf(line, "%*s\t%s\t%ld\t%[^\n]", seq, dfpos, buff);
  5863. X  if( strcmp(buff, ".") == 0 )
  5864. X  { strcpy(buff, string(db));
  5865. X    strcpy(&buff[strlen(buff) - strlen(INDEX_SUFFIX)], DATA_SUFFIX);
  5866. X  }
  5867. X  *dfnum = FileNum(buff);
  5868. X  if( *dfnum == NO_FILE )  /* can only occur in cross reference database */
  5869. X    *dfnum = DefineFile(MakeWord(buff, &fpos(db)), DATABASE_FILE, SOURCE_PATH);
  5870. X  *cont = ftell(filep(db));
  5871. X  Child(y, Down(db));
  5872. X  debug2(DBS, D, "DbRetrieve returning TRUE (in %s at %ld)",
  5873. X    FileName(*dfnum), *dfpos);
  5874. X  ifdebug(DPP, D, ProfileOff("DbRetrieve"));
  5875. X  return TRUE;
  5876. X} /* end DbRetrieve */
  5877. X
  5878. X
  5879. X/*****************************************************************************/
  5880. X/*                                                                           */
  5881. X/*  BOOLEAN DbRetrieveNext(db, gall, sym, tag, seq, dfnum, dfpos, cont)      */
  5882. X/*                                                                           */
  5883. X/*  Retrieve the entry of database db pointed to by *cont.                   */
  5884. X/*  Set *gall, *sym, *tag, *seq, *dfnum, *dfpos to the entry's value.        */
  5885. X/*  Reset *cont to the next entry for passing to the next DbRetrieveNext.    */
  5886. X/*                                                                           */
  5887. X/*****************************************************************************/
  5888. X
  5889. XBOOLEAN DbRetrieveNext(db, gall, sym, tag, seq, dfnum, dfpos, cont)
  5890. XOBJECT db;  BOOLEAN *gall;  OBJECT *sym;  unsigned char *tag, *seq;
  5891. XFILE_NUM *dfnum;  long *dfpos;  long *cont;
  5892. X{ unsigned char line[MAX_LINE], fname[MAX_LINE]; int symnum;
  5893. X  ifdebug(DPP, D, ProfileOn("DbRetrieveNext"));
  5894. X  debug2(DBS, D, "DbRetrieveNext( %s, %ld )", string(db), *cont);
  5895. X  if( !reading(db) )  Error(INTERN, &fpos(db), "DbRetrieveNext: writing!");
  5896. X  if( filep(db) == null )
  5897. X  { debug0(DBS, D, "DbRetrieveNext returning FALSE (empty database)");
  5898. X    ifdebug(DPP, D, ProfileOff("DbRetrieveNext"));
  5899. X    return FALSE;
  5900. X  }
  5901. X  fseek(filep(db), *cont == 0L ? left_pos(db) : *cont, 0);
  5902. X  if( fgets(line, MAX_LINE, filep(db)) == NULL )
  5903. X  { debug0(DBS, D, "DbRetrieveNext returning FALSE (no successor)");
  5904. X    ifdebug(DPP, D, ProfileOff("DbRetrieveNext"));
  5905. X    return FALSE;
  5906. X  }
  5907. X  *gall = (line[0] == '&' ? 1 : 0);
  5908. X  sscanf(&line[*gall], "%d&%s\t%s\t%ld\t%[^\n]", &symnum, tag, seq,dfpos,fname);
  5909. X  if( strcmp(fname, ".") == 0 )
  5910. X  { strcpy(fname, string(db));
  5911. X    strcpy(&fname[strlen(fname) - strlen(INDEX_SUFFIX)], DATA_SUFFIX);
  5912. X  }
  5913. X  *dfnum = FileNum(fname);
  5914. X  if( *dfnum == NO_FILE )  /* can only occur in cross reference database */
  5915. X    *dfnum = DefineFile(MakeWord(fname, &fpos(db)), DATABASE_FILE, SOURCE_PATH);
  5916. X  NumToSym(db, symnum, *sym);  *cont = ftell(filep(db));
  5917. X  debug2(DBS, D, "DbRetrieveNext returning TRUE (in %s at %ld)",
  5918. X    FileName(*dfnum), *dfpos);
  5919. X  ifdebug(DPP, D, ProfileOff("DbRetrieveNext"));
  5920. X  return TRUE;
  5921. X} /* end DbRetrieveNext */
  5922. END_OF_FILE
  5923.   if test 24078 -ne `wc -c <'lout/z33.c'`; then
  5924.     echo shar: \"'lout/z33.c'\" unpacked with wrong size!
  5925.   fi
  5926.   # end of 'lout/z33.c'
  5927. fi
  5928. echo shar: End of archive 10 \(of 30\).
  5929. cp /dev/null ark10isdone
  5930. MISSING=""
  5931. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do
  5932.     if test ! -f ark${I}isdone ; then
  5933.     MISSING="${MISSING} ${I}"
  5934.     fi
  5935. done
  5936. if test "${MISSING}" = "" ; then
  5937.     echo You have unpacked all 30 archives.
  5938.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  5939. else
  5940.     echo You still must unpack the following archives:
  5941.     echo "        " ${MISSING}
  5942. fi
  5943. exit 0
  5944. exit 0 # Just in case...
  5945.