1" Vim syntax file 2" Language: Modsim III, by compuware corporation (www.compuware.com) 3" Maintainer: Philipp Jocham <[email protected]> 4" Extension: *.mod 5" Last Change: 2001 May 10 6" 7" 2001 March 24: 8" - Modsim III is a registered trademark from compuware corporation 9" - made compatible with Vim 6.0 10" 11" 1999 Apr 22 : Changed modsim3Literal from region to match 12" 13" very basic things only (based on the modula2 and c files). 14 15" quit when a syntax file was already loaded 16if exists("b:current_syntax") 17 finish 18endif 19 20 21" syn case match " case sensitiv match is default 22 23" A bunch of keywords 24syn keyword modsim3Keyword ACTID ALL AND AS ASK 25syn keyword modsim3Keyword BY CALL CASE CLASS CONST DIV 26syn keyword modsim3Keyword DOWNTO DURATION ELSE ELSIF EXIT FALSE FIXED FOR 27syn keyword modsim3Keyword FOREACH FORWARD IF IN INHERITED INOUT 28syn keyword modsim3Keyword INTERRUPT LOOP 29syn keyword modsim3Keyword MOD MONITOR NEWVALUE 30syn keyword modsim3Keyword NONMODSIM NOT OBJECT OF ON OR ORIGINAL OTHERWISE OUT 31syn keyword modsim3Keyword OVERRIDE PRIVATE PROTO REPEAT 32syn keyword modsim3Keyword RETURN REVERSED SELF STRERR TELL 33syn keyword modsim3Keyword TERMINATE THISMETHOD TO TRUE TYPE UNTIL VALUE VAR 34syn keyword modsim3Keyword WAIT WAITFOR WHEN WHILE WITH 35 36" Builtin functions and procedures 37syn keyword modsim3Builtin ABS ACTIVATE ADDMONITOR CAP CHARTOSTR CHR CLONE 38syn keyword modsim3Builtin DEACTIVATE DEC DISPOSE FLOAT GETMONITOR HIGH INC 39syn keyword modsim3Builtin INPUT INSERT INTTOSTR ISANCESTOR LOW LOWER MAX MAXOF 40syn keyword modsim3Builtin MIN MINOF NEW OBJTYPEID OBJTYPENAME OBJVARID ODD 41syn keyword modsim3Builtin ONERROR ONEXIT ORD OUTPUT POSITION PRINT REALTOSTR 42syn keyword modsim3Builtin REPLACE REMOVEMONITOR ROUND SCHAR SIZEOF SPRINT 43syn keyword modsim3Builtin STRLEN STRTOCHAR STRTOINT STRTOREAL SUBSTR TRUNC 44syn keyword modsim3Builtin UPDATEVALUE UPPER VAL 45 46syn keyword modsim3BuiltinNoParen HALT TRACE 47 48" Special keywords 49syn keyword modsim3Block PROCEDURE METHOD MODULE MAIN DEFINITION IMPLEMENTATION 50syn keyword modsim3Block BEGIN END 51 52syn keyword modsim3Include IMPORT FROM 53 54syn keyword modsim3Type ANYARRAY ANYOBJ ANYREC ARRAY BOOLEAN CHAR INTEGER 55syn keyword modsim3Type LMONITORED LRMONITORED NILARRAY NILOBJ NILREC REAL 56syn keyword modsim3Type RECORD RMONITOR RMONITORED STRING 57 58" catch errros cause by wrong parenthesis 59" slight problem with "( *)" or "(* )". Hints? 60syn region modsim3Paren transparent start='(' end=')' contains=ALLBUT,modsim3ParenError 61syn match modsim3ParenError ")" 62 63" Comments 64syn region modsim3Comment1 start="{" end="}" contains=modsim3Comment1,modsim3Comment2 65syn region modsim3Comment2 start="(\*" end="\*)" contains=modsim3Comment1,modsim3Comment2 66" highlighting is wrong for constructs like "{ (* } *)", 67" which are allowed in Modsim III, but 68" I think something like that shouldn't be used anyway. 69 70" Strings 71syn region modsim3String start=+"+ end=+"+ 72 73" Literals 74"syn region modsim3Literal start=+'+ end=+'+ 75syn match modsim3Literal "'[^']'\|''''" 76 77" Define the default highlighting. 78" Only when an item doesn't have highlighting yet 79 80" The default methods for highlighting. Can be overridden later 81hi def link modsim3Keyword Statement 82hi def link modsim3Block Statement 83hi def link modsim3Comment1 Comment 84hi def link modsim3Comment2 Comment 85hi def link modsim3String String 86hi def link modsim3Literal Character 87hi def link modsim3Include Statement 88hi def link modsim3Type Type 89hi def link modsim3ParenError Error 90hi def link modsim3Builtin Function 91hi def link modsim3BuiltinNoParen Function 92 93 94let b:current_syntax = "modsim3" 95 96" vim: ts=8 sw=2 97 98