home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / wp_dtp / xdme1820.lha / XDME / Macros / BN / m-edrc < prev    next >
Text File  |  1993-01-27  |  10KB  |  246 lines

  1. # all flags are FALSE on start; in s:.edrc #255 is set to TRUE
  2. #if !255 (source s:.edrc)
  3.  
  4. if $_m2patch (errormode m2 readerrs))
  5.  
  6. map sac-, (last left if !c=59 (right (;)) last -return)
  7. map sac-m (split down split down c-tab)
  8.  
  9. #setmacro getname 0 (escimm (set name `))
  10. #setmacro gettype 0 (escimm (set type `))
  11. set getname (escimm (set name `))
  12. set gettype (escimm (set type `))
  13. set blockbeginner (BEGIN IF WHILE FOR WITH ELSE VAR ELSIF REPEAT CONST TYPE LOOP PROCEDURE CASE CLOSE)
  14. set blockender    (END ELSE ELSIF UNTIL BEGIN VAR CONST TYPE PROCEDURE CLOSE)
  15. set stdimport ((FROM SYSTEM IMPORT ADR,ADDRESS,TAG;) sac-m (IMPORT))
  16.  
  17. ##map   -return   (split down pushdot up firstnb while r (if top break up firstnb) if ca ( eval (\$currentword) ) set _crc \$colno popdot first while x<\$_crc (( )))
  18.  
  19. setmacro m2stdt   3 (freeline (\$arg1 \$arg2)  spdw (END; (* \$arg1 *)) equalizeline up col +\$arg3 )
  20. setmacro m2if     0 (m2stdt IF    (() THEN)     4 )
  21. setmacro m2case   0 (m2stdt CASE  ( OF)         5 )
  22. setmacro m2while  0 (m2stdt WHILE (() DO)       7 )
  23. setmacro m2with   0 (m2stdt WITH  ( DO)         5 )
  24. setmacro m2for    0 (m2stdt FOR   ( :=  TO  DO) 4 )
  25. setmacro m2loop   0 (m2stdt LOOP  ()            5 cr )
  26. #setmacro m2if    0 (freeline (IF () THEN)      spdw (END; (* IF *))    equalizeline up col +4 )
  27. #setmacro m2case  0 (freeline (CASE  OF)        spdw (END; (* CASE *))  equalizeline up col +5 )
  28. #setmacro m2while 0 (freeline (WHILE () DO)     spdw (END; (* WHILE *)) equalizeline up col +7 )
  29. #setmacro m2with  0 (freeline (WITH  DO)        spdw (END; (* WITH *))  equalizeline up col +5 )
  30. #setmacro m2for   0 (freeline (FOR  :=  TO  DO) spdw (END; (* FOR *))   equalizeline up col +4 )
  31. setmacro m2elif   0 (freeline (ELSIF () THEN) adjustline rundzu next)
  32. setmacro m2else   0 (freeline (ELSE) adjustline )
  33. setmacro m2repeat 0 (freeline (REPEAT) spdw (UNTIL ();) equalizeline col +7)
  34. setmacro m2record 0 ((RECORD) spdw cr (END; (* RECORD  *)) firstnb up tab)
  35. setmacro m2proc   1 (freeline (PROCEDURE \$arg1 (  );)        -return (VAR) spdw equalizeline (BEGIN) spdw equalizeline (END \$arg1;) spdw cr goto -5 last col -3)
  36. setmacro m2func   2 (m2proc \$arg1 last bs (: \$arg2;) wleft col -4)
  37. setmacro m2mod0   1 (top first (MODULE \$arg1;) sac-m bottom  (END \$arg1.) spdw top first )
  38. setmacro m2defmod 1 (m2mod0 \$arg1 (DEFINITION ) down spdw first)
  39. setmacro m2mod    1 (m2mod0 \$arg1 last sac-m $stdimport sac-m bottom goto -2 last spdw spdw first (BEGIN) spdw spdw first (CLOSE) spdw goto 6 col 5)
  40. setmacro m2impmod 1 (m2mod \$arg1 top first (IMPLEMENTATION ) goto +5 first tab)
  41.  
  42.  
  43.  
  44.  
  45.  
  46. # Modula-2 support
  47. menuoff
  48. if $_m2patch (menuadd Errors (Next  Error      F1)    (  f1))
  49. if $_m2patch (menuadd Errors (Previous Error s-F1)    (s-f1))
  50. if $_m2patch (menuadd Errors (Current Error    F2)    (  f2))
  51. if $_m2patch (menuadd Errors (First Error    s-F2)    (s-f2))
  52. if $_m2patch (menuadd Errors (ReadErrors       F3)    (  f3))
  53. if $_m2patch (menuadd Errors (Re-read File   s-F3)    (s-f3))
  54. if $_m2patch (menuadd Errors (---------------)        (null))
  55. menuadd Errors (Modula Errors)          (rx ('trace results; x=$filename ; parse var x a"."rest ; interpret "address COMMAND ""m2:m2error "||a||""""'))
  56. menuadd Errors (Modula Compile)         (rx1 m2compile \$filename firsterr)
  57. menuadd Errors (Modula Linke)           (top first find DULE scanf (%*s %s) rx1 m2linke \$scanf )
  58. menuadd Errors (--------------- )       (null)
  59. menuadd Errors (OHM-Files)              (rx ("call O_FIL()"))
  60. menuadd Errors (OHM-Keys)               (rx ("call O_KEY()"))
  61. menuadd Errors (OHM-Qualifier)          (Misc-Scanf rx ("call O_SHW(M2Amiga,\$scanf)"))
  62.  
  63. menuadd Declare (ShortInt)              ((SHORTINT;) -return)
  64. menuadd Declare (Integer)               ((INTEGER;)  -return)
  65. menuadd Declare (LongInt)               ((LONGINT;)  -return)
  66. menuadd Declare (ShortCard)             ((SHORTCARD;)-return)
  67. menuadd Declare (Cardinal)              ((CARDINAL;) -return)
  68. menuadd Declare (LongCard)              ((LONGCARD;) -return)
  69. menuadd Declare (Char)                  ((CHAR;)     -return)
  70. menuadd Declare (Boolean)               ((BOOLEAN;)  -return)
  71. menuadd Declare (FastFloat)             ((FFS;)      -return)
  72. menuadd Declare (Real)                  ((REAL;)     -return)
  73. menuadd Declare (LongReal)              ((LONGREAL;) -return)
  74. menuadd Declare (Pointer)               ((POINTER TO ) $gettype (\$type) sac-,)
  75. menuadd Declare (Array)                 ((ARRAY [] OF ) $gettype (\$type) sac-, eckzu prev)
  76. menuadd Declare (--------------- )      (null)
  77. menuadd Declare (Module        sa-m)    (sa-m)
  78. menuadd Declare (Defin.Module  sa-d)    (sa-d)
  79. menuadd Declare (Impl.Module   sa-i)    (sa-i)
  80. menuadd Declare (Procedure      a-P)    ( a-p)
  81. menuadd Declare (Function      sa-P)    (sa-p)
  82. menuadd Declare (Record-Type)           ($getname (\$name = RECORD) spdw cr -tab (END; (* RECORD \$name *)) firstnb up tab)
  83. menuadd Declare (Array-Type)            ($getname (\$name = ) Declare-Array )
  84. menuadd Declare (Pointer-Type)          ($getname (\$name = ) Declare-Pointer )
  85. menuadd Declare (Array-Param)           ($getname $gettype (\$name : ARRAY OF \$type ) )
  86. menuadd Declare (---------------)       (null)
  87.  
  88. menuadd States (Case-Statement  a-c)    ( a-c)
  89. menuadd States (Case-Label)             ( $getname (\$name:) tab (|) left)
  90. menuadd States (If-Statement    a-i)    ( a-i)
  91. menuadd States (Else-Part       a-e)    ( a-e)
  92. menuadd States (ElsIf-Part     sa-e)    (sa-e)
  93. menuadd States (Loop-Loop       a-l)    ( a-l)
  94. menuadd States (For-Loop        a-f)    ( a-f $getname (\$name) right col +3 $getname (\$name) last wleft left getname (\$name) last cr tab)
  95. menuadd States (With-Construct sa-w)    (sa-w $getname (\$name) firstnb down tab)
  96. menuadd States (While-Loop      a-w)    ( a-w $getname (\$name) firstnb down tab)
  97. menuadd States (Repeat-Loop     a-r)    ( a-r $getname (\$name) firstnb up tab)
  98. menuadd States (--------------)         (null)
  99. menuadd States (End)                    ((END; (*  *)) col -3)
  100. menuadd States (referred to)            ((\^.))
  101. menuadd States (<line-end>)             (sac-,)
  102.  
  103. menuon
  104.  
  105. if $_m2patch (map    f1       ( nexterr))
  106. if $_m2patch (map    f1       ( nexterr))
  107. if $_m2patch (map  s-f1       ( preverr))
  108. if $_m2patch (map    f2       ( currenterr))
  109. if $_m2patch (map  s-f2       ( firsterr))
  110. if $_m2patch (map    f3       ( readerrs))
  111. if $_m2patch (map  s-f3       ( newfile \\\$filename firsterr))
  112.  
  113. #Search-path for dme.refs
  114. addpath M2:
  115. addpath autodoc:
  116.  
  117. map sa-left  (findstr (PROCEDURE ) prev)
  118. map sa-right (findstr (PROCEDURE ) next)
  119.  
  120. map  a-9 ((()) left)
  121. map  a-0 (((  );) col -3)
  122. map  s-nk* (((*  *)) col -3)
  123.  
  124. map  a-a ((AND ))
  125. map sa-a ((ADR ))
  126. map  A-a ((ARRAY [] OF ) col -5)
  127. map sA-a ((ADDRESS; ))
  128.  
  129. map  a-b ((BEGIN) cr -tab)
  130. map sa-b ((BY ))
  131. map  A-b ((BOOLEAN; ))
  132.  
  133. map  a-c (m2case)
  134. map sa-c ((CONST) cr -tab)
  135. map  A-c ((CHAR; ))
  136. map sA-c ((CARDINAL; ))
  137.  
  138. map  a-d ((DIV ))
  139. map sa-d ($getname m2defmod \$name)
  140.  
  141. map  a-e (m2else)
  142. map  A-e ((EXIT; (* LOOP *)))
  143. map sa-e (m2elif)
  144.  
  145. map  a-f (m2for)
  146. map sa-f (freeline (FROM  IMPORT ;) col -9)
  147. map  A-f ((FALSE))
  148.  
  149. map  a-h ((HALT;))
  150.  
  151. map  a-i (m2if)
  152. map sa-i ($getname m2impmod \$name)
  153. map  A-i ((INTEGER; ))
  154. #map sA-i ((ASSEMBLE ( END);) col -6)
  155.  
  156. map  a-k (firstnb `(* ' last right `*)')
  157. map sa-k (first findstr (*) next left del del del last prev del del bs firstnb)
  158. map  A-k ((CARDINAL; ))
  159.  
  160. map  a-l (m2loop)
  161. map  A-l ((LONGINT; ))
  162. map sA-l ((LONGCARD; ))
  163.  
  164. map  a-m ((MOD ))
  165. map sa-m ($getname m2mod \$name)
  166.  
  167. map  a-n ((NOT ))
  168. map  A-n ((NIL ))
  169. map sa-n ($getname)
  170. map sA-n ($gettype)
  171.  
  172. map  a-o ((OF ))
  173. map sa-o ((OR ))
  174.  
  175. map a-p  ($getname m2proc \$name)
  176. map sa-p ($getname $gettype m2func \$name \$type)
  177. map  A-p ((POINTER TO  ;) left left)
  178.  
  179. map  a-r (m2repeat)
  180. map sa-r ((RETURN ) if r ((();) col -2))
  181. map  A-r (m2record)
  182. map sA-r ((REAL;))
  183.  
  184. map  A-s ((SET OF ;) left)
  185. map  a-s ((SETREG ();) col -2)
  186. map sa-s ((SHIFT ();) col -2)
  187.  
  188. map  a-t (freeline (TYPE) cr )
  189. map  A-t ((TRUE))
  190.  
  191. map  a-v (freeline (VAR) cr )
  192. map sa-v ((VAR ))
  193.  
  194. map  a-w (m2while)
  195. map sa-w (m2with)
  196.  
  197. map   help (( := ;) left)
  198. #map a-help ((:= ;) left)
  199. map s-help (( := ))
  200.  
  201. map  a-z ((Format ("", TAG(tagfield,));) col -3)
  202. map sa-z ((WriteCard (,);) col -3)
  203. map  A-z ((ReadString ();) col -2)
  204. map sA-z ((ReadCard ();) col -2)
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213. #setmacro checkblockers   1 (firstnb if ca (rxs (if find('\$blockbeginner','\$currentword') ~= 0 then 'add $arg1 \$tabstop')))
  214. #setmacro checkunblockers 1 (firstnb if ca (rxs (if find('\$blockender','\$currentword') ~= 0 then 'sub $arg1 \$tabstop')))
  215. #setmacro adjustline      0 (quiet (getlineno _crl prevline firstnb getcolno _crc checkblockers _crc goto \\\$_crl) firstnb checkunblockers _crc eval (while x<\\\$_crc space while x>\\\$_crc bs))
  216. #            __that part calls the right indention also for the currentline__ :-) only the last three commands are neccessary for return
  217. #           set _crx 0 while !r (right inc _crx)
  218. #map -return (getcolno _crx last sub _crx \$colno neg _crx adjustline last col -\$_crx split down adjustline)
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225. ##
  226. ##  old garbage
  227. ##
  228. #($getname top first (DEFINITION MODULE \$name;) sac-m bottom  (END \$name.) top down first)
  229. #(freeline (CASE  OF) cr (END; (* CASE *)) equalizeline up last col -3)
  230. #(freeline (FOR  :=  TO  DO) spdw (END; (* FOR *)) equalizeline up last col -11)
  231. #(freeline (ELSE) adjustline )
  232. #(freeline (ELSIF () THEN) adjustline rundzu next)
  233. #(freeline (IF () THEN) spdw (END; (* IF *)) equalizeline rundzu prev)
  234. #(sa-m top first (IMPLEMENTATION ) goto +5 first tab)
  235. #(top first $getname (MODULE \$name;) sac-m $stdimport sac-m bottom last sac-m first (BEGIN) sac-m first (CLOSE) sac-m first (END \$name.) cr goto 6 col 5)
  236. #(freeline (LOOP) spdw (END; (* LOOP *)) equalizeline up last)
  237. #((RECORD) sac-m (END; (* RECORD  *)) firstnb up tab)
  238. #(freeline (REPEAT) spdw (UNTIL ();) equalizeline col +7)
  239. #((REPEAT) -return (UNTIL ();) col -2 $getname ((\$name)) up last -return tab)
  240. #($getname (\$name = ) A-r down last col -3 (\$name) firstnb up tab)
  241. #(freeline (WHILE () DO) spdw (END; (* WHILE *)) equalizeline up col +7 )
  242. #(freeline (WITH  DO)    spdw (END; (* WITH *))  equalizeline up col +5 )
  243. #($getname freeline (PROCEDURE \$name (  );) -return (VAR) spdw equalizeline (BEGIN) spdw equalizeline  (END \$name;) spdw cr goto -5 last col -3)
  244. #($getname $gettype freeline (PROCEDURE \$name (  ): \$type) -return (VAR) spdw equalizeline (BEGIN) spdw equalizeline (END \$name;) spdw cr goto -5 last wleft col -4)
  245.  
  246.