home *** CD-ROM | disk | FTP | other *** search
/ Chip 1995 March / CHIP3.mdf / demo / pctcp / program / disk4 / script.st_ / script.st
Encoding:
Text File  |  1994-06-15  |  7.6 KB  |  260 lines

  1. :(mm,#!,(:(o,(
  2. TRAC Error:  <1><2><3>))))
  3. :(mm,##,(
  4. :(o,(Dialer Script Interpreter v):(r,S.Version)(  --  Started ):(xcf)(
  5. )):(ri,S.dispatch,<1>)
  6. :(o,(
  7. End Dialer Script Interpreter v):(r,S.Version)(  --  Finished ):(xcf)(
  8. ))
  9. ))
  10.  
  11.  
  12. :(s,S.)
  13. :(s,S.Version,3.0)
  14.  
  15. :(mm,S.get_langs,(            <* run this once, then delete it  *>
  16.     :(d,S.available_langs)            <* not needed after call  *>
  17.     :(s,S.langs.trac.yes)            <* always true          *>
  18.     :(ri,S.exclude_languages:(mli,(,),S.langs.))
  19.     :(d,S.get_langs)            <* no longer needed        *>
  20. ))
  21. :(mm,S.exclude_languages,(        <* 16 LANGUAGES MAX (upgrade below) *>
  22.                     <* run this once, then delete it    *>
  23.     :(ei,,<1>,                <* end recursion by deletion*>
  24.         (:(d,S.exclude_languages)),    <* don't need this any more *>
  25.         (
  26.          :(ri,S.exclude_languages2,<1>,:(wdial_getlangi))
  27.          :(ri,S.exclude_languages,
  28.             <2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>)
  29.         )
  30.     )
  31.     :(d,S.exclude_languages2)    <* we will not need this again        *>
  32. ))
  33. :(mm,S.exclude_languages2,(        <* 16 LANGUAGES MAX (upgrade below) *>
  34.     :(ei,,<2>,,            <* end of recursion at end of list  *>
  35.         (            <* otherwise...                *>
  36.             :(s,S.tmp,<2>)        <* put it in a text form    *>
  37.             :(ttci,S.tmp,<1>,    <* does it contain lang?    *>
  38.                         <* yes: copy, don't recurse *>
  39.                 (:(s,S.langs.<1>yes,<2>)),
  40.                         <* no:  recurse            *>
  41.                 (:(ri,S.exclude_languages2,<1>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>))
  42.             )
  43.         )
  44.     )
  45. ))
  46.  
  47. :(mm,S.dispatch,(
  48.     :(mlf)                <* turn off symbols in :(ml)    *>
  49.     :(pc,(
  50.         :(s,S.infile)            <* start from a clean slate    *>
  51.     :(ri,S.get_langs)        <* Get available languages    *>
  52.                     <* Read in the script        *>
  53.  
  54.     :(fo,<1>,(:(ri,S.error,<1>,,cant_open_script_file):(px)))
  55.     :(pc,(:(s,S.infile,:(r,S.infile):(fr,,10000,(:(px))))),-1)
  56.     :(fc)
  57.     :(ei,0,:(tl,S.infile),(:(ri,S.error,<1>,,empty_file):(px)))
  58.                     <* Analyze the script and    *>
  59.     :(ri,S.which)
  60.                     <* Decide which to use        *>
  61. :(mhi,DEBUG,(:(xto)))
  62.     :(ei,,:(r,S.language),
  63.      (:(ri,S.error,<1>,,cant_decide):(px))
  64.     )
  65.     :(tti,S.language,(,),
  66.       (:(ri,S.error,<1>,,cant_decide):(px))
  67.     )
  68.     :(mhi,S.langs.:(r,S.language).,
  69.         (:(mhi,S.langs.:(r,S.language).yes,
  70.             (:(ri,S.langs.:(r,S.language).start,S.infile)),
  71.             (:(ri,S.error,<1>,:(r,S.language),cant_find_language))
  72.         )),
  73.         (:(ri,S.error,<1>,:(r,S.language),bad_langauge))
  74.     )
  75.     ),1)
  76. :(mhi,DEBUG,(:(o,:(r,S.language)( for <1>:  )):(ri,check)))
  77. ))
  78.  
  79. :(s,S.langs.)
  80. :(s,S.langs.trac.)
  81. :(s,S.langs.slang.)
  82. :(s,S.langs.comscrpt.)
  83.  
  84. :(o,,(
  85. :(s,S.langs.nd.)
  86. :(s,S.langs.uucp.)
  87. ))
  88.  
  89. :(s,S.langs.slang.inuse,0)
  90. :(s,S.langs.slang.clues,({,},receive,replace,has,include,output,debug(,)on))
  91. :(s,S.langs.slang.weights,(
  92.     (:(ri,S.pri,1)),
  93.     (:(ri,S.pri,1)),
  94.     (:(ri,S.pri,1)),
  95.     (:(ri,S.pri,1)),
  96.     (:(ri,S.pri,1)),
  97.     (:(ri,S.pri,5)),
  98.     (:(ri,S.pri,2)),
  99.     (:(s,S.langs.slang.DEBUG))
  100.     ))
  101. :(mm,S.langs.slang.start,(
  102. <*    :(mhi,slang.,,(:(mf,,c:\script\slang.mff)))*>
  103.     :(mhi,slang.,,(:(mf,,:(r,S.langs.slang.yes))))
  104.     :(s,S.langs.slang.inuse,:(aa,:(r,S.langs.slang.inuse),1))
  105.     :(ri,slang.i.interp,<1>)
  106.     :(s,S.langs.slang.inuse,:(as,:(r,S.langs.slang.inuse),1))
  107.     :(ei,:(r,S.langs.slang.inuse),0,(:(d,slang.))) <* not in use, delete *>
  108. ))
  109.  
  110. :(s,S.langs.comscrpt.inuse,0)
  111. :(s,S.langs.comscrpt.clues,(;,signal,\r,\n,\t,msec,pause))
  112. :(s,S.langs.comscrpt.weights,(
  113.     (:(ri,S.pri,1)),
  114.     (:(ri,S.pri,8)),
  115.     (:(ri,S.pri,2)),
  116.     (:(ri,S.pri,2)),
  117.     (:(ri,S.pri,2)),
  118.     (:(ri,S.pri,3)),
  119.     (:(ri,S.pri,1))
  120.     ))
  121. :(mm,S.langs.comscrpt.start,(
  122.     :(mhi,comscrpt.,,(:(mf,,:(r,S.langs.comscrpt.yes))))
  123.     :(s,S.langs.comscrpt.inuse,:(aa,:(r,S.langs.comscrpt.inuse),1))
  124.     :(ri,comscrpt.i.interp,<1>)
  125.     :(s,S.langs.comscrpt.inuse,:(as,:(r,S.langs.comscrpt.inuse),1))
  126.     :(ei,:(r,S.langs.comscrpt.inuse),0,(:(d,comscrpt.))) <* not in use, delete *>
  127. ))
  128.  
  129. :(s,S.langs.trac.clues,(::(bxo,28),(mm,),(s,),(r,),(ri,)))
  130. :(s,S.langs.trac.weights,(
  131.     (:(ri,S.pri,1)),
  132.     (:(ri,S.pri,1)),
  133.     (:(ri,S.pri,1)),
  134.     (:(ri,S.pri,1)),
  135.     (:(ri,S.pri,1))
  136.     ))
  137. :(mm,S.langs.trac.start,(
  138.     :(ri,<1>)
  139. ))
  140.  
  141. :(mm,S.weigh,(
  142.     :(s,S.heaviest.)
  143.     :(s,S.heaviest.weight,(-1))
  144.     :(s,S.dirlist,:(ml,(,),<1>)(,))
  145.     :(trf,S.dirlist,(,))
  146.     :(pc,(
  147.         :(s,S.curlang,:(ts,S.dirlist,,(,),(:(px))))
  148.         :(agi,:(r,<1>:(r,S.curlang)weight),:(r,S.heaviest.weight),
  149.             (:(s,S.heaviest.lang,:(r,S.curlang))
  150.              :(s,S.heaviest.weight,:(r,<1>:(r,S.curlang)weight))),
  151.             (:(s,S.heaviest.lang,
  152.                 :(r,S.heaviest.lang)(,):(r,S.curlang))),)
  153.         ),(-1),)
  154.     :(tra,S.heaviest.lang,(.))
  155.     :(r,S.heaviest.lang)
  156.     :(d,S.dirlist,S.curlang)        <* clean up            *>
  157. ))
  158.  
  159. :(mm,S.which,(
  160.     :(tps,S.infile,0)                    <* go to start    *>
  161.     :(s,S.tmp,:(ts,S.infile,,(
  162. )))
  163.     :(tps,S.infile,0)                    <* go to start    *>
  164.     :(tra,S.tmp,(    ),( ))                <* tab to space *>
  165.     :(tra,S.tmp,*,( ))                    <* star to space*>
  166.     :(tra,S.tmp,langauge,language)
  167.     :(s,S.tmp,:(tsi,S.tmp,language=,( )))
  168.     :(agi,:(tl,S.tmp),0,
  169.     (:(s,S.language,:(r,S.tmp))),            <* user spec.   *>
  170.     (:(s,S.consider,:(ml,;,S.langs.))        <* get list    *>
  171.      :(trf,S.consider,;)
  172.      :(pc,(
  173.         :(ri,S.which1,:(ts,S.consider,,;,(:(px))))
  174.      ),-1)
  175.      :(d,S.consider)                <* clean up    *>
  176.      :(s,S.language,:(ri,S.weigh,S.langs.))        <* decide    *>
  177.     )
  178.     )
  179.  
  180. ))
  181.  
  182. :(mm,S.which1,(
  183.     :(s,S.langs.<1>weight,0)        <* initialize probability weight  *>
  184.     :(s,S.priority,0)            <* initialize sum variable to zero*>
  185.     :(pc,(
  186.     :(s,S.test,:(tn,S.infile,512,(:(px))))
  187.     :(ms,S.test,
  188.         :(ri,S.langs.<1>clues))    <* ... use clues provided      *>
  189.     :(tra,S.test,:,&)        <* make text neutral          *>
  190.     :(tra,S.test,:(bxo,28),&)    <* make text neutral          *>
  191.     :(tra,S.test,:(bxo,29),&)    <* make text neutral          *>
  192.     :(mw,S.test)
  193.     :(od,,:(ri,S.test,:(ri,S.langs.<1>weights)))
  194.     ),-1)
  195.     :(s,S.langs.<1>weight,:(r,S.priority))
  196.     :(d,S.priority,S.test);        <* clean up              *>
  197.     :(tps,S.infile,0)            <* reset to beginning          *>
  198. ))
  199.  
  200. :(mm,S.pri,(:(s,S.priority,:(aa,:(r,S.priority),<1>))))
  201. :(mm,go,(
  202. :(ri,S.dispatch,sinclude.lng)
  203. :(ri,S.dispatch,samples\comnew.scr)
  204. :(ri,S.dispatch,samples\simple.scr)
  205. :(ri,S.dispatch,samples\tough.scr)
  206. :(ri,S.dispatch,samples\dialup.scr)
  207. ))
  208.  
  209.  
  210. :(mm,S.error,(
  211. :(o,(
  212.  
  213. ***** Error Executing Script File "<1>" *****
  214.  
  215. )):(ri,S.<3>,<1>,<2>):(o,(
  216.  
  217. **********************************************************************
  218.  
  219. ))))
  220.  
  221. :(mm,S.langlist,(
  222.     :(s,S.tmp,:(ml,(, ),S.langs.))    <* make a language list        *>
  223.     :(tra,S.tmp,(, ),(", "))    <* wrap with quotes        *>
  224.     :(tps,S.tmp,3)            <* point over leading seperator    *>
  225.     :(tpe,S.tmp)            <* read to end of form        *>
  226.     :(d,S.tmp)            <* delete form            *> 
  227. ))
  228.  
  229. :(mm,S.empty_file,(
  230. :(o,(The script file "<1>" is empty, or cannot be read.
  231. Aborting the script in "<1>".))
  232. ))
  233.  
  234. :(mm,S.cant_decide,(
  235. :(o,(Dialer can not identify which language the script in "<1>"
  236. is written in, and therefore can't execute it.
  237. Including the line:  "language=<name>" where name is one of:
  238.      ):(ri,S.langlist)("
  239. as the first line in the script file "<1>" (as part of a comment)
  240. will solve this problem.))
  241. ))
  242.  
  243. :(mm,S.cant_open_script_file,(
  244. :(o,(Dialer cannot open the script file "<1>".  Please ensure
  245. "<1>" exists in the directory path specified, and has the
  246. file attributes "read-write".))
  247. ))
  248.  
  249. :(mm,S.cant_find_language,(
  250. :(o,(Dialer did not find "<2>.lng", and therefore can't execute "<1>".
  251. Please ensure "<2>.lng" is in the same directory as "wdial.exe".))
  252. ))
  253.  
  254. :(mm,S.bad_langauge,(
  255. :(o,(Dialer does not support "<2>" and therefore can't execute "<1>".
  256. The "language=<2>" statement in the first line of "<1>" is
  257. incorrect.  Instead of "<2>" please use one of these supported
  258. langauges:  ):(ri,S.langlist)("))
  259. ))
  260.