home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / euphoria / shroud.ex < prev    next >
Text File  |  1994-03-10  |  8KB  |  610 lines

  1.     ----------------------------
  2.     --  Source Code Shrouder  --
  3.     ----------------------------
  4.  
  5. -- usage:  ex shroud filename.ex > newname.ex
  6.  
  7. -- 1. Pulls together all include files into a single file.
  8. -- 2. Eliminates all comments and superfluous white space.
  9. -- 3. Replaces all identifiers by short meaningless names.
  10. -- 4. Replaces all keywords and builtin names by single-byte codes.
  11. -- 5. Replaces all strings by numeric ASCII codes
  12.  
  13. -- Your program should be free of any syntax errors before running
  14. -- the shrouder on it.
  15.  
  16. -- The result is an unreadable, unmaintainable file that runs identically
  17. -- to your original source files (which you will keep for yourself). You can 
  18. -- distribute:
  19. --        1. your shrouded file
  20. --      2. dos4gw.exe
  21. --      3. the PD Edition of ex.exe 
  22. -- without "giving away" your source. Shrouded source has certain advantages 
  23. -- over .exe files: 
  24. --    - you can add readable comments 
  25. --    - you can document certain changes that can be made to reconfigure 
  26. --      your program
  27. --    - your code could serve as a library of routines that others could 
  28. --      build on (you should add some readable routine names as an interface)
  29. --    - the same shrouded file could be distributed to run on more than 
  30. --      one machine architecture (as long as Euphoria exists for that 
  31. --      machine). 
  32. --    - shrouded source is extremely compact. With one copy of dos4gw.exe 
  33. --      and ex.exe on the search path, you can support many shrouded
  34. --      programs.
  35.  
  36. -- We ran the shrouder on itself to get ...    
  37.  
  38. ùtype_check
  39. îB=1,C=0
  40. îD=B 
  41. îE=B 
  42. îF=-1
  43. îG=1,H=2
  44. îI=128,
  45. J=170
  46. ÆîK={
  47. {
  48. 105,102},{
  49. 101,110,100},{
  50. 116,104,101,110},{
  51. 112,114,111,99,101,100,117,114,101},{
  52. 101,108,115,101},{
  53. 102,111,114},{
  54. 114,101,116,117,114,110},
  55. {
  56. 100,111},{
  57. 101,108,115,105,102},{
  58. 119,104,105,108,101},{
  59. 116,121,112,101},{
  60. 99,111,110,115,116,97,110,116},{
  61. 116,111},{
  62. 97,110,100},{
  63. 111,114},
  64. {
  65. 101,120,105,116},{
  66. 102,117,110,99,116,105,111,110},{
  67. 103,108,111,98,97,108},{
  68. 98,121},{
  69. 110,111,116},{
  70. 105,110,99,108,117,100,101},
  71. {
  72. 119,105,116,104},{
  73. 119,105,116,104,111,117,116},{
  74. 112,114,111,102,105,108,101}}
  75. ÆîL={
  76. {
  77. 108,101,110,103,116,104},{
  78. 112,117,116,115},{
  79. 105,110,116,101,103,101,114},{
  80. 115,101,113,117,101,110,99,101},{
  81. 112,111,115,105,116,105,111,110},{
  82. 111,98,106,101,99,116},
  83. {
  84. 97,112,112,101,110,100},{
  85. 112,114,101,112,101,110,100},{
  86. 112,114,105,110,116},{
  87. 112,114,105,110,116,102},
  88. {
  89. 99,108,101,97,114,95,115,99,114,101,101,110},{
  90. 102,108,111,111,114},{
  91. 103,101,116,99},{
  92. 103,101,116,115},{
  93. 103,101,116,95,107,101,121},
  94. {
  95. 114,97,110,100},{
  96. 114,101,112,101,97,116},{
  97. 97,116,111,109},{
  98. 99,111,109,112,97,114,101},{
  99. 102,105,110,100},{
  100. 109,97,116,99,104},
  101. {
  102. 116,105,109,101},{
  103. 99,111,109,109,97,110,100,95,108,105,110,101},{
  104. 111,112,101,110},{
  105. 99,108,111,115,101},{
  106. 116,114,97,99,101},{
  107. 103,101,116,101,110,118},
  108. {
  109. 115,113,114,116},{
  110. 115,105,110},{
  111. 99,111,115},{
  112. 116,97,110},{
  113. 108,111,103},{
  114. 115,121,115,116,101,109},{
  115. 100,97,116,101},{
  116. 114,101,109,97,105,110,100,101,114},
  117. {
  118. 112,111,119,101,114},{
  119. 109,97,99,104,105,110,101,95,102,117,110,99},{
  120. 109,97,99,104,105,110,101,95,112,114,111,99},{
  121. 97,98,111,114,116},{
  122. 112,101,101,107},{
  123. 112,111,107,101},
  124. {
  125. 99,97,108,108}}
  126. îM=1,
  127. N=2,
  128. O=3,
  129. P=4,
  130. Q=5,
  131. R=6,
  132. S=7,
  133. T=8
  134. îU={
  135. 43,45,42,47,91,93,40,41,123,125,44,46,61,38,39,34,60,62}
  136. îV=-999
  137. îW=1,X=2,Y=3
  138. ïZ(¡a)
  139. ç╛(a,{Y,X,W})
  140. éï
  141. ïa(¡b)
  142. çb>=-1 
  143. éï
  144. ïb(¡c)
  145. çc>=FÄc<=255Åc=V
  146. éï
  147. ïc(¡d)
  148. çd>=0
  149. éï
  150. ïd(¡e)
  151. çe=BÅe=C
  152. éï
  153. «e
  154. äf()
  155. e=╗(N,255)
  156. e[97..122]=O
  157. e[65..90]=O
  158. e[95]=O
  159. e[48..57]=M
  160. e[35]=T
  161. e[91]=P
  162. e[93]=P
  163. e[40]=P
  164. e[41]=P
  165. e[123]=P
  166. e[125]=P
  167. e[39]=Q
  168. e[34]=Q
  169. e[32]=S
  170. e[9]=S
  171. e[10]=S
  172. e[45]=R
  173. éä
  174. b g
  175. g=V
  176. æh(a i)
  177. b j
  178. üg=Vâ
  179. ç╖(i)
  180. à
  181. j=g
  182. g=V
  183. çj
  184. éü
  185. éæ
  186. äi(b j)
  187. g=j
  188. éä
  189. a j,k
  190. b l
  191. l=V
  192. äm(b n)
  193. ü╛(n,{
  194. 32,9,10})â
  195. ül=10â
  196. ç
  197. éü
  198. ün !=10â
  199. ül>IÅ╛(l,U)â
  200. ç
  201. ë╛(l,{
  202. 32,9})â
  203. ç
  204. éü
  205. éü
  206. ën>IÅ╛(n,U)â
  207. ü╛(l,{
  208. 32,9})â
  209. l=V
  210. éü
  211. éü
  212. ül !=Vâ
  213. ¼(j,l)
  214. éü
  215. l=n 
  216. éä
  217. än(«o)
  218. ül !=Vâ
  219. ¼(j,l)
  220. l=V 
  221. éü
  222. ¼(j,o)
  223. éä
  224. «o 
  225. o={}
  226. äp(«q)
  227. o=o&q
  228. éä
  229. c q
  230. q=1
  231. ær()
  232. c s,t
  233. «u
  234. ü½(o)>0â
  235. u=o[1]
  236. o=o[2..½(o)]
  237. çu
  238. éü
  239. u={}
  240. t=q
  241. èBê
  242. s=═(t,52)
  243. t=╢(t/52)
  244. üs<26â
  245. u=65+s&u
  246. à
  247. u=97+s-26&u 
  248. éü
  249. üt=0â
  250. É
  251. éü
  252. éè
  253. q=q+1
  254. ü╛(u,K)â
  255. çr()
  256. ë╛(u,L)â
  257. çr()
  258. à
  259. çu
  260. éü
  261. éæ
  262. Z s
  263. s=X
  264. d t
  265. t=C
  266. ¡u,v
  267. u=1
  268. v=1
  269. «w,x,y
  270. w={{},{}}
  271. x={{{},{}}}
  272. y={{},{}}
  273. æz(«BA)
  274. «BB
  275. c BC
  276. BC=0
  277. BC=╛(BA,y[G])
  278. üBCâ
  279. çy[H][BC]
  280. éü
  281. BC=╛(BA,w[G])
  282. üBCâ
  283. çw[H][BC]
  284. éü
  285. BC=╛(BA,x[u][G])
  286. üBCâ
  287. çx[u][H][BC]
  288. éü
  289. BB=r()
  290. üs=Wâ
  291. y[G]=▒(y[G],BA)
  292. y[H]=▒(y[H],BB)
  293. à
  294. üötâ
  295. s=X
  296. éü
  297. üs=Yâ
  298. w[G]=▒(w[G],BA)
  299. w[H]=▒(w[H],BB)
  300. à
  301. x[u][G]=▒(
  302. x[u][G],BA)
  303. x[u][H]=▒(
  304. x[u][H],BB)
  305. éü
  306. éü
  307. çBB
  308. éæ
  309. «BA
  310. BA={}
  311. «BB 
  312. æBC()
  313. b BD
  314. «BE
  315. a BF
  316. BA=▒(BA,{k,u})
  317. v=v+1
  318. u=v
  319. x=▒(x,{{},{}})
  320. BD=V
  321. BE={}
  322. èBD !=10ÄBD !=Fê
  323. BD=h(k)
  324. üe[BD]!=Sâ
  325. BE=BE&BD
  326. éü
  327. éè
  328. BF=┬(BB&BE,{
  329. 114})
  330. üBF=-1â
  331. BF=┬(┼({
  332. 69,85,68,73,82})&{
  333. 92,73,78,67,76,85,68,69,92}&BE,{
  334. 114})
  335. üBF=-1â
  336. ¼(2,{
  337. 67,111,117,108,100,110,39,116,32,111,112,101,110,32,105,110,99,108,117,100,
  338. 101,32,102,105,108,101,58,32}&BE&10)
  339. ç-1
  340. éü
  341. éü
  342. çBF
  343. éæ
  344. æBD()
  345. a BE
  346. ├(k)
  347. ü½(BA)=0â
  348. ç-1
  349. éü
  350. BE=BA[½(BA)][1]
  351. u=BA[½(BA)][2]
  352. BA=BA[1..½(BA)-1]
  353. çBE
  354. éæ
  355. æBF(╝BE)
  356. «BG
  357. BG={}
  358. è1ê
  359. BG=48+═(BE,10)&BG
  360. BE=╢(BE/10)
  361. üBE=0â
  362. çBG
  363. éü
  364. éè
  365. éæ
  366. äBE(b BG)
  367. üBG=110â
  368. n(BF(10))
  369. ëBG=116â
  370. n(BF(9))
  371. ëBG=114â
  372. n(BF(13))
  373. à
  374. n(BF(BG))
  375. éü
  376. éä
  377. îBG=1,BH=0
  378. æBI(d BJ)
  379. c BK,BL,BM 
  380. b BN,BO
  381. «BP,BQ
  382. èBê
  383. BO=h(k)
  384. üBO=Fâ
  385. çF
  386. éü
  387. BK=e[BO]
  388. üBK=Sâ
  389. m(BO)
  390. ëBK=Oâ
  391. BP={BO}
  392. èBê
  393. BO=h(k)
  394. BK=e[BO]
  395. üBK=Oâ
  396. BP=BP&BO
  397. ëBK=Mâ
  398. BP=BP&BO
  399. à
  400. i(BO)
  401. É
  402. éü
  403. éè
  404. BL=╛(BP,K)
  405. üBLâ
  406. ü╜(BP,{
  407. 105,110,99,108,117,100,101})!=0â
  408. üDÄBJâ
  409. m(I+BL)
  410. à
  411. n(BP)
  412. éü
  413. éü
  414. à
  415. BL=╛(BP,L)
  416. üBLâ
  417. üDÄBJâ
  418. m(J+BL)
  419. à
  420. n(BP)
  421. éü
  422. à
  423. üBJâ
  424. n(z(BP))
  425. à
  426. n(BP)
  427. éü
  428. éü
  429. éü
  430. çBP
  431. ëBK=NÅBK=Pâ
  432. m(BO)
  433. çBO    
  434. ëBK=Mâ
  435. èe[BO]=MÅ╛(BO,{
  436. 101,69})ê
  437. m(BO)
  438. BO=h(k)
  439. éè
  440. i(BO)
  441. ëBK=Tâ
  442. m(BO)
  443. BO=h(k)
  444. èe[BO]=MÅ╛(BO,{
  445. 65,66,67,68,69,70})ê
  446. m(BO)
  447. BO=h(k)
  448. éè
  449. i(BO)
  450. ëBK=Râ
  451. BO=h(k)
  452. ü(BO=45)â
  453. BQ=╕(k)
  454. m(10)
  455. à
  456. m(45)
  457. i(BO)
  458. éü
  459. à
  460. BQ={}
  461. èBê
  462. BN=h(k)
  463. üBN=10ÅBN=Fâ
  464. ¼(2,{
  465. 109,105,115,115,105,110,103,32,99,108,111,115,105,110,103,32,113,117,111,116,
  466. 101,10})
  467. É
  468. éü
  469. üBN=BOâ
  470. É
  471. éü
  472. BQ=BQ&BN
  473. üBN=92â
  474. BN=h(k)
  475. BQ=BQ&BN
  476. éü
  477. éè
  478. üEâ
  479. üBO=39â
  480. m(32)
  481. üBQ[1]=92â
  482. BE(BQ[2])
  483. à
  484. n(BF(BQ[1]))
  485. éü
  486. à
  487. m(123)
  488. BM=1
  489. èBM<=½(BQ)ê
  490. ü═(BM,20)=1â
  491. m(10)
  492. éü
  493. BO=BQ[BM]
  494. üBO=92â
  495. BM=BM+1
  496. BO=BQ[BM]
  497. BE(BO)
  498. à
  499. n(BF(BO))
  500. éü
  501. üBM<½(BQ)â
  502. m(44)
  503. éü
  504. BM=BM+1
  505. éè
  506. m(125)
  507. éü
  508. à
  509. m(BO)
  510. n(BQ)
  511. m(BN)
  512. éü
  513. éü
  514. éè
  515. éæ
  516. äBJ()
  517. ░BK
  518. BK=V
  519. èBê
  520. BK=BI(BG)
  521. ü╜(BK,F)=0â
  522. k=BD()
  523. ük=-1â
  524. m(V)
  525. ç
  526. éü
  527. ë╜(BK,{
  528. 101,110,100})=0â
  529. BK=BI(BG)
  530. ü╛(BK,{{
  531. 112,114,111,99,101,100,117,114,101},{
  532. 102,117,110,99,116,105,111,110},{
  533. 116,121,112,101}})â
  534. s=X
  535. p(y[H])
  536. y={{},{}}
  537. éü
  538. ë╜(BK,{
  539. 103,108,111,98,97,108})=0â
  540. s=Y
  541. t=B
  542. è╜(BK,{
  543. 103,108,111,98,97,108})=0ê
  544. BK=BI(BG)
  545. BK=BI(BG)
  546. BK=BI(BG)
  547. ü╜(BK,40)=0â
  548. s=W
  549. éü
  550. éè
  551. ë╛(BK,{{
  552. 112,114,111,99,101,100,117,114,101},{
  553. 102,117,110,99,116,105,111,110},{
  554. 116,121,112,101}})â
  555. BK=BI(BG)
  556. s=W
  557. ë╜(BK,{
  558. 105,110,99,108,117,100,101})=0â
  559. k=BC()
  560. ük=-1â
  561. ç
  562. éü
  563. ë╛(BK,{{
  564. 119,105,116,104},{
  565. 119,105,116,104,111,117,116}})â
  566. BK=BI(BH)
  567. ë╜(BK,44)=0â
  568. t=B
  569. à
  570. t=C
  571. éü
  572. éè
  573. éä
  574. äBL()
  575. «BM
  576. c BN
  577. BM=┴()
  578. ü½(BM)!=3â
  579. ¼(2,{
  580. 117,115,97,103,101,58,32,101,120,32,115,104,114,111,117,100,32,102,105,108,
  581. 101,110,97,109,101,46,101,120,32,62,32,110,101,119,110,97,109,101,46,101,
  582. 120,10})
  583. ç
  584. éü
  585. k=┬(BM[3],{
  586. 114})
  587. ük=-1â
  588. k=┬(BM[3]&{
  589. 46,101,120},{
  590. 114})
  591. ük=-1â
  592. ┤(2,{
  593. 99,111,117,108,100,110,39,116,32,111,112,101,110,32,37,115,10},{BM[3]})
  594. ç
  595. éü
  596. éü
  597. BN=½(BM[3])
  598. èBM[3][BN]!=92ê
  599. BN=BN-1
  600. üBN=0â
  601. É
  602. éü
  603. éè
  604. BB=BM[3][1..BN]
  605. f()
  606. j=1 
  607. BJ()
  608. éä
  609. BL()
  610.