File indexing completed on 2024-05-12 04:02:09

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>test-pim.mod</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Modula-2 (PIM only)) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887;font-style:italic">(* PIM Modula-2 Syntax highlighting test *)</span>
0008 
0009 <span style="color:#898887;font-style:italic">(* dialect tags *)</span>
0010 
0011 <span style="color:#898887;font-weight:bold">(*!m2pim*)</span>
0012 
0013 
0014 <span style="color:#898887;font-style:italic">(* pragmas *)</span>
0015 
0016 <span style="color:#006e28;font-weight:bold">(*$foo*)</span>
0017 
0018 
0019 <span style="color:#898887;font-style:italic">(* foldable comments *)</span>
0020 
0021 <span style="color:#898887;font-style:italic">(* foo bar baz</span>
0022 <span style="color:#898887;font-style:italic">   (* nested comment *)</span>
0023 <span style="color:#898887;font-style:italic">   bam boo bee bop *)</span>
0024 
0025 
0026 <span style="color:#898887;font-style:italic">(* reserved words *)</span>
0027 
0028 <span style="font-weight:bold">AND</span> <span style="font-weight:bold">ARRAY</span> <span style="font-weight:bold">BEGIN</span> <span style="font-weight:bold">BY</span> <span style="font-weight:bold">CASE</span> <span style="font-weight:bold">CONST</span> <span style="font-weight:bold">DEFINITION</span> <span style="font-weight:bold">DIV</span> <span style="font-weight:bold">DO</span> <span style="font-weight:bold">ELSE</span> <span style="font-weight:bold">ELSIF</span> <span style="font-weight:bold">END</span> <span style="font-weight:bold">EXIT</span> <span style="font-weight:bold">EXPORT</span> <span style="font-weight:bold">FOR</span>
0029 <span style="font-weight:bold">FROM</span> <span style="font-weight:bold">IF</span> <span style="font-weight:bold">IMPLEMENTATION</span> <span style="font-weight:bold">IMPORT</span> <span style="font-weight:bold">IN</span> <span style="font-weight:bold">LOOP</span> <span style="font-weight:bold">MOD</span> <span style="font-weight:bold">MODULE</span> <span style="font-weight:bold">NOT</span> <span style="font-weight:bold">OF</span> <span style="font-weight:bold">OR</span> <span style="font-weight:bold">POINTER</span> <span style="font-weight:bold">PROCEDURE</span>
0030 <span style="font-weight:bold">QUALIFIED</span> <span style="font-weight:bold">RECORD</span> <span style="font-weight:bold">REPEAT</span> <span style="font-weight:bold">RETURN</span> <span style="font-weight:bold">SET</span> <span style="font-weight:bold">THEN</span> <span style="font-weight:bold">TO</span> <span style="font-weight:bold">TYPE</span> <span style="font-weight:bold">UNTIL</span> <span style="font-weight:bold">VAR</span> <span style="font-weight:bold">WHILE</span> <span style="font-weight:bold">WITH</span>
0031 
0032 
0033 <span style="color:#898887;font-style:italic">(* built-in constants *)</span>
0034 
0035 <span style="color:#644a9b;font-weight:bold">FALSE</span> <span style="color:#644a9b;font-weight:bold">NIL</span> <span style="color:#644a9b;font-weight:bold">TRUE</span>
0036 
0037 
0038 <span style="color:#898887;font-style:italic">(* built-in types *)</span>
0039 
0040 <span style="color:#0057ae;font-weight:bold">BOOLEAN</span> <span style="color:#0057ae;font-weight:bold">BITSET</span> <span style="color:#0057ae;font-weight:bold">CARDINAL</span> <span style="color:#0057ae;font-weight:bold">CHAR</span> <span style="color:#0057ae;font-weight:bold">INTEGER</span> <span style="color:#0057ae;font-weight:bold">LONGINT</span> <span style="color:#0057ae;font-weight:bold">LONGREAL</span> <span style="color:#0057ae;font-weight:bold">PROC</span> <span style="color:#0057ae;font-weight:bold">REAL</span>
0041 
0042 
0043 <span style="color:#898887;font-style:italic">(* built-in procedures *)</span>
0044 
0045 <span style="color:#644a9b;font-weight:bold">ABS</span> <span style="color:#644a9b;font-weight:bold">ALLOCATE</span> <span style="color:#644a9b;font-weight:bold">CAP</span> <span style="color:#644a9b;font-weight:bold">CHR</span> <span style="color:#644a9b;font-weight:bold">DEALLOCATE</span> <span style="color:#644a9b;font-weight:bold">DEC</span> <span style="color:#644a9b;font-weight:bold">DISPOSE</span> <span style="color:#644a9b;font-weight:bold">EXCL</span> <span style="color:#644a9b;font-weight:bold">FLOAT</span> <span style="color:#644a9b;font-weight:bold">HALT</span> <span style="color:#644a9b;font-weight:bold">HIGH</span>
0046 <span style="color:#644a9b;font-weight:bold">INC</span> <span style="color:#644a9b;font-weight:bold">INCL</span> <span style="color:#644a9b;font-weight:bold">MAX</span> <span style="color:#644a9b;font-weight:bold">MIN</span> <span style="color:#644a9b;font-weight:bold">NEW</span> <span style="color:#644a9b;font-weight:bold">ODD</span> <span style="color:#644a9b;font-weight:bold">ORD</span> <span style="color:#644a9b;font-weight:bold">SIZE</span> <span style="color:#644a9b;font-weight:bold">TRUNC</span> <span style="color:#644a9b;font-weight:bold">VAL</span>
0047 
0048 
0049 <span style="color:#898887;font-style:italic">(* unsafe facilities *)</span>
0050 
0051 <span style="color:#898887;font-style:italic">(* module *)</span>
0052 
0053 <span style="color:#bf0303;font-weight:bold">SYSTEM</span>
0054 
0055 <span style="color:#898887;font-style:italic">(* types *)</span>
0056 
0057 <span style="color:#bf0303;font-weight:bold">ADDRESS</span> <span style="color:#bf0303;font-weight:bold">WORD</span> <span style="color:#bf0303;font-weight:bold">PROCESS</span>
0058 
0059 <span style="color:#898887;font-style:italic">(* procedures *)</span>
0060 
0061 <span style="color:#bf0303;font-weight:bold">ADR</span> <span style="color:#bf0303;font-weight:bold">NEWPROCESS</span> <span style="color:#bf0303;font-weight:bold">TRANSFER</span> <span style="color:#bf0303;font-weight:bold">TSIZE</span>
0062 
0063 
0064 <span style="color:#898887;font-style:italic">(* number literals *)</span>
0065 
0066 <span style="font-weight:bold">CONST</span>
0067   n = <span style="color:#b08000">1000</span>; r = <span style="color:#b08000">1.234</span>; x = <span style="color:#b08000">0FFFFH</span>; c = <span style="color:#b08000">077C</span>;
0068 
0069 
0070 <span style="color:#898887;font-style:italic">(* quoted literals *)</span>
0071 
0072 <span style="font-weight:bold">CONST</span>
0073   apostrophe = <span style="color:#bf0303">"'"</span>; doublequote = <span style="color:#bf0303">'"'</span>;
0074   single =<span style="color:#bf0303">'foobar'</span>; double = <span style="color:#bf0303">"bazbam"</span>;
0075 
0076 
0077 <span style="color:#898887;font-style:italic">(* sample code *)</span>
0078 
0079 <span style="font-weight:bold">TYPE</span> Foo = <span style="font-weight:bold">RECORD</span>
0080   bar : Baz;
0081   bam : Boo
0082 <span style="font-weight:bold">END</span>; <span style="color:#898887;font-style:italic">(* Foobar *)</span>
0083 
0084 
0085 <span style="font-weight:bold">VAR</span>
0086   foo, bar, baz : <span style="color:#0057ae;font-weight:bold">CARDINAL</span>;
0087 
0088 
0089 <span style="font-weight:bold">IF</span> foo > bar <span style="font-weight:bold">THEN</span>
0090   baz := bam
0091 <span style="font-weight:bold">ELSE</span>
0092   baz := boo
0093 <span style="font-weight:bold">END</span>;
0094 
0095 
0096 <span style="color:#898887;font-style:italic">(* EOF *)</span>
0097 </pre></body></html>