home *** CD-ROM | disk | FTP | other *** search
- #***********************************************************************
- # Modula-2-Sourcen:
- EXTENSION ".M", ".D", ".I", ".MOD", ".DEF", ".IMP" = {
-
- COMMENT {DarkCyan, Light} = "(*", "*)";
- REGION {} = '(', ')';
- REGION {} = '[', ']';
- REGION {} = '{', '}';
- REGION {} = '"', '"';
- REGION {} = "'", "'";
-
-
- KEYS {DarkBlue, Light} =
- CONST, TYPE, VAR, RECORD, ARRAY, PROCEDURE, BEGIN, END, IF, THEN, ELSE,
- ELSIF, WHILE, WITH, CASE, REPEAT, UNTIL, LOOP, FOR;
-
- # Weil es wichtig ist und man damit versteckte Rücksprünge besser sieht:
- KEYS {DarkRed, Bold} =
- RETURN, EXIT,
- BREAK, CONTINUE,
- "bkpt",
- illegal;
-
- # Typen in Grün
- KEYS {DarkGreen, Bold} =
- BOOLEAN, SHORTINT, LONGINT, INTEGER, SHORTCARD, LONGCARD, CARDINAL,
- ADDRESS, BYTE, REAL, LONGREAL, SHORTREAL, POINTER, BITSET, LONGSET,
- CHARSET;
-
- # Konstanten in
- KEYS {DarkYellow} =
- TRUE, FALSE, NIL;
-
- KEYS {DarkMagenta, Bold} =
- SYSTEM, System;
-
- SHORTCUT "adr" = "SYSTEM.ADR(\c)";
- SHORTCUT "sa" = "SYSTEM.ADDRESS";
-
- # und eine grö₧ere Menge Shortcuts
- SHORTCUT 'com' = {\
- (*-----------------------------------------------------------------------
- *
- * \c
- *
- *-----------------------------------------------------------------------*)
- };
-
- SHORTCUT "fo" = "FOR \c := TO DO\nEND;\n";
-
- SHORTCUT "ie" = {\
- IF \c THEN
- ELSE
- END; (* IF ELSE *)
- };
-
- SHORTCUT 'rf' = {RETURN FALSE;};
-
- SHORTCUT 'rcs' = {\
- (****************************************************************************
- *
- *
- * $Source$
- *
- * $Revision$
- *
- * $Author$
- *
- * $Date$
- *
- * $State$
- *
- *****************************************************************************
- * History:
- *
- * $Log$
- *
- *
- ****************************************************************************)
- };
-
-
- SHORTCUT 'opts' = {\
- (* IMPLEMENTATION FÜR >>> Hänisch-Modula-2 <<< *)
- (* *)
- (* Durchgeführt von Steffen Engel *)
- (* *)
- (*$S- Stack-Checks *)
- (*$I- keine Variablen-Initialisierung *)
- (*$V- keine arithmetischen Kontrollen *)
- (*$T- kein Bereichstest *)
- (*$Y- keine Laufzeittests auf RETURN und CASE *)
- (* *)
- (*----------------------------------------------*)
- };
-
- SHORTCUT 'import' = {\
- (* Systemabhängiges *)
- opts\e
-
-
- IMPORT SYSTEM, System;
-
- (* Standard HM2-Libs *)
-
- (* Magic-Lib *)
- FROM MagicSys IMPORT
- (* Const *) Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5,
- Bit6, Bit7, Bit8, Bit9, Bit10, Bit11, Bit12,
- Bit13, Bit14, Bit15,
- (* Type *) LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
- sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
-
- (* Magic-Tools *)
-
- (* Eigene Libs *)
-
- (* Projektlibs *)
-
- };
-
-
- SHORTCUT 'dm' = {\
- DEFINITION MODULE \c;
- rcs\e
- import\e
-
- END.
-
- };
-
-
- SHORTCUT 'im' = {\
- IMPLEMENTATION MODULE \c;
- rcs\e
-
- import\e
-
- BEGIN
- END.
-
- };
-
- SHORTCUT 'mo' = {\
- MODULE \c;
- rcs\e
-
- import\e
-
- BEGIN
- END.
- };
-
- SHORTCUT 'ar' = "ARRAY[\c..] OF ;";
-
- SHORTCUT 'fo' = {\
- FOR \c := TO DO
- END;
- };
-
- SHORTCUT 'ie' = {\
- IF \c THEN
- ELSE
- END; (* IF ELSE *)
- };
-
- SHORTCUT 'if' = {\
- IF \c
- THEN
- END; (* IF *)
- };
-
- SHORTCUT 'p' = {\
- PROCEDURE \c
- BEGIN
- END ;
- };
-
- SHORTCUT 're' = {\
- RECORD
- \c
- END;
- };
-
- SHORTCUT 'ca' = {\
- CASE \c OF
- ELSE
- END; (* CASE *)
- };
-
- SHORTCUT 'wh' = {\
- WHILE \c DO
- END; (* WHILE *)
- };
-
- SHORTCUT 'ru' = {\
- REPEAT
- UNTIL \c;
- };
-
- SHORTCUT 'lo' = {\
- LOOP\c
- END; (* LOOP *)
- };
-
- SHORTCUT 'wi' = {\
- WITH \c DO
- END; (* WITH *)
- };
-
- SHORTCUT 'rf' = {RETURN FALSE;};
-
- SHORTCUT 'rt' = {RETURN TRUE;};
-
- SHORTCUT 'port' = {\
- FROM Portab IMPORT tCompiler, Compiler;
-
-
- <*$?Compiler = Megamax:
- (* Implementierung für >>> Megamax-Modula-2 <<< *)
- (* *)
- (* Durchgeführt von Steffen Engel *)
- (* *)
- (*$S- Stack-Checks *)
- (*$R- kein Bereichstest *)
- (*$Z+ Rückgabe in Registern *)
- (* *)
- (*----------------------------------------------*)
- *>
-
- <*$?Compiler = Haenisch:
- (* Implementierung für >>> Hänisch-Modula-2 <<< *)
- (* *)
- (* Durchgeführt von Steffen Engel *)
- (* *)
- (*$S- Stack-Checks *)
- (*$I- keine Variablen-Initialisierung *)
- (*$V- keine arithmetischen Kontrollen *)
- (*$T- kein Bereichstest *)
- (*$Y- keine Laufzeittests auf RETURN und CASE *)
- (* *)
- (*----------------------------------------------*)
- *>
- };
-
-
- SHORTCUT 'pf' = {\
- VOID(stdio.printf('\c',
- stdio.tAdressArray{NIL BY 9\}));};
-
- }
-
-