home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 2002 January / STC_CD_01_2002.iso / APP / CLIX372.TOS / Clix / Clix_m.ext < prev    next >
Encoding:
Text File  |  1998-10-30  |  5.1 KB  |  253 lines

  1. #***********************************************************************
  2. # Modula-2-Sourcen:
  3. EXTENSION ".M", ".D", ".I", ".MOD", ".DEF", ".IMP" = {
  4.  
  5.   COMMENT {DarkCyan, Light} = "(*", "*)";
  6.   REGION {} = '(', ')';
  7.   REGION {} = '[', ']';
  8.   REGION {} = '{', '}';
  9.   REGION {} = '"', '"';
  10.   REGION {} = "'", "'";
  11.  
  12.  
  13.   KEYS {DarkBlue, Light} =
  14.         CONST, TYPE, VAR, RECORD, ARRAY, PROCEDURE, BEGIN, END, IF, THEN, ELSE,
  15.         ELSIF, WHILE, WITH, CASE, REPEAT, UNTIL, LOOP, FOR;
  16.  
  17.   # Weil es wichtig ist und man damit versteckte Rücksprünge besser sieht:
  18.   KEYS {DarkRed, Bold} =
  19.      RETURN, EXIT,
  20.      BREAK, CONTINUE,
  21.      "bkpt",
  22.      illegal;
  23.  
  24.   # Typen in Grün
  25.   KEYS {DarkGreen, Bold} =
  26.      BOOLEAN, SHORTINT, LONGINT, INTEGER, SHORTCARD, LONGCARD, CARDINAL,
  27.      ADDRESS, BYTE, REAL, LONGREAL, SHORTREAL, POINTER, BITSET, LONGSET,
  28.      CHARSET;
  29.  
  30.   # Konstanten in
  31.   KEYS {DarkYellow} =
  32.     TRUE, FALSE, NIL;
  33.  
  34.   KEYS {DarkMagenta, Bold} =
  35.       SYSTEM, System;
  36.  
  37.   SHORTCUT "adr" = "SYSTEM.ADR(\c)";
  38.   SHORTCUT "sa" = "SYSTEM.ADDRESS";
  39.  
  40. # und eine grö₧ere Menge Shortcuts
  41. SHORTCUT 'com' = {\
  42. (*-----------------------------------------------------------------------
  43.  *
  44.  * \c
  45.  *
  46.  *-----------------------------------------------------------------------*)
  47. };
  48.  
  49.   SHORTCUT "fo" = "FOR \c := TO DO\nEND;\n";
  50.  
  51.   SHORTCUT "ie" = {\
  52. IF \c THEN
  53.   ELSE
  54.   END; (* IF ELSE *)
  55. };
  56.  
  57.   SHORTCUT 'rf' = {RETURN FALSE;};
  58.  
  59.   SHORTCUT 'rcs' = {\
  60. (****************************************************************************
  61.  *
  62.  *
  63.  * $Source$
  64.  *
  65.  * $Revision$
  66.  *
  67.  * $Author$
  68.  *
  69.  * $Date$
  70.  *
  71.  * $State$
  72.  *
  73.  *****************************************************************************
  74.  * History:
  75.  *
  76.  * $Log$
  77.  *
  78.  *
  79.  ****************************************************************************)
  80. };
  81.  
  82.  
  83. SHORTCUT 'opts' = {\
  84. (* IMPLEMENTATION FÜR  >>> Hänisch-Modula-2 <<< *)
  85. (*                                              *)
  86. (* Durchgeführt von Steffen Engel               *)
  87. (*                                              *)
  88. (*$S-   Stack-Checks                            *)
  89. (*$I-   keine Variablen-Initialisierung         *)
  90. (*$V-   keine arithmetischen Kontrollen         *)
  91. (*$T-   kein Bereichstest                       *)
  92. (*$Y-   keine Laufzeittests auf RETURN und CASE *)
  93. (*                                              *)
  94. (*----------------------------------------------*)
  95. };
  96.  
  97. SHORTCUT 'import' = {\
  98. (* Systemabhängiges *)
  99. opts\e
  100.  
  101.  
  102. IMPORT SYSTEM, System;
  103.  
  104. (* Standard HM2-Libs *)
  105.  
  106. (* Magic-Lib *)
  107. FROM MagicSys   IMPORT
  108.                 (* Const *) Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5,
  109.                             Bit6, Bit7, Bit8, Bit9, Bit10, Bit11, Bit12,
  110.                             Bit13, Bit14, Bit15,
  111.                 (* Type  *) LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  112.                             sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  113.  
  114. (* Magic-Tools *)
  115.  
  116. (* Eigene Libs *)
  117.  
  118. (* Projektlibs *)
  119.  
  120. };
  121.  
  122.  
  123. SHORTCUT 'dm'  = {\
  124. DEFINITION MODULE \c;
  125. rcs\e
  126. import\e
  127.  
  128. END.
  129.  
  130. };
  131.  
  132.  
  133. SHORTCUT 'im'  = {\
  134. IMPLEMENTATION MODULE \c;
  135. rcs\e
  136.  
  137. import\e
  138.  
  139. BEGIN
  140. END.
  141.  
  142. };
  143.  
  144. SHORTCUT 'mo'  = {\
  145. MODULE \c;
  146. rcs\e
  147.  
  148. import\e
  149.  
  150. BEGIN
  151. END.
  152. };
  153.  
  154. SHORTCUT 'ar'  = "ARRAY[\c..] OF ;";
  155.  
  156. SHORTCUT 'fo' = {\
  157. FOR \c := TO DO
  158. END;
  159. };
  160.  
  161. SHORTCUT 'ie'  = {\
  162. IF \c THEN
  163.   ELSE
  164.   END; (* IF ELSE *)
  165. };
  166.  
  167. SHORTCUT 'if'  = {\
  168. IF \c
  169.   THEN
  170.   END; (* IF *)
  171. };
  172.  
  173. SHORTCUT 'p'   = {\
  174. PROCEDURE \c
  175.   BEGIN
  176.   END ;
  177. };
  178.  
  179. SHORTCUT 're'  = {\
  180. RECORD
  181.   \c
  182. END;
  183. };
  184.  
  185. SHORTCUT 'ca'  = {\
  186. CASE \c OF
  187.   ELSE
  188. END;  (* CASE *)
  189. };
  190.  
  191. SHORTCUT 'wh'  = {\
  192. WHILE \c DO
  193. END;  (* WHILE *)
  194. };
  195.  
  196. SHORTCUT 'ru'  = {\
  197. REPEAT
  198. UNTIL \c;
  199. };
  200.  
  201. SHORTCUT 'lo'  = {\
  202. LOOP\c
  203. END;  (* LOOP *)
  204. };
  205.  
  206. SHORTCUT 'wi'  = {\
  207. WITH \c DO
  208. END;  (* WITH *)
  209. };
  210.  
  211. SHORTCUT 'rf'  = {RETURN FALSE;};
  212.  
  213. SHORTCUT 'rt'  = {RETURN TRUE;};
  214.  
  215. SHORTCUT 'port' = {\
  216. FROM Portab IMPORT tCompiler, Compiler;
  217.  
  218.  
  219. <*$?Compiler = Megamax:
  220. (* Implementierung für >>> Megamax-Modula-2 <<< *)
  221. (*                                              *) 
  222. (* Durchgeführt von Steffen Engel               *) 
  223. (*                                              *) 
  224. (*$S-   Stack-Checks                            *) 
  225. (*$R-   kein Bereichstest                       *) 
  226. (*$Z+   Rückgabe in Registern                   *) 
  227. (*                                              *) 
  228. (*----------------------------------------------*) 
  229. *>
  230.  
  231. <*$?Compiler = Haenisch:
  232. (* Implementierung für >>> Hänisch-Modula-2 <<< *)
  233. (*                                              *) 
  234. (* Durchgeführt von Steffen Engel               *) 
  235. (*                                              *) 
  236. (*$S-   Stack-Checks                            *) 
  237. (*$I-   keine Variablen-Initialisierung         *) 
  238. (*$V-   keine arithmetischen Kontrollen         *) 
  239. (*$T-   kein Bereichstest                       *) 
  240. (*$Y-   keine Laufzeittests auf RETURN und CASE *) 
  241. (*                                              *) 
  242. (*----------------------------------------------*)
  243. *>
  244. };
  245.  
  246.  
  247. SHORTCUT 'pf' = {\
  248. VOID(stdio.printf('\c',
  249.                   stdio.tAdressArray{NIL BY 9\}));};
  250.  
  251. }
  252.  
  253.