mirror of
https://github.com/vim/vim
synced 2025-05-02 22:37:47 +02:00
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>
114 lines
2.3 KiB
Modula-2
114 lines
2.3 KiB
Modula-2
(* Modula-2 ISO Test File for Vim Syntax Colouring *)
|
|
|
|
(* --------------------------------------------------
|
|
* THIS FILE IS LICENSED UNDER THE VIM LICENSE
|
|
* see https://github.com/vim/vim/blob/master/LICENSE
|
|
* -------------------------------------------------- *)
|
|
|
|
|
|
DEFINITION MODULE Foobar; (*!m2iso*)
|
|
|
|
FROM SYSTEM IMPORT LOC, WORD, ADDRESS;
|
|
|
|
CONST MaxFoo = 1.0; LF = CHR(10);
|
|
|
|
TYPE Foo = POINTER TO Bar;
|
|
|
|
(* predefined constants *)
|
|
FALSE NIL TRUE INTERRUPTIBLE UNINTERRUPTIBLE
|
|
|
|
(* predefined types *)
|
|
BITSET BOOLEAN CHAR PROC CARDINAL INTEGER LONGINT REAL LONGREAL
|
|
COMPLEX LONGCOMPLEX PROTECTION
|
|
|
|
(* predefined procedures *)
|
|
CAP DEC EXCL HALT INC INCL
|
|
|
|
(* predefined functions *)
|
|
ABS CHR CMPLX FLOAT HIGH IM INT LENGTH LFLOAT MAX MIN ODD ORD RE SIZE TRUNC VAL
|
|
|
|
(* predefined macros *)
|
|
NEW DISPOSE
|
|
|
|
(* unsafe builtins *)
|
|
ADDRESS BYTE LOC WORD ADR CAST TSIZE SYSTEM
|
|
MAKEADR ADDADR SUBADR DIFADR ROTATE SHIFT
|
|
|
|
(* non-standard language extensions *)
|
|
LONGCARD LONGBITSET
|
|
|
|
(* user defined identifiers *)
|
|
foobar Foobar FooBar foo123 foo_bar
|
|
|
|
(* string literals *)
|
|
str := "foo 'bar' baz";
|
|
str := 'foo "bar" baz';
|
|
|
|
(* numeric literals *)
|
|
0FFFH, 1.23, 1.23e-45, 1000
|
|
|
|
(* octal literals *)
|
|
n := 0377B; ch := 0377C;
|
|
|
|
(* pragmas *)
|
|
<*$foo*>
|
|
|
|
(* block comments with emphasis *)
|
|
(* copyright (c) Jurrasic Inc.
|
|
author Fred Flintstone Sr.
|
|
license see LICENSE file. *)
|
|
|
|
(* pre-conditions: foo bar baz bam boo doodle wah.
|
|
post-conditions: foodle babble bozo bim bam dang.
|
|
error-conditions: dada jingle jungle boggle dee boo. *)
|
|
|
|
(* technical debt markers *)
|
|
(* TODO: ... *)
|
|
(* FIXME *)
|
|
(* DEPRECATED *)
|
|
|
|
(* procedures *)
|
|
PROCEDURE NewFooWithBar ( VAR foo: Foo; bar : INTEGER );
|
|
BEGIN
|
|
NEW(foo);
|
|
foo^.bar := bar;
|
|
RETURN
|
|
END SetBar;
|
|
|
|
(* functions *)
|
|
PROCEDURE bar ( foo : Foo ) : INTEGER;
|
|
BEGIN
|
|
IF foo = NIL THEN
|
|
HALT
|
|
ELSE
|
|
RETURN foo^.bar
|
|
END (* IF *)
|
|
END bar;
|
|
|
|
(* disabled code *)
|
|
?<
|
|
WHILE foo = bar DO
|
|
baz(bam, boo)
|
|
END (* WHILE *);
|
|
>?
|
|
|
|
(* synonyms *)
|
|
@ & ~
|
|
|
|
(* illegal characters *)
|
|
` ! $ % \ ? _
|
|
|
|
(* illegal identifiers *)
|
|
|
|
_bar _bar_baz _bar_baz__bam _bar_baz__bam_boo
|
|
|
|
bar_ bar_baz_ bar_baz__bam_ bar_baz__bam_boo_
|
|
|
|
__bar __bar_baz __bar_baz__bam __bar_baz__bam_boo
|
|
|
|
bar__ bar_baz__ bar_baz__bam__ bar_baz__bam_boo__
|
|
|
|
bar__baz __bar_baz__ __bar__baz__ __
|
|
|
|
|
|
END Foobar.
|