xref: /vim-8.2.3635/runtime/syntax/modsim3.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Modsim III, by compuware corporation (www.compuware.com)
3071d4279SBram Moolenaar" Maintainer:	Philipp Jocham <[email protected]>
4071d4279SBram Moolenaar" Extension:	*.mod
5071d4279SBram Moolenaar" Last Change:	2001 May 10
6071d4279SBram Moolenaar"
7071d4279SBram Moolenaar" 2001 March 24:
8071d4279SBram Moolenaar"  - Modsim III is a registered trademark from compuware corporation
9071d4279SBram Moolenaar"  - made compatible with Vim 6.0
10071d4279SBram Moolenaar"
11071d4279SBram Moolenaar" 1999 Apr 22 : Changed modsim3Literal from region to match
12071d4279SBram Moolenaar"
13071d4279SBram Moolenaar" very basic things only (based on the modula2 and c files).
14071d4279SBram Moolenaar
1589bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1689bcfda6SBram Moolenaarif exists("b:current_syntax")
17071d4279SBram Moolenaar  finish
18071d4279SBram Moolenaarendif
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar
21071d4279SBram Moolenaar" syn case match " case sensitiv match is default
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" A bunch of keywords
24071d4279SBram Moolenaarsyn keyword modsim3Keyword ACTID ALL AND AS ASK
25071d4279SBram Moolenaarsyn keyword modsim3Keyword BY CALL CASE CLASS CONST DIV
26071d4279SBram Moolenaarsyn keyword modsim3Keyword DOWNTO DURATION ELSE ELSIF EXIT FALSE FIXED FOR
27071d4279SBram Moolenaarsyn keyword modsim3Keyword FOREACH FORWARD IF IN INHERITED INOUT
28071d4279SBram Moolenaarsyn keyword modsim3Keyword INTERRUPT LOOP
29071d4279SBram Moolenaarsyn keyword modsim3Keyword MOD MONITOR NEWVALUE
30071d4279SBram Moolenaarsyn keyword modsim3Keyword NONMODSIM NOT OBJECT OF ON OR ORIGINAL OTHERWISE OUT
31071d4279SBram Moolenaarsyn keyword modsim3Keyword OVERRIDE PRIVATE PROTO REPEAT
32071d4279SBram Moolenaarsyn keyword modsim3Keyword RETURN REVERSED SELF STRERR TELL
33071d4279SBram Moolenaarsyn keyword modsim3Keyword TERMINATE THISMETHOD TO TRUE TYPE UNTIL VALUE VAR
34071d4279SBram Moolenaarsyn keyword modsim3Keyword WAIT WAITFOR WHEN WHILE WITH
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar" Builtin functions and procedures
37071d4279SBram Moolenaarsyn keyword modsim3Builtin ABS ACTIVATE ADDMONITOR CAP CHARTOSTR CHR CLONE
38071d4279SBram Moolenaarsyn keyword modsim3Builtin DEACTIVATE DEC DISPOSE FLOAT GETMONITOR HIGH INC
39071d4279SBram Moolenaarsyn keyword modsim3Builtin INPUT INSERT INTTOSTR ISANCESTOR LOW LOWER MAX MAXOF
40071d4279SBram Moolenaarsyn keyword modsim3Builtin MIN MINOF NEW OBJTYPEID OBJTYPENAME OBJVARID ODD
41071d4279SBram Moolenaarsyn keyword modsim3Builtin ONERROR ONEXIT ORD OUTPUT POSITION PRINT REALTOSTR
42071d4279SBram Moolenaarsyn keyword modsim3Builtin REPLACE REMOVEMONITOR ROUND SCHAR SIZEOF SPRINT
43071d4279SBram Moolenaarsyn keyword modsim3Builtin STRLEN STRTOCHAR STRTOINT STRTOREAL SUBSTR TRUNC
44071d4279SBram Moolenaarsyn keyword modsim3Builtin UPDATEVALUE UPPER VAL
45071d4279SBram Moolenaar
46071d4279SBram Moolenaarsyn keyword modsim3BuiltinNoParen HALT TRACE
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" Special keywords
49071d4279SBram Moolenaarsyn keyword modsim3Block PROCEDURE METHOD MODULE MAIN DEFINITION IMPLEMENTATION
50071d4279SBram Moolenaarsyn keyword modsim3Block BEGIN END
51071d4279SBram Moolenaar
52071d4279SBram Moolenaarsyn keyword modsim3Include IMPORT FROM
53071d4279SBram Moolenaar
54071d4279SBram Moolenaarsyn keyword modsim3Type ANYARRAY ANYOBJ ANYREC ARRAY BOOLEAN CHAR INTEGER
55071d4279SBram Moolenaarsyn keyword modsim3Type LMONITORED LRMONITORED NILARRAY NILOBJ NILREC REAL
56071d4279SBram Moolenaarsyn keyword modsim3Type RECORD RMONITOR RMONITORED STRING
57071d4279SBram Moolenaar
58071d4279SBram Moolenaar" catch errros cause by wrong parenthesis
59071d4279SBram Moolenaar" slight problem with "( *)" or "(* )". Hints?
60071d4279SBram Moolenaarsyn region modsim3Paren	transparent start='(' end=')' contains=ALLBUT,modsim3ParenError
61071d4279SBram Moolenaarsyn match modsim3ParenError ")"
62071d4279SBram Moolenaar
63071d4279SBram Moolenaar" Comments
64071d4279SBram Moolenaarsyn region modsim3Comment1 start="{" end="}" contains=modsim3Comment1,modsim3Comment2
65071d4279SBram Moolenaarsyn region modsim3Comment2 start="(\*" end="\*)" contains=modsim3Comment1,modsim3Comment2
66071d4279SBram Moolenaar" highlighting is wrong for constructs like "{  (*  }  *)",
67071d4279SBram Moolenaar" which are allowed in Modsim III, but
68071d4279SBram Moolenaar" I think something like that shouldn't be used anyway.
69071d4279SBram Moolenaar
70071d4279SBram Moolenaar" Strings
71071d4279SBram Moolenaarsyn region modsim3String start=+"+ end=+"+
72071d4279SBram Moolenaar
73071d4279SBram Moolenaar" Literals
74071d4279SBram Moolenaar"syn region modsim3Literal start=+'+ end=+'+
75071d4279SBram Moolenaarsyn match modsim3Literal "'[^']'\|''''"
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar" Define the default highlighting.
7889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
79071d4279SBram Moolenaar
80071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
81*f37506f6SBram Moolenaarhi def link modsim3Keyword	Statement
82*f37506f6SBram Moolenaarhi def link modsim3Block		Statement
83*f37506f6SBram Moolenaarhi def link modsim3Comment1	Comment
84*f37506f6SBram Moolenaarhi def link modsim3Comment2	Comment
85*f37506f6SBram Moolenaarhi def link modsim3String		String
86*f37506f6SBram Moolenaarhi def link modsim3Literal	Character
87*f37506f6SBram Moolenaarhi def link modsim3Include	Statement
88*f37506f6SBram Moolenaarhi def link modsim3Type		Type
89*f37506f6SBram Moolenaarhi def link modsim3ParenError	Error
90*f37506f6SBram Moolenaarhi def link modsim3Builtin	Function
91*f37506f6SBram Moolenaarhi def link modsim3BuiltinNoParen	Function
92071d4279SBram Moolenaar
93071d4279SBram Moolenaar
94071d4279SBram Moolenaarlet b:current_syntax = "modsim3"
95071d4279SBram Moolenaar
96071d4279SBram Moolenaar" vim: ts=8 sw=2
97071d4279SBram Moolenaar
98