view 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
line wrap: on
line source

(* 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.