comparison runtime/syntax/testdir/input/modula2_iso.def @ 34092:ff27442e7851 v9.1.0013

patch 9.1.0013: Modula2 filetype support lacking Commit: https://github.com/vim/vim/commit/68a89470693c7687d4e736ca056c05de632e3ac7 Author: Doug Kearns <dougkearns@gmail.com> Date: Fri Jan 5 17:59:04 2024 +0100 patch 9.1.0013: Modula2 filetype support lacking Problem: Modula2 filetype support lacking Solution: Improve the Modula-2 runtime support, add additional modula2 dialects, add compiler plugin, update syntax highlighting, include syntax tests, update Makefiles (Doug Kearns) closes: #6796 closes: #8115 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Benjamin Kowarsch <trijezdci@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Fri, 05 Jan 2024 18:15:04 +0100
parents
children
comparison
equal deleted inserted replaced
34091:27bd5d0816e0 34092:ff27442e7851
1 (* 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
9 DEFINITION MODULE Foobar; (*!m2iso*)
10
11 FROM SYSTEM IMPORT LOC, WORD, ADDRESS;
12
13 CONST MaxFoo = 1.0; LF = CHR(10);
14
15 TYPE Foo = POINTER TO Bar;
16
17 (* predefined constants *)
18 FALSE NIL TRUE INTERRUPTIBLE UNINTERRUPTIBLE
19
20 (* predefined types *)
21 BITSET BOOLEAN CHAR PROC CARDINAL INTEGER LONGINT REAL LONGREAL
22 COMPLEX LONGCOMPLEX PROTECTION
23
24 (* predefined procedures *)
25 CAP DEC EXCL HALT INC INCL
26
27 (* predefined functions *)
28 ABS CHR CMPLX FLOAT HIGH IM INT LENGTH LFLOAT MAX MIN ODD ORD RE SIZE TRUNC VAL
29
30 (* predefined macros *)
31 NEW DISPOSE
32
33 (* unsafe builtins *)
34 ADDRESS BYTE LOC WORD ADR CAST TSIZE SYSTEM
35 MAKEADR ADDADR SUBADR DIFADR ROTATE SHIFT
36
37 (* non-standard language extensions *)
38 LONGCARD LONGBITSET
39
40 (* user defined identifiers *)
41 foobar Foobar FooBar foo123 foo_bar
42
43 (* string literals *)
44 str := "foo 'bar' baz";
45 str := 'foo "bar" baz';
46
47 (* numeric literals *)
48 0FFFH, 1.23, 1.23e-45, 1000
49
50 (* octal literals *)
51 n := 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 *)
71 PROCEDURE NewFooWithBar ( VAR foo: Foo; bar : INTEGER );
72 BEGIN
73 NEW(foo);
74 foo^.bar := bar;
75 RETURN
76 END SetBar;
77
78 (* functions *)
79 PROCEDURE bar ( foo : Foo ) : INTEGER;
80 BEGIN
81 IF foo = NIL THEN
82 HALT
83 ELSE
84 RETURN foo^.bar
85 END (* IF *)
86 END bar;
87
88 (* disabled code *)
89 ?<
90 WHILE foo = bar DO
91 baz(bam, boo)
92 END (* 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
105 bar_ bar_baz_ bar_baz__bam_ bar_baz__bam_boo_
106
107 __bar __bar_baz __bar_baz__bam __bar_baz__bam_boo
108
109 bar__ bar_baz__ bar_baz__bam__ bar_baz__bam_boo__
110
111 bar__baz __bar_baz__ __bar__baz__ __
112
113
114 END Foobar.