home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / tmg / tmgl.s < prev    next >
Encoding:
Text File  |  1975-07-18  |  14.5 KB  |  2,099 lines

  1. 1 ..1
  2. ..1:begin:
  3.  
  4. ignore
  5. blanks
  6. pr1:
  7. comment
  8. salt;pr1
  9. parse
  10. first
  11. salt;pr2
  12. diag
  13. error
  14. pr2:
  15. comment
  16. salt;pr2
  17. parse
  18. line
  19. salt;pr2
  20. diag
  21. error
  22. salt;pr2
  23. putcharcl
  24. 1 parse
  25. last
  26. .3=.
  27. <1 \0>;.even
  28. .2=.
  29. .tx;.3
  30. .tp;.byte 1,0;
  31. 1 .tn
  32. .1=.
  33. fref
  34. 1 trans;1 .2
  35. .4=.
  36. .tp;.byte 2,0;
  37. .txs;':
  38. 1 .tp;.byte 1,0;
  39. first:
  40.  
  41. parse
  42. .1
  43. getfref
  44. line
  45. 1 trans;1 .4
  46. .1=.
  47. 1
  48. .2=.
  49. 2
  50. .3=.
  51. 1 .txs;';
  52. .5=.
  53. <??? \0>;.even
  54. .4=.
  55. .tn
  56. .tx;.5
  57. .tp;.byte 2,0;
  58. .tp;.byte 1,0;
  59. 1 .tn
  60. error:
  61.  
  62. smark
  63. ignore
  64. none
  65. any
  66. .1
  67. string
  68. .2
  69. scopy
  70. .pxs;';
  71. alt;..3
  72. trans;1 .3
  73. goto;..2
  74. ..3:null
  75. ..2:
  76. 1 trans;1 .4
  77. .1=.
  78. .tp;.byte 2,0;
  79. .tn
  80. .tp;.byte 1,0;
  81. 1 .tn
  82. line:
  83.  
  84. labels
  85. charcl
  86. alt;..7
  87. .pxs;';
  88. goto;..4
  89. ..7:statement
  90. salt;..5
  91. numbers
  92. salt;..6
  93. trule
  94. .pxs;';
  95. ..6:
  96. ..5:
  97. ..4:
  98. 1 trans;1 .1
  99. .1=.
  100. .tp;.byte 2,0;
  101. .tn
  102. 1 .tp;.byte 1,0;
  103. numbers:
  104.  
  105. number
  106. .pxs;';
  107. numbers
  108. alt;done
  109. 1 trans;1 .1
  110. .1=.
  111. .tp;.byte 2,0;
  112. .tn
  113. 1 .tp;.byte 1,0;
  114. labels:
  115.  
  116. label
  117. labels
  118. alt;done
  119. 1 trans;1 .1
  120. .1=.
  121. .tp;.byte 1,0;
  122. 1 .txs;':
  123. label:
  124.  
  125. name
  126. .pxs;':
  127. 1 trans;1 .1
  128. .2=.
  129. <.pn:1 .pxs;12\0>;.even
  130. .3=.
  131. <.tn:1 .txs;12\0>;.even
  132. .1=.
  133. .tx;.2
  134. .tn
  135. .tx;.3
  136. 1 .tn
  137. last:
  138.  
  139. 1 trans;1 .1
  140. .1=.
  141. </*\0>;.even
  142. .2=.
  143. 4
  144. comment:
  145.  
  146. .px;.1
  147. co1:
  148. ignore
  149. .2
  150. .pxs;'*
  151. ignore
  152. none
  153. .pxs;'/
  154. 1 alt;co1
  155. .1=.
  156. 0
  157. .2=.
  158. gpar;1
  159. .tp;.byte 2,0;
  160. 1 .tp;.byte 1,0;
  161. .3=.
  162. gpar;1
  163. 1 generate
  164. .4=.
  165. gpar;1
  166. .tp;.byte 2,0;nil
  167. .tn
  168. 1 .tp;.byte 1,0;q1
  169. .5=.
  170. 1 .tp;.byte 1,0;xbit
  171. .7=.
  172. <1 succ\0>;.even
  173. .6=.
  174. .tp;.byte 1,0;nil
  175. .tn
  176. 1 .tx;.7
  177. statement:
  178.  
  179. .l;csym
  180. .l;.1
  181. .st
  182. .p
  183. oldtab
  184. dtt
  185. oldtab
  186. pat
  187. proc
  188. alt;..11
  189. plst
  190. tlst
  191. .pxs;')
  192. trans;1 .2
  193. goto;..10
  194. ..11:trans;1 .3
  195. noelem
  196. ..10:
  197. stt1:
  198. bundle
  199. frag
  200. alt;..15
  201. trans;1 .4
  202. salt;stt1
  203. goto;..12
  204. ..15:.pxs;';
  205. ifelem
  206. alt;..14
  207. trans;1 .5
  208. goto;..13
  209. ..14:trans;1 .6
  210. ..13:
  211. ..12:
  212. 1 succ
  213. .1=.
  214. <proc(\0>;.even
  215. proc:
  216.  
  217. smark
  218. ignore
  219. none
  220. 1 .px;.1
  221. .1=.
  222. 1 octal
  223. npa
  224. .3=.
  225. <params;\0>;.even
  226. .2=.
  227. .tx;.3
  228. .tp;.byte 1,0;
  229. 1 .tn
  230. plst:
  231.  
  232. list
  233. pident
  234. alt;null
  235. remote
  236. .1
  237. 1 trans;1 .2
  238. pident:
  239.  
  240. ident
  241. 1 newtab
  242. pat
  243. npa
  244. .1=.
  245. 0
  246. .2=.
  247. name
  248. .l;i
  249. .ia
  250. 1 .p
  251. .3=.
  252. 1 octal
  253. i
  254. .5=.
  255. <push;\0>;.even
  256. .4=.
  257. .tx;.5
  258. .tp;.byte 1,0;
  259. .tn
  260. .tp;.byte 2,0;
  261. 1 .tn
  262. tlst:
  263.  
  264. .pxs;';
  265. alt;null
  266. .l;i
  267. .l;.1
  268. .st
  269. .p
  270. list
  271. .2
  272. remote
  273. .3
  274. 1 trans;1 .4
  275. .1=.
  276. gpar;1
  277. 1 .tp;.byte 1,0;nil
  278. q1
  279. .2=.
  280. gpar;1
  281. 1 .tp;.byte 1,0;
  282. frag:
  283.  
  284. prule
  285. alt;..17
  286. trans;1 .1
  287. goto;..16
  288. ..17:labels
  289. noelem
  290. trans;1 .2
  291. ..16:
  292. 1 succ
  293. .2=.
  294. <salt;\0>;.even
  295. .1=.
  296. gpar;2
  297. .tp;.byte 3,0;nil
  298. nil
  299. .tn
  300. .tx;.2
  301. .tp;.byte 2,0;
  302. .tn
  303. .tp;.byte 1,0;q2
  304. q1
  305. .tn
  306. .tp;.byte 2,0;
  307. 1 .txs;':
  308. .5=.
  309. <alt;\0>;.even
  310. .4=.
  311. .tn
  312. .tx;.5
  313. 1 .tp;.byte 1,0;
  314. .6=.
  315. <goto;\0>;.even
  316. .3=.
  317. gpar;2
  318. .tp;.byte 4,0;.4
  319. q1
  320. .tn
  321. .tx;.6
  322. .tp;.byte 3,0;
  323. .tn
  324. .tp;.byte 1,0;
  325. .txs;':
  326. .tp;.byte 2,0;q2
  327. q1
  328. .tn
  329. .tp;.byte 3,0;
  330. 1 .txs;':
  331. prule:
  332.  
  333. .l;sndt
  334. .l;ndt
  335. .st
  336. .p
  337. disj
  338. .pxs;'|
  339. alt;..23
  340. .l;ndt
  341. .l;sndt
  342. .st
  343. .p
  344. fref
  345. ifeasy
  346. alt;..21
  347. prule
  348. trans;1 .1
  349. goto;..20
  350. ..21:prule
  351. fref
  352. trans;1 .3
  353. ..20:
  354. noelem
  355. goto;..22
  356. ..23:
  357. ..22:
  358. 1 succ
  359. .1=.
  360. gpar;2
  361. .tp;.byte 2,0;q2
  362. nil
  363. .tn
  364. 1 .tp;.byte 1,0;nil
  365. q1
  366. disj:
  367.  
  368. pelem
  369. pdot
  370. disj
  371. alt;..25
  372. trans;1 .1
  373. ifelem
  374. alt;done
  375. ishard
  376. goto;..24
  377. ..25:
  378. ..24:
  379. 1 succ
  380. .1=.
  381. gpar;2
  382. .tp;.byte 1,0;q1
  383. 1 .tq;2
  384. .2=.
  385. 1
  386. .3=.
  387. gpar;2
  388. 1 generate
  389. pelem:
  390.  
  391. pprim
  392. alt;..31
  393. trans;1 .1
  394. iseasy
  395. goto;..26
  396. ..31:.pxs;'(
  397. push
  398. .2
  399. sndt
  400. prule
  401. alt;..30
  402. .pxs;')
  403. goto;..27
  404. ..30:.pxs;')
  405. trans;1 .3
  406. noelem
  407. ..27:
  408. ..26:
  409. 1 succ
  410. .1=.
  411. gpar;1
  412. .tq;1
  413. .tp;.byte 2,0;
  414. .tn
  415. 1 .tp;.byte 1,0;
  416. .2=.
  417. gpar;1
  418. .tq;1
  419. 1 .tp;.byte 1,0;
  420. .4=.
  421. <alt;\0>;.even
  422. .3=.
  423. 1 .tx;.4
  424. .5=.
  425. <\\\0>;.even
  426. .7=.
  427. <salt;\0>;.even
  428. .6=.
  429. 1 .tx;.7
  430. .10=.
  431. gpar;1
  432. .tp;.byte 3,0;nil
  433. .tn
  434. .tq;1
  435. .tp;.byte 2,0;
  436. 1 .tp;.byte 1,0;
  437. pprim:
  438.  
  439. special
  440. salt;..32
  441. rname
  442. .pxs;':
  443. alt;..37
  444. fail
  445. goto;..33
  446. ..37:spdot
  447. salt;..34
  448.  
  449. ..34:
  450. ignore
  451. none
  452. .pxs;'(
  453. alt;..36
  454. ignore
  455. blanks
  456. list
  457. parg
  458. .pxs;')
  459. trans;1 .1
  460. goto;..35
  461. ..36:trans;1 .2
  462. ..35:
  463. ..33:
  464. ..32:
  465. .pxs;'/
  466. alt;..41
  467. trans;1 .3
  468. goto;..40
  469. ..41:.px;.5
  470. alt;..43
  471. trans;1 .6
  472. ..40:
  473. rname
  474. trans;1 .10
  475. goto;..42
  476. ..43:
  477. ..42:
  478. 1 succ
  479. .2=.
  480. 0
  481. pdot:
  482.  
  483. .pxs;'.
  484. alt;done
  485. ignore
  486. none
  487. ident
  488. salt;alias
  489. .l;dtt
  490. .t
  491. salt;..44
  492. table
  493. dtt
  494. .l;ndt
  495. .l;.2
  496. .st
  497. .p
  498. ..44:
  499. .l;ndt
  500. .ia
  501. 1 .p
  502. .1=.
  503. 1 any
  504. letter
  505. spdot:
  506.  
  507. .pxs;'.
  508. ignore
  509. none
  510. not
  511. .1
  512. alias:
  513. 1 newtab
  514. dtt
  515. ndt
  516. parg:
  517.  
  518. rname
  519. salt;..45
  520. remote
  521. specparg
  522. ..45:
  523. 1 succ
  524. .2=.
  525. <\\n\\0\0>;.even
  526. .1=.
  527. 1 .tx;.2
  528. .4=.
  529. <1 succ\0>;.even
  530. .3=.
  531. 1 .tx;.4
  532. .5=.
  533. 3
  534. .6=.
  535. 0
  536. .7=.
  537. 1 .tp;.byte 1,0;nil
  538. xbit
  539. .11=.
  540. <1 succ\0>;.even
  541. .10=.
  542. .tp;.byte 1,0;nil
  543. nil
  544. .tn
  545. 1 .tx;.11
  546. specparg:
  547.  
  548. number
  549. salt;..46
  550. charcl
  551. salt;..47
  552. .pxs;'<
  553. alt;..57
  554. longlit
  555. goto;..50
  556. ..57:.pxs;'*
  557. alt;..56
  558. trans;1 .1
  559. goto;..51
  560. ..56:.pxs;'(
  561. .pxs;')
  562. alt;..55
  563. trans;1 .3
  564. goto;..52
  565. ..55:push
  566. .5
  567. dtt
  568. ndt
  569. sndt
  570. .l;dtt
  571. .l;.6
  572. .st
  573. .p
  574. prule
  575. .pxs;')
  576. oldtab
  577. dtt
  578. ifelem
  579. alt;..54
  580. trans;1 .7
  581. goto;..53
  582. ..54:trans;1 .10
  583. ..53:
  584. ..52:
  585. ..51:
  586. ..50:
  587. ..47:
  588. ..46:
  589. 1 succ
  590. .1=.
  591. 1
  592. iseasy:
  593.  
  594. .l;easy
  595. .l;.1
  596. .st
  597. 1 .p
  598. .1=.
  599. 0
  600. ishard:
  601.  
  602. .l;easy
  603. .l;.1
  604. .st
  605. 1 .p
  606. .1=.
  607. 2
  608. noelem:
  609.  
  610. .l;easy
  611. .l;.1
  612. .st
  613. 1 .p
  614. .1=.
  615. 2
  616. ifelem:
  617.  
  618. .l;easy
  619. .l;.1
  620. .ne
  621. 1 .t
  622. .2=.
  623. 1
  624. ifeasy:
  625.  
  626. .l;easy
  627. .l;.2
  628. .eq
  629. 1 .t
  630. .2=.
  631. <trans;1 \0>;.even
  632. .1=.
  633. gpar;1
  634. .tq;1
  635. .tx;.2
  636. 1 .tp;.byte 1,0;
  637. .4=.
  638. <.px\0>;.even
  639. .3=.
  640. gpar;1
  641. .tq;1
  642. .tx;.4
  643. 1 .tp;.byte 1,0;
  644. .6=.
  645. <.pn\0>;.even
  646. .5=.
  647. gpar;1
  648. .tq;1
  649. 1 .tx;.6
  650. .10=.
  651. <.t\0>;.even
  652. .7=.
  653. 1 .tx;.10
  654. .12=.
  655. <.p\0>;.even
  656. .11=.
  657. 1 .tx;.12
  658. .13=.
  659. gpar;1
  660. .tp;.byte 2,0;
  661. .tn
  662. .tq;1
  663. 1 .tp;.byte 1,0;
  664. special:
  665.  
  666. .pxs;'=
  667. alt;..70
  668. rname
  669. salt;..60
  670. remote
  671. trule
  672. ..60:
  673. trans;1 .1
  674. goto;..61
  675. ..70:.pxs;'<
  676. alt;..67
  677. literal
  678. trans;1 .3
  679. goto;..62
  680. ..67:.pxs;'*
  681. alt;..66
  682. trans;1 .5
  683. goto;..63
  684. ..66:.pxs;'[
  685. expr
  686. .pxs;'?
  687. alt;..65
  688. trans;1 .7
  689. goto;..64
  690. ..65:trans;1 .11
  691. ..64:
  692. .pxs;']
  693. trans;1 .13
  694. ..63:
  695. ..62:
  696. ..61:
  697. 1 succ
  698. .2=.
  699. <[-\0>;.even
  700. .3=.
  701. <\\<1]\0>;.even
  702. .1=.
  703. .tx;.2
  704. .tp;.byte 1,0;
  705. 1 .tx;.3
  706. rname:
  707.  
  708. name
  709. alt;..72
  710. tabval
  711. pat
  712. npa
  713. alt;done
  714. goto;..71
  715. ..72:.pxs;'$
  716. number
  717. ..71:
  718. 1 trans;1 .1
  719. .2=.
  720. <gpar;\0>;.even
  721. .1=.
  722. .tx;.2
  723. .tp;.byte 2,0;
  724. .tn
  725. 1 .tp;.byte 1,0;
  726. trule:
  727.  
  728. oldtab
  729. ptt
  730. tbody
  731. salt;..73
  732. .pxs;'(
  733. number
  734. salt;..74
  735. tra
  736. ..74:
  737. .pxs;')
  738. tbody
  739. trans;1 .1
  740. ..73:
  741. 1 succ
  742. tra:
  743.  
  744. list
  745. tident
  746. 1 octal
  747. npt
  748. tident:
  749.  
  750. ident
  751. 1 newtab
  752. ptt
  753. npt
  754. .2=.
  755. <1 generate\0>;.even
  756. .1=.
  757. 1 .tx;.2
  758. tbody:
  759.  
  760. .pxs;'{
  761. .pxs;'}
  762. alt;..76
  763. trans;1 .1
  764. goto;..75
  765. ..76:trb
  766. ..75:
  767. 1 succ
  768. .1=.
  769. xbit
  770. 1 .tp;.byte 1,0;
  771. .2=.
  772. .tp;.byte 2,0;
  773. .tn
  774. 1 .tp;.byte 1,0;
  775. trb:
  776.  
  777. telem
  778. .pxs;'}
  779. alt;..100
  780. trans;1 .1
  781. goto;..77
  782. ..100:trb
  783. trans;1 .2
  784. ..77:
  785. 1 succ
  786. .2=.
  787. <.tx\0>;.even
  788. .1=.
  789. .tx;.2
  790. 1 .tp;.byte 1,0;
  791. .4=.
  792. <.tn\0>;.even
  793. .3=.
  794. 1 .tx;.4
  795. .6=.
  796. <.tq;\0>;.even
  797. .5=.
  798. .tx;.6
  799. 1 .tp;.byte 1,0;
  800. telem:
  801.  
  802. .pxs;'<
  803. alt;..110
  804. literal
  805. trans;1 .1
  806. goto;..101
  807. ..110:.pxs;'*
  808. alt;..107
  809. trans;1 .3
  810. goto;..102
  811. ..107:.pxs;'$
  812. alt;..106
  813. number
  814. trans;1 .5
  815. goto;..103
  816. ..106:number
  817. alt;..105
  818. tdot
  819. trans;1 tpt
  820. goto;..104
  821. ..105:name
  822. te1
  823. salt;done
  824. te2
  825. salt;done
  826. ..104:
  827. ..103:
  828. ..102:
  829. ..101:
  830. 1 succ
  831. te1:
  832.  
  833. tabval
  834. dtt
  835. ndt
  836. tdot
  837. 1 trans;1 tpt
  838. .2=.
  839. <.tq;\0>;.even
  840. .1=.
  841. .tx;.2
  842. 1 .tp;.byte 1,0;
  843. te2:
  844.  
  845. tabval
  846. ptt
  847. npt
  848. 1 trans;1 .1
  849. .1=.
  850. 1 .txs;'0
  851. .2=.
  852. .tp;.byte 2,0;
  853. .txs;';
  854. 1 .tp;.byte 1,0;
  855. tdot:
  856.  
  857. .pxs;'.
  858. alt;..112
  859. number
  860. goto;..111
  861. ..112:trans;1 .1
  862. ..111:
  863. .pxs;'(
  864. alt;..114
  865. list
  866. targ
  867. .pxs;')
  868. goto;..113
  869. ..114:null
  870. ..113:
  871. 1 trans;1 .2
  872. targ:
  873.  
  874. name
  875. salt;..115
  876. remote
  877. tbody
  878. ..115:
  879. 1 succ
  880. .1=.
  881. <.tp;.byte \0>;.even
  882. tpt:
  883. .tx;.1
  884. .tp;.byte 2,0;
  885. .txs;',
  886. 1 .tp;.byte 1,0;
  887. .1=.
  888. .txs;';
  889. 1 .tp;.byte 1,0;
  890. literal:
  891.  
  892. shortlit
  893. salt;..116
  894. remote
  895. longlit
  896. trans;1 .1
  897. ..116:
  898. 1 succ
  899. .1=.
  900. <\>\0>;.even
  901. .3=.
  902. <s;'\0>;.even
  903. .2=.
  904. .tx;.3
  905. 1 .tp;.byte 1,0;
  906. shortlit:
  907.  
  908. ignore
  909. none
  910. smark
  911. any
  912. litch
  913. .px;.1
  914. scopy
  915. 1 trans;1 .2
  916. .1=.
  917. <\>\0>;.even
  918. .3=.
  919. <\\\0>;.even
  920. .4=.
  921. <\>\0>;.even
  922. .2=.
  923. .tx;.3
  924. 1 .tx;.4
  925. .5=.
  926. <\>\0>;.even
  927. .7=.
  928. <\\0\0>;.even
  929. .10=.
  930. <\>;.even\0>;.even
  931. .6=.
  932. .txs;'<
  933. .tp;.byte 2,0;
  934. .tp;.byte 1,0;
  935. .tx;.7
  936. 1 .tx;.10
  937. longlit:
  938.  
  939. ignore
  940. none
  941. .px;.1
  942. alt;..120
  943. trans;1 .2
  944. goto;..117
  945. ..120:null
  946. ..117:
  947. litb
  948. .px;.5
  949. 1 trans;1 .6
  950. .1=.
  951. <\\\0>;.even
  952. .3=.
  953. <\\\\\0>;.even
  954. .2=.
  955. .tp;.byte 2,0;
  956. .tx;.3
  957. 1 .tp;.byte 1,0;
  958. litb:
  959.  
  960. smark
  961. string
  962. litch
  963. scopy
  964. .px;.1
  965. alt;done
  966. litb
  967. 1 trans;1 .2
  968. expr:
  969.  
  970. assignment
  971. salt;..121
  972. rv
  973. ..121:
  974. 1 succ
  975. .1=.
  976. .tp;.byte 3,0;
  977. .tn
  978. .tp;.byte 1,0;
  979. .tn
  980. 1 .tp;.byte 2,0;
  981. assignment:
  982.  
  983. lv
  984. assign
  985. expr
  986. 1 trans;1 .1
  987. .1=.
  988. .tp;.byte 3,0;
  989. .tn
  990. .tp;.byte 1,0;
  991. .tn
  992. 1 .tp;.byte 2,0;
  993. .2=.
  994. .tp;.byte 2,0;
  995. .tn
  996. 1 .tp;.byte 1,0;
  997. rv:
  998.  
  999. prime
  1000. rv1:
  1001. bundle
  1002. infix
  1003. alt;..125
  1004. prime
  1005. trans;1 .1
  1006. salt;rv1
  1007. goto;..122
  1008. ..125:rva
  1009. alt;..124
  1010. trans;1 .2
  1011. goto;..123
  1012. ..124:
  1013. ..123:
  1014. ..122:
  1015. 1 succ
  1016. .2=.
  1017. <.t;alt;\0>;.even
  1018. .3=.
  1019. <salt;\0>;.even
  1020. .1=.
  1021. .tx;.2
  1022. .tp;.byte 2,0;
  1023. .tn
  1024. .tp;.byte 4,0;
  1025. .tn
  1026. .tx;.3
  1027. .tp;.byte 1,0;
  1028. .tn
  1029. .tp;.byte 2,0;
  1030. .txs;':
  1031. .tp;.byte 3,0;
  1032. .tn
  1033. .tp;.byte 1,0;
  1034. 1 .txs;':
  1035. rva:
  1036.  
  1037. .pxs;'?
  1038. rv
  1039. .pxs;':
  1040. rv
  1041. fref
  1042. fref
  1043. 1 trans;1 .1
  1044. .1=.
  1045. .tp;.byte 2,0;
  1046. .tn
  1047. 1 .tp;.byte 1,0;
  1048. .2=.
  1049. .tp;.byte 1,0;
  1050. .tn
  1051. 1 .tp;.byte 2,0;
  1052. .3=.
  1053. .tp;.byte 1,0;
  1054. .tn
  1055. 1 .tp;.byte 2,0;
  1056. .5=.
  1057. <.l;\0>;.even
  1058. .4=.
  1059. .tx;.5
  1060. 1 .tp;.byte 1,0;
  1061. prime:
  1062.  
  1063. lv
  1064. alt;..135
  1065. suffix
  1066. alt;done
  1067. trans;1 .1
  1068. goto;..126
  1069. ..135:prefix
  1070. alt;..134
  1071. lv
  1072. trans;1 .2
  1073. goto;..127
  1074. ..134:.pxs;'(
  1075. alt;..133
  1076. expr
  1077. .pxs;')
  1078. goto;..130
  1079. ..133:unary
  1080. alt;..132
  1081. prime
  1082. trans;1 .3
  1083. goto;..131
  1084. ..132:remote
  1085. number
  1086. trans;1 .4
  1087. ..131:
  1088. ..130:
  1089. ..127:
  1090. ..126:
  1091. 1 succ
  1092. .2=.
  1093. <.l;\0>;.even
  1094. .1=.
  1095. .tx;.2
  1096. 1 .tp;.byte 1,0;
  1097. .4=.
  1098. <.rv\0>;.even
  1099. .3=.
  1100. .tp;.byte 1,0;
  1101. .tn
  1102. 1 .tx;.4
  1103. .6=.
  1104. <.f\0>;.even
  1105. .5=.
  1106. .tp;.byte 2,0;
  1107. .tn
  1108. .tp;.byte 1,0;
  1109. .tn
  1110. 1 .tx;.6
  1111. lv:
  1112.  
  1113. rname
  1114. alt;..141
  1115. trans;1 .1
  1116. goto;..136
  1117. ..141:.pxs;'(
  1118. alt;..140
  1119. lv
  1120. .pxs;')
  1121. goto;..137
  1122. ..140:.pxs;'*
  1123. prime
  1124. trans;1 .3
  1125. ..137:
  1126. ..136:
  1127. lv1:
  1128. .pxs;'[
  1129. alt;done
  1130. bundle
  1131. expr
  1132. .pxs;']
  1133. trans;1 .5
  1134. 1 salt;lv1
  1135. .2=.
  1136. <.u\0>;.even
  1137. .1=.
  1138. .tp;.byte 1,0;
  1139. .tn
  1140. 1 .tx;.2
  1141. .4=.
  1142. <.st\0>;.even
  1143. .3=.
  1144. 1 .tx;.4
  1145. assign:
  1146.  
  1147. .pxs;'=
  1148. ignore
  1149. none
  1150. infix
  1151. alt;..143
  1152. trans;1 .1
  1153. goto;..142
  1154. ..143:trans;1 .3
  1155. ..142:
  1156. 1 succ
  1157. .2=.
  1158. 1 .pxs;'+
  1159. .1=.
  1160. .pxs;'+
  1161. 1 not
  1162. .2
  1163. .4=.
  1164. <.a\0>;.even
  1165. .3=.
  1166. 1 .tx;.4
  1167. .6=.
  1168. <.s\0>;.even
  1169. .5=.
  1170. 1 .tx;.6
  1171. .10=.
  1172. <.m\0>;.even
  1173. .7=.
  1174. 1 .tx;.10
  1175. .12=.
  1176. <.q\0>;.even
  1177. .11=.
  1178. 1 .tx;.12
  1179. .14=.
  1180. <.r\0>;.even
  1181. .13=.
  1182. 1 .tx;.14
  1183. .16=.
  1184. <.o\0>;.even
  1185. .15=.
  1186. 1 .tx;.16
  1187. .20=.
  1188. <.x\0>;.even
  1189. .17=.
  1190. 1 .tx;.20
  1191. .22=.
  1192. <.n\0>;.even
  1193. .21=.
  1194. 1 .tx;.22
  1195. .23=.
  1196. <==\0>;.even
  1197. .25=.
  1198. <.eq\0>;.even
  1199. .24=.
  1200. 1 .tx;.25
  1201. .26=.
  1202. <!=\0>;.even
  1203. .30=.
  1204. <.ne\0>;.even
  1205. .27=.
  1206. 1 .tx;.30
  1207. .31=.
  1208. <<=\0>;.even
  1209. .33=.
  1210. <.le\0>;.even
  1211. .32=.
  1212. 1 .tx;.33
  1213. .34=.
  1214. <\>=\0>;.even
  1215. .36=.
  1216. <.ge\0>;.even
  1217. .35=.
  1218. 1 .tx;.36
  1219. .37=.
  1220. <<<\0>;.even
  1221. .41=.
  1222. <.sl\0>;.even
  1223. .40=.
  1224. 1 .tx;.41
  1225. .43=.
  1226. <.lt\0>;.even
  1227. .42=.
  1228. 1 .tx;.43
  1229. .44=.
  1230. <\>\0>;.even
  1231. .45=.
  1232. <\>\0>;.even
  1233. .47=.
  1234. <.sr\0>;.even
  1235. .46=.
  1236. 1 .tx;.47
  1237. .51=.
  1238. <.gt\0>;.even
  1239. .50=.
  1240. 1 .tx;.51
  1241. infix:
  1242.  
  1243. smark
  1244. ignore
  1245. none
  1246. .pxs;'+
  1247. alt;..201
  1248. not
  1249. .1
  1250. trans;1 .3
  1251. goto;..144
  1252. ..201:.pxs;'-
  1253. alt;..200
  1254. trans;1 .5
  1255. goto;..145
  1256. ..200:.pxs;'*
  1257. alt;..177
  1258. trans;1 .7
  1259. goto;..146
  1260. ..177:.pxs;'/
  1261. alt;..176
  1262. trans;1 .11
  1263. goto;..147
  1264. ..176:.pxs;'%
  1265. alt;..175
  1266. trans;1 .13
  1267. goto;..150
  1268. ..175:.pxs;'|
  1269. alt;..174
  1270. trans;1 .15
  1271. goto;..151
  1272. ..174:.pxs;'^
  1273. alt;..173
  1274. trans;1 .17
  1275. goto;..152
  1276. ..173:.pxs;'&
  1277. alt;..172
  1278. trans;1 .21
  1279. goto;..153
  1280. ..172:.px;.23
  1281. alt;..171
  1282. trans;1 .24
  1283. goto;..154
  1284. ..171:.px;.26
  1285. alt;..170
  1286. trans;1 .27
  1287. goto;..155
  1288. ..170:.px;.31
  1289. alt;..167
  1290. trans;1 .32
  1291. goto;..156
  1292. ..167:.px;.34
  1293. alt;..166
  1294. trans;1 .35
  1295. goto;..157
  1296. ..166:.px;.37
  1297. alt;..165
  1298. trans;1 .40
  1299. goto;..160
  1300. ..165:.pxs;'<
  1301. alt;..164
  1302. trans;1 .42
  1303. goto;..161
  1304. ..164:.px;.44
  1305. .px;.45
  1306. alt;..163
  1307. trans;1 .46
  1308. goto;..162
  1309. ..163:trans;1 .50
  1310. ..162:
  1311. ..161:
  1312. ..160:
  1313. ..157:
  1314. ..156:
  1315. ..155:
  1316. ..154:
  1317. ..153:
  1318. ..152:
  1319. ..151:
  1320. ..150:
  1321. ..147:
  1322. ..146:
  1323. ..145:
  1324. ..144:
  1325. 1 succ
  1326. .2=.
  1327. <.lv\0>;.even
  1328. .1=.
  1329. 1 .tx;.2
  1330. .3=.
  1331. <++\0>;.even
  1332. .5=.
  1333. <.ib\0>;.even
  1334. .4=.
  1335. 1 .tx;.5
  1336. .6=.
  1337. <--\0>;.even
  1338. .10=.
  1339. <.db\0>;.even
  1340. .7=.
  1341. 1 .tx;.10
  1342. prefix:
  1343.  
  1344. smark
  1345. ignore
  1346. none
  1347. .pxs;'&
  1348. alt;..205
  1349. trans;1 .1
  1350. goto;..202
  1351. ..205:.px;.3
  1352. alt;..204
  1353. trans;1 .4
  1354. goto;..203
  1355. ..204:.px;.6
  1356. trans;1 .7
  1357. ..203:
  1358. ..202:
  1359. 1 succ
  1360. .1=.
  1361. <++\0>;.even
  1362. .3=.
  1363. <.ia\0>;.even
  1364. .2=.
  1365. 1 .tx;.3
  1366. .4=.
  1367. <--\0>;.even
  1368. .6=.
  1369. <.da\0>;.even
  1370. .5=.
  1371. 1 .tx;.6
  1372. suffix:
  1373.  
  1374. smark
  1375. ignore
  1376. none
  1377. .px;.1
  1378. alt;..207
  1379. trans;1 .2
  1380. goto;..206
  1381. ..207:.px;.4
  1382. trans;1 .5
  1383. ..206:
  1384. 1 succ
  1385. .2=.
  1386. <.nt\0>;.even
  1387. .1=.
  1388. 1 .tx;.2
  1389. .4=.
  1390. <.ng\0>;.even
  1391. .3=.
  1392. 1 .tx;.4
  1393. .6=.
  1394. <.cm\0>;.even
  1395. .5=.
  1396. 1 .tx;.6
  1397. unary:
  1398.  
  1399. .pxs;'!
  1400. alt;..213
  1401. trans;1 .1
  1402. goto;..210
  1403. ..213:.pxs;'-
  1404. alt;..212
  1405. trans;1 .3
  1406. goto;..211
  1407. ..212:.pxs;'~
  1408. trans;1 .5
  1409. ..211:
  1410. ..210:
  1411. 1 succ
  1412. charcl:
  1413.  
  1414. .pxs;'!
  1415. alt;..215
  1416. ccla
  1417. cclb
  1418. goto;..214
  1419. ..215:ccla
  1420. ..214:
  1421. 1 octal
  1422. classmask
  1423. .1=.
  1424. <<<\0>;.even
  1425. .2=.
  1426. 1
  1427. .4=.
  1428. <<<\0>;.even
  1429. ccla:
  1430.  
  1431. .px;.1
  1432. .l;classmask
  1433. .l;.2
  1434. .l;nclass
  1435. .ia
  1436. .sl
  1437. .st
  1438. .p
  1439. .l;classmask
  1440. .t
  1441. alt;cherr
  1442. ccl1:
  1443. cclc
  1444. .px;.4
  1445. 1 salt;ccl1
  1446. .1=.
  1447. <\>\0>;.even
  1448. cclc:
  1449.  
  1450. ignore
  1451. none
  1452. ccl3:
  1453. .px;.1
  1454. salt;ccl4
  1455. ccle
  1456. 1 salt;ccl3
  1457. .1=.
  1458. <\>\0>;.even
  1459. .3=.
  1460. <\>\0>;.even
  1461. .2=.
  1462. 1 .px;.3
  1463. ccl4:
  1464.  
  1465. .px;.1
  1466. salt;..216
  1467. cclx
  1468. fail
  1469. ..216:
  1470. not
  1471. .2
  1472. salt;..217
  1473. ccle
  1474. ..217:
  1475. 1 succ
  1476. .1=.
  1477. 2
  1478. ccle:
  1479.  
  1480. char
  1481. n
  1482. .l;.1
  1483. .l;n
  1484. .m
  1485. .l;classes
  1486. .lv
  1487. .a
  1488. .rv
  1489. .l;classmask
  1490. .o
  1491. .u
  1492. 1 .p
  1493. cclb:
  1494.  
  1495. zeron
  1496. ccl5:
  1497. .l;classes
  1498. .lv
  1499. .l;n
  1500. .a
  1501. .rv
  1502. .l;classmask
  1503. .x
  1504. .u
  1505. .p
  1506. testn
  1507. 1 salt;ccl5
  1508. cclx:
  1509.  
  1510. .l;nclass
  1511. .da
  1512. .p
  1513. zeron
  1514. ccl6:
  1515. .l;classes
  1516. .lv
  1517. .l;n
  1518. .a
  1519. .rv
  1520. .l;classmask
  1521. .cm
  1522. .n
  1523. .u
  1524. .p
  1525. testn
  1526. 1 salt;ccl6
  1527. .3=.
  1528. <too many char classes\0>;.even
  1529. .2=.
  1530. 1 .tx;.3
  1531. .1=.
  1532. 1 trans;1 .2
  1533. cherr:
  1534.  
  1535. 1 diag
  1536. .1
  1537. .1=.
  1538. 0
  1539. zeron:
  1540.  
  1541. .l;n
  1542. .l;.1
  1543. .st
  1544. 1 .p
  1545. .1=.
  1546. 2
  1547. .2=.
  1548. 400
  1549. testn:
  1550.  
  1551. .l;n
  1552. .l;.1
  1553. .a
  1554. .u
  1555. .l;.2
  1556. .lt
  1557. 1 .t
  1558. .1=.
  1559. 0
  1560. .4=.
  1561. <.globl classtab\0>;.even
  1562. .5=.
  1563. <classtab:\0>;.even
  1564. .3=.
  1565. .tn
  1566. .tx;.4
  1567. .tn
  1568. .tx;.5
  1569. 1 .tn
  1570. .2=.
  1571. 1 trans;1 .3
  1572. .7=.
  1573. .tp;.byte 1,0;
  1574. 1 .tn
  1575. .6=.
  1576. octal
  1577. w
  1578. 1 trans;1 .7
  1579. putcharcl:
  1580.  
  1581. zeron
  1582. .l;classes
  1583. .l;.1
  1584. .st
  1585. .p
  1586. parse
  1587. .2
  1588. ptc1:
  1589. .l;w
  1590. .l;classes
  1591. .lv
  1592. .l;n
  1593. .a
  1594. .rv
  1595. .st
  1596. .p
  1597. parse
  1598. .6
  1599. bundle
  1600. testn
  1601. 1 salt;ptc1
  1602. classmask:
  1603. 0
  1604. nclass:
  1605. 0
  1606. classes:
  1607. cl1:
  1608. 0
  1609. 0
  1610. 0
  1611. 0
  1612. 0
  1613. 0
  1614. 0
  1615. 0
  1616. 0
  1617. 0
  1618. 0
  1619. 0
  1620. 0
  1621. 0
  1622. 0
  1623. 0
  1624. cl2:
  1625. 0
  1626. 0
  1627. 0
  1628. 0
  1629. 0
  1630. 0
  1631. 0
  1632. 0
  1633. 0
  1634. 0
  1635. 0
  1636. 0
  1637. 0
  1638. 0
  1639. 0
  1640. 0
  1641. cl3:
  1642. 0
  1643. 0
  1644. 0
  1645. 0
  1646. 0
  1647. 0
  1648. 0
  1649. 0
  1650. 0
  1651. 0
  1652. 0
  1653. 0
  1654. 0
  1655. 0
  1656. 0
  1657. 0
  1658. cl4:
  1659. 0
  1660. 0
  1661. 0
  1662. 0
  1663. 0
  1664. 0
  1665. 0
  1666. 0
  1667. 0
  1668. 0
  1669. 0
  1670. 0
  1671. 0
  1672. 0
  1673. 0
  1674. 0
  1675. cl5:
  1676. 0
  1677. 0
  1678. 0
  1679. 0
  1680. 0
  1681. 0
  1682. 0
  1683. 0
  1684. 0
  1685. 0
  1686. 0
  1687. 0
  1688. 0
  1689. 0
  1690. 0
  1691. 0
  1692. cl6:
  1693. 0
  1694. 0
  1695. 0
  1696. 0
  1697. 0
  1698. 0
  1699. 0
  1700. 0
  1701. 0
  1702. 0
  1703. 0
  1704. 0
  1705. 0
  1706. 0
  1707. 0
  1708. 0
  1709. cl7:
  1710. 0
  1711. 0
  1712. 0
  1713. 0
  1714. 0
  1715. 0
  1716. 0
  1717. 0
  1718. 0
  1719. 0
  1720. 0
  1721. 0
  1722. 0
  1723. 0
  1724. 0
  1725. 0
  1726. cl8:
  1727. 0
  1728. 0
  1729. 0
  1730. 0
  1731. 0
  1732. 0
  1733. 0
  1734. 0
  1735. 0
  1736. 0
  1737. 0
  1738. 0
  1739. 0
  1740. 0
  1741. 0
  1742. 0
  1743. done:
  1744.  
  1745. 1 succ
  1746. .1=.
  1747. .txs;'.
  1748. 1 .tp;.byte 1,0;
  1749. create:
  1750.  
  1751. .l;csym
  1752. .ia
  1753. .p
  1754. getcsym:
  1755. octal
  1756. csym
  1757. 1 trans;1 .1
  1758. .2=.
  1759. <..\0>;.even
  1760. .1=.
  1761. .tx;.2
  1762. 1 .tp;.byte 1,0;
  1763. fref:
  1764.  
  1765. .l;fsym
  1766. .ia
  1767. .p
  1768. getfref:
  1769. octal
  1770. fsym
  1771. 1 trans;1 .1
  1772. .1=.
  1773. 1
  1774. not:
  1775.  
  1776. params
  1777. .1
  1778. [-1\<1]
  1779. alt;done
  1780. 1 fail
  1781. .1=.
  1782. 1
  1783. .2=.
  1784. .tp;.byte 2,0;
  1785. .tn
  1786. 1 .tp;.byte 1,0;
  1787. list:
  1788.  
  1789. params
  1790. .1
  1791. [-1\<1]
  1792. list1:
  1793. bundle
  1794. .pxs;',
  1795. alt;done
  1796. [-1\<1]
  1797. trans;1 .2
  1798. 1 salt;list1
  1799. .1=.
  1800. 1
  1801. remote:
  1802.  
  1803. params
  1804. .1
  1805. create
  1806. 1 parse
  1807. rem1
  1808. [-1\<1]
  1809. .1=.
  1810. 1
  1811. .3=.
  1812. <=.\0>;.even
  1813. .2=.
  1814. .tp;.byte 2,0;
  1815. .tx;.3
  1816. .tn
  1817. .tp;.byte 1,0;
  1818. 1 .tn
  1819. rem1:
  1820.  
  1821. params
  1822. .1
  1823. getcsym
  1824. [-1\<1]
  1825. 1 trans;1 .2
  1826. number:
  1827.  
  1828. smark
  1829. ignore
  1830. none
  1831. any
  1832. digit
  1833. string
  1834. digit
  1835. 1 scopy
  1836. name:
  1837.  
  1838. ident
  1839. 1 scopy
  1840. ident:
  1841.  
  1842. smark
  1843. ignore
  1844. none
  1845. any
  1846. letter
  1847. 1 string
  1848. alpha
  1849. .1=.
  1850. 1
  1851. .3=.
  1852. 0
  1853. oldtab:
  1854.  
  1855. params
  1856. .1
  1857. .l;[-1\<1]
  1858. .t
  1859. alt;done
  1860. discard
  1861. [-1\<1]
  1862. .l;[-1\<1]
  1863. .l;.3
  1864. .st
  1865. 1 .p
  1866. .1=.
  1867. 2
  1868. .3=.
  1869. 0
  1870. newtab:
  1871.  
  1872. params
  1873. .1
  1874. .l;[-2\<1]
  1875. .t
  1876. salt;..220
  1877. table
  1878. [-2\<1]
  1879. .l;[-1\<1]
  1880. .l;.3
  1881. .st
  1882. .p
  1883. ..220:
  1884. enter
  1885. [-2\<1]
  1886. i
  1887. .l;[-2\<1]
  1888. .l;i
  1889. .f
  1890. .l;[-1\<1]
  1891. .ia
  1892. .st
  1893. 1 .p
  1894. .1=.
  1895. 2
  1896. tabval:
  1897.  
  1898. params
  1899. .1
  1900. .l;[-2\<1]
  1901. .t
  1902. find
  1903. [-2\<1]
  1904. i
  1905. .l;i
  1906. .l;[-1\<1]
  1907. .l;[-2\<1]
  1908. .l;i
  1909. .f
  1910. .s
  1911. .st
  1912. .p
  1913. 1 octal
  1914. i
  1915. null:
  1916.  
  1917. 1 trans;1 nil
  1918. .1=.
  1919. <1 \0>;.even
  1920. xbit:
  1921. 1 .tx;.1
  1922. q1:
  1923. 1 .tq;1
  1924. q2:
  1925. 1 .tq;2
  1926. nil:
  1927. 1 generate
  1928. blanks:
  1929. 10
  1930. digit:
  1931. 20
  1932. letter:
  1933. 40
  1934. alpha:
  1935. 100
  1936. litch:
  1937. 200
  1938. none:
  1939. 400
  1940. csym:
  1941. 0
  1942. fsym:
  1943. 0
  1944. easy:
  1945. 0
  1946. w:
  1947. 0
  1948. n:
  1949. 0
  1950. dtt:
  1951. 0
  1952. ndt:
  1953. 0
  1954. sndt:
  1955. 0
  1956. pat:
  1957. 0
  1958. npa:
  1959. 0
  1960. ptt:
  1961. 0
  1962. npt:
  1963. 0
  1964. i:
  1965. 0
  1966.  
  1967. .globl classtab
  1968. classtab:
  1969. 0
  1970. 207
  1971. 207
  1972. 207
  1973. 207
  1974. 207
  1975. 207
  1976. 207
  1977. 207
  1978. 217
  1979. 217
  1980. 207
  1981. 207
  1982. 207
  1983. 207
  1984. 207
  1985. 207
  1986. 207
  1987. 207
  1988. 207
  1989. 207
  1990. 207
  1991. 207
  1992. 207
  1993. 207
  1994. 207
  1995. 207
  1996. 207
  1997. 207
  1998. 207
  1999. 207
  2000. 207
  2001. 217
  2002. 207
  2003. 207
  2004. 207
  2005. 207
  2006. 207
  2007. 207
  2008. 207
  2009. 207
  2010. 207
  2011. 203
  2012. 207
  2013. 207
  2014. 207
  2015. 207
  2016. 207
  2017. 327
  2018. 327
  2019. 327
  2020. 327
  2021. 327
  2022. 327
  2023. 327
  2024. 327
  2025. 327
  2026. 327
  2027. 207
  2028. 205
  2029. 207
  2030. 207
  2031. 7
  2032. 207
  2033. 207
  2034. 347
  2035. 347
  2036. 347
  2037. 347
  2038. 347
  2039. 347
  2040. 347
  2041. 347
  2042. 347
  2043. 347
  2044. 347
  2045. 347
  2046. 347
  2047. 347
  2048. 347
  2049. 347
  2050. 347
  2051. 347
  2052. 347
  2053. 347
  2054. 347
  2055. 347
  2056. 347
  2057. 347
  2058. 347
  2059. 347
  2060. 207
  2061. 7
  2062. 207
  2063. 207
  2064. 207
  2065. 207
  2066. 347
  2067. 347
  2068. 347
  2069. 347
  2070. 347
  2071. 347
  2072. 347
  2073. 347
  2074. 347
  2075. 347
  2076. 347
  2077. 347
  2078. 347
  2079. 347
  2080. 347
  2081. 347
  2082. 347
  2083. 347
  2084. 347
  2085. 347
  2086. 347
  2087. 347
  2088. 347
  2089. 347
  2090. 347
  2091. 347
  2092. 207
  2093. 207
  2094. 207
  2095. 207
  2096. 207
  2097. .pn:1 .pxs;12
  2098. .tn:1 .txs;12
  2099.