blob: b979ccf70c4cf44a19df84829359197c8eac0b3d [file] [log] [blame]
Doug Kearns68a89472024-01-05 17:59:04 +01001(* Modula-2 ISO Test File for Vim Syntax Colouring *)
2
3(* --------------------------------------------------
4 * THIS FILE IS LICENSED UNDER THE VIM LICENSE
5 * see https://github.com/vim/vim/blob/master/LICENSE
6 * -------------------------------------------------- *)
7
8
9DEFINITION MODULE Foobar; (*!m2iso*)
10
11FROM SYSTEM IMPORT LOC, WORD, ADDRESS;
12
13CONST MaxFoo = 1.0; LF = CHR(10);
14
15TYPE Foo = POINTER TO Bar;
16
17(* predefined constants *)
18FALSE NIL TRUE INTERRUPTIBLE UNINTERRUPTIBLE
19
20(* predefined types *)
21BITSET BOOLEAN CHAR PROC CARDINAL INTEGER LONGINT REAL LONGREAL
22COMPLEX LONGCOMPLEX PROTECTION
23
24(* predefined procedures *)
25CAP DEC EXCL HALT INC INCL
26
27(* predefined functions *)
28ABS CHR CMPLX FLOAT HIGH IM INT LENGTH LFLOAT MAX MIN ODD ORD RE SIZE TRUNC VAL
29
30(* predefined macros *)
31NEW DISPOSE
32
33(* unsafe builtins *)
34ADDRESS BYTE LOC WORD ADR CAST TSIZE SYSTEM
35MAKEADR ADDADR SUBADR DIFADR ROTATE SHIFT
36
37(* non-standard language extensions *)
38LONGCARD LONGBITSET
39
40(* user defined identifiers *)
41foobar Foobar FooBar foo123 foo_bar
42
43(* string literals *)
44str := "foo 'bar' baz";
45str := 'foo "bar" baz';
46
47(* numeric literals *)
480FFFH, 1.23, 1.23e-45, 1000
49
50(* octal literals *)
51n := 0377B; ch := 0377C;
52
53(* pragmas *)
54<*$foo*>
55
56(* block comments with emphasis *)
57(* copyright (c) Jurrasic Inc.
58 author Fred Flintstone Sr.
59 license see LICENSE file. *)
60
61(* pre-conditions: foo bar baz bam boo doodle wah.
62 post-conditions: foodle babble bozo bim bam dang.
63 error-conditions: dada jingle jungle boggle dee boo. *)
64
65(* technical debt markers *)
66(* TODO: ... *)
67(* FIXME *)
68(* DEPRECATED *)
69
70(* procedures *)
71PROCEDURE NewFooWithBar ( VAR foo: Foo; bar : INTEGER );
72BEGIN
73 NEW(foo);
74 foo^.bar := bar;
75 RETURN
76END SetBar;
77
78(* functions *)
79PROCEDURE bar ( foo : Foo ) : INTEGER;
80BEGIN
81 IF foo = NIL THEN
82 HALT
83 ELSE
84 RETURN foo^.bar
85 END (* IF *)
86END bar;
87
88(* disabled code *)
89?<
90WHILE foo = bar DO
91 baz(bam, boo)
92END (* WHILE *);
93>?
94
95(* synonyms *)
96@ & ~
97
98(* illegal characters *)
99` ! $ % \ ? _
100
101(* illegal identifiers *)
102
103_bar _bar_baz _bar_baz__bam _bar_baz__bam_boo
104
105bar_ bar_baz_ bar_baz__bam_ bar_baz__bam_boo_
106
107__bar __bar_baz __bar_baz__bam __bar_baz__bam_boo
108
109bar__ bar_baz__ bar_baz__bam__ bar_baz__bam_boo__
110
111bar__baz __bar_baz__ __bar__baz__ __
112
113
114END Foobar.