mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
	
	
		
			110 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			110 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	Modsim III, by compuware corporation (www.compuware.com) | ||
|  | " Maintainer:	Philipp Jocham <flip@sbox.tu-graz.ac.at> | ||
|  | " Extension:	*.mod | ||
|  | " Last Change:	2001 May 10 | ||
|  | " | ||
|  | " 2001 March 24: | ||
|  | "  - Modsim III is a registered trademark from compuware corporation | ||
|  | "  - made compatible with Vim 6.0 | ||
|  | " | ||
|  | " 1999 Apr 22 : Changed modsim3Literal from region to match | ||
|  | " | ||
|  | " very basic things only (based on the modula2 and c files). | ||
|  | 
 | ||
|  | if version < 600 | ||
|  |   " Remove any old syntax stuff hanging around | ||
|  |   syn clear | ||
|  | elseif exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | 
 | ||
|  | " syn case match " case sensitiv match is default | ||
|  | 
 | ||
|  | " A bunch of keywords | ||
|  | syn keyword modsim3Keyword ACTID ALL AND AS ASK | ||
|  | syn keyword modsim3Keyword BY CALL CASE CLASS CONST DIV | ||
|  | syn keyword modsim3Keyword DOWNTO DURATION ELSE ELSIF EXIT FALSE FIXED FOR | ||
|  | syn keyword modsim3Keyword FOREACH FORWARD IF IN INHERITED INOUT | ||
|  | syn keyword modsim3Keyword INTERRUPT LOOP | ||
|  | syn keyword modsim3Keyword MOD MONITOR NEWVALUE | ||
|  | syn keyword modsim3Keyword NONMODSIM NOT OBJECT OF ON OR ORIGINAL OTHERWISE OUT | ||
|  | syn keyword modsim3Keyword OVERRIDE PRIVATE PROTO REPEAT | ||
|  | syn keyword modsim3Keyword RETURN REVERSED SELF STRERR TELL | ||
|  | syn keyword modsim3Keyword TERMINATE THISMETHOD TO TRUE TYPE UNTIL VALUE VAR | ||
|  | syn keyword modsim3Keyword WAIT WAITFOR WHEN WHILE WITH | ||
|  | 
 | ||
|  | " Builtin functions and procedures | ||
|  | syn keyword modsim3Builtin ABS ACTIVATE ADDMONITOR CAP CHARTOSTR CHR CLONE | ||
|  | syn keyword modsim3Builtin DEACTIVATE DEC DISPOSE FLOAT GETMONITOR HIGH INC | ||
|  | syn keyword modsim3Builtin INPUT INSERT INTTOSTR ISANCESTOR LOW LOWER MAX MAXOF | ||
|  | syn keyword modsim3Builtin MIN MINOF NEW OBJTYPEID OBJTYPENAME OBJVARID ODD | ||
|  | syn keyword modsim3Builtin ONERROR ONEXIT ORD OUTPUT POSITION PRINT REALTOSTR | ||
|  | syn keyword modsim3Builtin REPLACE REMOVEMONITOR ROUND SCHAR SIZEOF SPRINT | ||
|  | syn keyword modsim3Builtin STRLEN STRTOCHAR STRTOINT STRTOREAL SUBSTR TRUNC | ||
|  | syn keyword modsim3Builtin UPDATEVALUE UPPER VAL | ||
|  | 
 | ||
|  | syn keyword modsim3BuiltinNoParen HALT TRACE | ||
|  | 
 | ||
|  | " Special keywords | ||
|  | syn keyword modsim3Block PROCEDURE METHOD MODULE MAIN DEFINITION IMPLEMENTATION | ||
|  | syn keyword modsim3Block BEGIN END | ||
|  | 
 | ||
|  | syn keyword modsim3Include IMPORT FROM | ||
|  | 
 | ||
|  | syn keyword modsim3Type ANYARRAY ANYOBJ ANYREC ARRAY BOOLEAN CHAR INTEGER | ||
|  | syn keyword modsim3Type LMONITORED LRMONITORED NILARRAY NILOBJ NILREC REAL | ||
|  | syn keyword modsim3Type RECORD RMONITOR RMONITORED STRING | ||
|  | 
 | ||
|  | " catch errros cause by wrong parenthesis | ||
|  | " slight problem with "( *)" or "(* )". Hints? | ||
|  | syn region modsim3Paren	transparent start='(' end=')' contains=ALLBUT,modsim3ParenError | ||
|  | syn match modsim3ParenError ")" | ||
|  | 
 | ||
|  | " Comments | ||
|  | syn region modsim3Comment1 start="{" end="}" contains=modsim3Comment1,modsim3Comment2 | ||
|  | syn region modsim3Comment2 start="(\*" end="\*)" contains=modsim3Comment1,modsim3Comment2 | ||
|  | " highlighting is wrong for constructs like "{  (*  }  *)", | ||
|  | " which are allowed in Modsim III, but | ||
|  | " I think something like that shouldn't be used anyway. | ||
|  | 
 | ||
|  | " Strings | ||
|  | syn region modsim3String start=+"+ end=+"+ | ||
|  | 
 | ||
|  | " Literals | ||
|  | "syn region modsim3Literal start=+'+ end=+'+ | ||
|  | syn match modsim3Literal "'[^']'\|''''" | ||
|  | 
 | ||
|  | " Define the default highlighting. | ||
|  | " For version 5.7 and earlier: only when not done already | ||
|  | " For version 5.8 and later: only when an item doesn't have highlighting yet | ||
|  | if version >= 508 || !exists("did_modsim3_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_modsim3_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   " The default methods for highlighting.  Can be overridden later | ||
|  |   HiLink modsim3Keyword	Statement | ||
|  |   HiLink modsim3Block		Statement | ||
|  |   HiLink modsim3Comment1	Comment | ||
|  |   HiLink modsim3Comment2	Comment | ||
|  |   HiLink modsim3String		String | ||
|  |   HiLink modsim3Literal	Character | ||
|  |   HiLink modsim3Include	Statement | ||
|  |   HiLink modsim3Type		Type | ||
|  |   HiLink modsim3ParenError	Error | ||
|  |   HiLink modsim3Builtin	Function | ||
|  |   HiLink modsim3BuiltinNoParen	Function | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "modsim3" | ||
|  | 
 | ||
|  | " vim: ts=8 sw=2 | ||
|  | 
 |