| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:		lace | 
					
						
							|  |  |  | " Maintainer:	Jocelyn Fiat <utilities@eiffel.com> | 
					
						
							|  |  |  | " Last Change:	2001 May 09 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Copyright Interactive Software Engineering, 1998 | 
					
						
							|  |  |  | " You are free to use this file as you please, but | 
					
						
							|  |  |  | " if you make a change or improvement you must send | 
					
						
							|  |  |  | " it to the maintainer at <utilities@eiffel.com> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " LACE is case insensitive, but the style guide lines are not. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if !exists("lace_case_insensitive") | 
					
						
							|  |  |  | 	syn case match | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	syn case ignore | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " A bunch of useful LACE keywords | 
					
						
							|  |  |  | syn keyword laceTopStruct		system root default option visible cluster | 
					
						
							|  |  |  | syn keyword laceTopStruct		external generate end | 
					
						
							|  |  |  | syn keyword laceOptionClause	collect assertion debug optimize trace | 
					
						
							|  |  |  | syn keyword laceOptionClause	profile inline precompiled multithreaded | 
					
						
							|  |  |  | syn keyword laceOptionClause	exception_trace dead_code_removal | 
					
						
							|  |  |  | syn keyword laceOptionClause	array_optimization | 
					
						
							|  |  |  | syn keyword laceOptionClause	inlining_size inlining | 
					
						
							|  |  |  | syn keyword laceOptionClause	console_application dynamic_runtime | 
					
						
							|  |  |  | syn keyword laceOptionClause	line_generation | 
					
						
							|  |  |  | syn keyword laceOptionMark		yes no all | 
					
						
							|  |  |  | syn keyword laceOptionMark		require ensure invariant loop check | 
					
						
							|  |  |  | syn keyword laceClusterProp		use include exclude | 
					
						
							|  |  |  | syn keyword laceAdaptClassName	adapt ignore rename as | 
					
						
							|  |  |  | syn keyword laceAdaptClassName	creation export visible | 
					
						
							|  |  |  | syn keyword laceExternal		include_path object makefile | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Operators | 
					
						
							|  |  |  | syn match   laceOperator		"\$" | 
					
						
							|  |  |  | syn match   laceBrackets		"[[\]]" | 
					
						
							|  |  |  | syn match   laceExport			"[{}]" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Constants | 
					
						
							|  |  |  | syn keyword laceBool		true false | 
					
						
							|  |  |  | syn keyword laceBool		True False | 
					
						
							|  |  |  | syn region  laceString		start=+"+ skip=+%"+ end=+"+ contains=laceEscape,laceStringError | 
					
						
							|  |  |  | syn match   laceEscape		contained "%[^/]" | 
					
						
							|  |  |  | syn match   laceEscape		contained "%/\d\+/" | 
					
						
							|  |  |  | syn match   laceEscape		contained "^[ \t]*%" | 
					
						
							|  |  |  | syn match   laceEscape		contained "%[ \t]*$" | 
					
						
							|  |  |  | syn match   laceStringError	contained "%/[^0-9]" | 
					
						
							|  |  |  | syn match   laceStringError	contained "%/\d\+[^0-9/]" | 
					
						
							|  |  |  | syn match   laceStringError	"'\(%[^/]\|%/\d\+/\|[^'%]\)\+'" | 
					
						
							|  |  |  | syn match   laceCharacter	"'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=laceEscape | 
					
						
							|  |  |  | syn match   laceNumber		"-\=\<\d\+\(_\d\+\)*\>" | 
					
						
							|  |  |  | syn match   laceNumber		"\<[01]\+[bB]\>" | 
					
						
							|  |  |  | syn match   laceNumber		"-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\=" | 
					
						
							|  |  |  | syn match   laceNumber		"-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\=" | 
					
						
							|  |  |  | syn match   laceComment		"--.*" contains=laceTodo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn case match | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Case sensitive stuff | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword laceTodo		TODO XXX FIXME | 
					
						
							|  |  |  | syn match	laceClassName	"\<[A-Z][A-Z0-9_]*\>" | 
					
						
							|  |  |  | syn match	laceCluster		"[a-zA-Z][a-zA-Z0-9_]*\s*:" | 
					
						
							|  |  |  | syn match	laceCluster		"[a-zA-Z][a-zA-Z0-9_]*\s*(\s*[a-zA-Z][a-zA-Z0-9_]*\s*)\s*:" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Catch mismatched parentheses | 
					
						
							|  |  |  | syn match laceParenError	")" | 
					
						
							|  |  |  | syn match laceBracketError	"\]" | 
					
						
							|  |  |  | syn region laceGeneric		transparent matchgroup=laceBrackets start="\[" end="\]" contains=ALLBUT,laceBracketError | 
					
						
							|  |  |  | syn region laceParen		transparent start="(" end=")" contains=ALLBUT,laceParenError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Should suffice for even very long strings and expressions | 
					
						
							|  |  |  | syn sync lines=40 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceTopStruct			PreProc | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceOptionClause		Statement | 
					
						
							|  |  |  | hi def link laceOptionMark			Constant | 
					
						
							|  |  |  | hi def link laceClusterProp		Label | 
					
						
							|  |  |  | hi def link laceAdaptClassName		Label | 
					
						
							|  |  |  | hi def link laceExternal			Statement | 
					
						
							|  |  |  | hi def link laceCluster			ModeMsg | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceEscape				Special | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceBool				Boolean | 
					
						
							|  |  |  | hi def link laceString				String | 
					
						
							|  |  |  | hi def link laceCharacter			Character | 
					
						
							|  |  |  | hi def link laceClassName			Type | 
					
						
							|  |  |  | hi def link laceNumber				Number | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceOperator			Special | 
					
						
							|  |  |  | hi def link laceArray				Special | 
					
						
							|  |  |  | hi def link laceExport				Special | 
					
						
							|  |  |  | hi def link laceCreation			Special | 
					
						
							|  |  |  | hi def link laceBrackets			Special | 
					
						
							|  |  |  | hi def link laceConstraint			Special | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceComment			Comment | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link laceError				Error | 
					
						
							|  |  |  | hi def link laceStringError		Error | 
					
						
							|  |  |  | hi def link laceParenError			Error | 
					
						
							|  |  |  | hi def link laceBracketError		Error | 
					
						
							|  |  |  | hi def link laceTodo				Todo | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "lace" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=4 |