home *** CD-ROM | disk | FTP | other *** search
/ Computerworld Gratis 30 Hours of Connection / Image(2).iso / infovia / win31 / script.st_ / script.st
Text File  |  1995-08-10  |  8KB  |  251 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,,:(r,S.langs.slang.yes))))
  103.     :(s,S.langs.slang.inuse,:(aa,:(r,S.langs.slang.inuse),1))
  104.     :(ri,slang.i.interp,<1>)
  105.     :(s,S.langs.slang.inuse,:(as,:(r,S.langs.slang.inuse),1))
  106.     :(ei,:(r,S.langs.slang.inuse),0,(:(d,slang.))) <* not in use, delete *>
  107. ))
  108.  
  109. :(s,S.langs.comscrpt.inuse,0)
  110. :(s,S.langs.comscrpt.clues,(;,signal,\r,\n,\t,msec,pause))
  111. :(s,S.langs.comscrpt.weights,(
  112.     (:(ri,S.pri,1)),
  113.     (:(ri,S.pri,8)),
  114.     (:(ri,S.pri,2)),
  115.     (:(ri,S.pri,2)),
  116.     (:(ri,S.pri,2)),
  117.     (:(ri,S.pri,3)),
  118.     (:(ri,S.pri,1))
  119.     ))
  120. :(mm,S.langs.comscrpt.start,(
  121.     :(mhi,comscrpt.,,(:(mf,,:(r,S.langs.comscrpt.yes))))
  122.     :(s,S.langs.comscrpt.inuse,:(aa,:(r,S.langs.comscrpt.inuse),1))
  123.     :(ri,comscrpt.i.interp,<1>)
  124.     :(s,S.langs.comscrpt.inuse,:(as,:(r,S.langs.comscrpt.inuse),1))
  125.     :(ei,:(r,S.langs.comscrpt.inuse),0,(:(d,comscrpt.))) <* not in use, delete *>
  126. ))
  127.  
  128. :(s,S.langs.trac.clues,(::(bxo,28),(mm,),(s,),(r,),(ri,)))
  129. :(s,S.langs.trac.weights,(
  130.     (:(ri,S.pri,1)),
  131.     (:(ri,S.pri,1)),
  132.     (:(ri,S.pri,1)),
  133.     (:(ri,S.pri,1)),
  134.     (:(ri,S.pri,1))
  135.     ))
  136. :(mm,S.langs.trac.start,(
  137.     :(ri,<1>)
  138. ))
  139.  
  140. :(mm,S.weigh,(
  141.     :(s,S.heaviest.)
  142.     :(s,S.heaviest.weight,(-1))
  143.     :(s,S.dirlist,:(ml,(,),<1>)(,))
  144.     :(trf,S.dirlist,(,))
  145.     :(pc,(
  146.         :(s,S.curlang,:(ts,S.dirlist,,(,),(:(px))))
  147.         :(agi,:(r,<1>:(r,S.curlang)weight),:(r,S.heaviest.weight),
  148.             (:(s,S.heaviest.lang,:(r,S.curlang))
  149.              :(s,S.heaviest.weight,:(r,<1>:(r,S.curlang)weight))),
  150.             (:(s,S.heaviest.lang,
  151.                 :(r,S.heaviest.lang)(,):(r,S.curlang))),)
  152.         ),(-1),)
  153.     :(tra,S.heaviest.lang,(.))
  154.     :(r,S.heaviest.lang)
  155.     :(d,S.dirlist,S.curlang)        <* clean up            *>
  156. ))
  157.  
  158. :(mm,S.which,(
  159.     :(tps,S.infile,0)                    <* go to start    *>
  160.     :(s,S.tmp,:(ts,S.infile,,(
  161. )))
  162.     :(tps,S.infile,0)                    <* go to start    *>
  163.     :(tra,S.tmp,(    ),( ))                <* tab to space *>
  164.     :(tra,S.tmp,*,( ))                    <* star to space*>
  165.     :(tra,S.tmp,langauge,language)
  166.     :(s,S.tmp,:(tsi,S.tmp,language=,( )))
  167.     :(agi,:(tl,S.tmp),0,
  168.     (:(s,S.language,:(r,S.tmp))),            <* user spec.   *>
  169.     (:(s,S.consider,:(ml,;,S.langs.))        <* get list    *>
  170.      :(trf,S.consider,;)
  171.      :(pc,(
  172.         :(ri,S.which1,:(ts,S.consider,,;,(:(px))))
  173.      ),-1)
  174.      :(d,S.consider)                <* clean up    *>
  175.      :(s,S.language,:(ri,S.weigh,S.langs.))        <* decide    *>
  176.     )
  177.     )
  178.  
  179. ))
  180.  
  181. :(mm,S.which1,(
  182.     :(s,S.langs.<1>weight,0)        <* initialize probability weight  *>
  183.     :(s,S.priority,0)            <* initialize sum variable to zero*>
  184.     :(pc,(
  185.     :(s,S.test,:(tn,S.infile,512,(:(px))))
  186.     :(ms,S.test,
  187.         :(ri,S.langs.<1>clues))    <* ... use clues provided      *>
  188.     :(tra,S.test,:,&)        <* make text neutral          *>
  189.     :(tra,S.test,:(bxo,28),&)    <* make text neutral          *>
  190.     :(tra,S.test,:(bxo,29),&)    <* make text neutral          *>
  191.     :(mw,S.test)
  192.     :(od,,:(ri,S.test,:(ri,S.langs.<1>weights)))
  193.     ),-1)
  194.     :(s,S.langs.<1>weight,:(r,S.priority))
  195.     :(d,S.priority,S.test);        <* clean up              *>
  196.     :(tps,S.infile,0)            <* reset to beginning          *>
  197. ))
  198.  
  199. :(mm,S.pri,(:(s,S.priority,:(aa,:(r,S.priority),<1>))))
  200.  
  201. :(mm,S.error,(
  202. :(o,(
  203.  
  204. ***** Error Executing Script File `<1>' *****
  205.  
  206. )):(ri,S.<3>,<1>,<2>):(o,(
  207.  
  208. **********************************************************************
  209.  
  210. ))))
  211.  
  212. :(mm,S.langlist,(
  213.     :(s,S.tmp,:(ml,(, ),S.langs.))    <* make a language list        *>
  214.     :(tra,S.tmp,(, ),(", "))    <* wrap with quotes        *>
  215.     :(tps,S.tmp,3)            <* point over leading seperator    *>
  216.     :(tpe,S.tmp)            <* read to end of form        *>
  217.     :(d,S.tmp)            <* delete form            *> 
  218. ))
  219.  
  220. :(mm,S.empty_file,(
  221. :(o,(The script file `<1>' is empty, or cannot be read.
  222. Aborting the script in `<1>'.))
  223. ))
  224.  
  225. :(mm,S.cant_decide,(
  226. :(o,(Dialer can not identify which language the script in `<1>'
  227. is written in, and therefore can't execute it.
  228. Including the line:  `language=<name>' where name is one of:
  229.      ):(ri,S.langlist)("
  230. as the first line in the script file `<1>' (as part of a comment)
  231. will solve this problem.))
  232. ))
  233.  
  234. :(mm,S.cant_open_script_file,(
  235. :(o,(Dialer cannot open the script file `<1>'.  Please ensure
  236. `<1>' exists in the directory path specified, and has the
  237. file attributes `read-write'.))
  238. ))
  239.  
  240. :(mm,S.cant_find_language,(
  241. :(o,(Dialer did not find `<2>.lng', and therefore can't execute `<1>'.
  242. Please ensure `<2>.lng' is in the same directory as `wdial.exe'.))
  243. ))
  244.  
  245. :(mm,S.bad_langauge,(
  246. :(o,(Dialer does not support `<2>' and therefore can't execute `<1>'.
  247. The `language=<2>' statement in the first line of `<1>' is
  248. incorrect.  Instead of `<2>' please use one of these supported
  249. languages:  ):(ri,S.langlist)("))
  250. ))
  251.