Mercurial > vim
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. |