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