blob: 5f00efb76b2f2f577b9e7dc49746ea2bb59adce9 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Modula-3
3" Maintainer: Timo Pedersen <dat97tpe@ludat.lth.se>
4" Last Change: 2001 May 10
5
6" Basic things only...
7" Based on the modula 2 syntax file
8
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02009" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
14" Modula-3 is case-sensitive
15" syn case ignore
16
17" Modula-3 keywords
18syn keyword modula3Keyword ABS ADDRES ADR ADRSIZE AND ANY
19syn keyword modula3Keyword ARRAY AS BITS BITSIZE BOOLEAN BRANDED BY BYTESIZE
20syn keyword modula3Keyword CARDINAL CASE CEILING CHAR CONST DEC DEFINITION
21syn keyword modula3Keyword DISPOSE DIV
22syn keyword modula3Keyword EVAL EXIT EXCEPT EXCEPTION
23syn keyword modula3Keyword EXIT EXPORTS EXTENDED FALSE FINALLY FIRST FLOAT
24syn keyword modula3Keyword FLOOR FROM GENERIC IMPORT
25syn keyword modula3Keyword IN INC INTEGER ISTYPE LAST LOCK
26syn keyword modula3Keyword LONGREAL LOOPHOLE MAX METHOD MIN MOD MUTEX
27syn keyword modula3Keyword NARROW NEW NIL NOT NULL NUMBER OF OR ORD RAISE
28syn keyword modula3Keyword RAISES READONLY REAL RECORD REF REFANY
29syn keyword modula3Keyword RETURN ROOT
30syn keyword modula3Keyword ROUND SET SUBARRAY TEXT TRUE TRUNC TRY TYPE
31syn keyword modula3Keyword TYPECASE TYPECODE UNSAFE UNTRACED VAL VALUE VAR WITH
32
33" Special keywords, block delimiters etc
34syn keyword modula3Block PROCEDURE FUNCTION MODULE INTERFACE REPEAT THEN
35syn keyword modula3Block BEGIN END OBJECT METHODS OVERRIDES RECORD REVEAL
36syn keyword modula3Block WHILE UNTIL DO TO IF FOR ELSIF ELSE LOOP
37
38" Comments
39syn region modula3Comment start="(\*" end="\*)"
40
41" Strings
42syn region modula3String start=+"+ end=+"+
43syn region modula3String start=+'+ end=+'+
44
45" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020046" Only when an item doesn't have highlighting yet
47command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000048
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020049" The default methods for highlighting. Can be overridden later
50HiLink modula3Keyword Statement
51HiLink modula3Block PreProc
52HiLink modula3Comment Comment
53HiLink modula3String String
Bram Moolenaar071d4272004-06-13 20:20:40 +000054
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020055delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000056
57let b:current_syntax = "modula3"
58
59"I prefer to use this...
60"set ai
61"vim: ts=8