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