forked from aniani/vim
		
	
		
			
	
	
		
			103 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	S-Lang | ||
|  | " Maintainer:	Jan Hlavacek <lahvak@math.ohio-state.edu> | ||
|  | " Last Change:	980216 | ||
|  | 
 | ||
|  | " For version 5.x: Clear all syntax items | ||
|  | " For version 6.x: Quit when a syntax file was already loaded | ||
|  | if version < 600 | ||
|  |   syntax clear | ||
|  | elseif exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | syn keyword slangStatement	break return continue EXECUTE_ERROR_BLOCK | ||
|  | syn match slangStatement	"\<X_USER_BLOCK[0-4]\>" | ||
|  | syn keyword slangLabel		case | ||
|  | syn keyword slangConditional	!if if else switch | ||
|  | syn keyword slangRepeat		while for _for loop do forever | ||
|  | syn keyword slangDefinition	define typedef variable struct | ||
|  | syn keyword slangOperator	or and andelse orelse shr shl xor not | ||
|  | syn keyword slangBlock		EXIT_BLOCK ERROR_BLOCK | ||
|  | syn match slangBlock		"\<USER_BLOCK[0-4]\>" | ||
|  | syn keyword slangConstant	NULL | ||
|  | syn keyword slangType		Integer_Type Double_Type Complex_Type String_Type Struct_Type Ref_Type Null_Type Array_Type DataType_Type | ||
|  | 
 | ||
|  | syn match slangOctal		"\<0\d\+\>" contains=slangOctalError | ||
|  | syn match slangOctalError	"[89]\+" contained | ||
|  | syn match slangHex		"\<0[xX][0-9A-Fa-f]*\>" | ||
|  | syn match slangDecimal		"\<[1-9]\d*\>" | ||
|  | syn match slangFloat		"\<\d\+\." | ||
|  | syn match slangFloat		"\<\d\+\.\d\+\([Ee][-+]\=\d\+\)\=\>" | ||
|  | syn match slangFloat		"\<\d\+\.[Ee][-+]\=\d\+\>" | ||
|  | syn match slangFloat		"\<\d\+[Ee][-+]\=\d\+\>" | ||
|  | syn match slangFloat		"\.\d\+\([Ee][-+]\=\d\+\)\=\>" | ||
|  | syn match slangImaginary	"\.\d\+\([Ee][-+]\=\d*\)\=[ij]\>" | ||
|  | syn match slangImaginary	"\<\d\+\(\.\d*\)\=\([Ee][-+]\=\d\+\)\=[ij]\>" | ||
|  | 
 | ||
|  | syn region slangString oneline start='"' end='"' skip='\\"' | ||
|  | syn match slangCharacter	"'[^\\]'" | ||
|  | syn match slangCharacter	"'\\.'" | ||
|  | syn match slangCharacter	"'\\[0-7]\{1,3}'" | ||
|  | syn match slangCharacter	"'\\d\d\{1,3}'" | ||
|  | syn match slangCharacter	"'\\x[0-7a-fA-F]\{1,2}'" | ||
|  | 
 | ||
|  | syn match slangDelim		"[][{};:,]" | ||
|  | syn match slangOperator		"[-%+/&*=<>|!~^@]" | ||
|  | 
 | ||
|  | "catch errors caused by wrong parenthesis | ||
|  | syn region slangParen	matchgroup=slangDelim transparent start='(' end=')' contains=ALLBUT,slangParenError | ||
|  | syn match slangParenError	")" | ||
|  | 
 | ||
|  | syn match slangComment		"%.*$" | ||
|  | syn keyword slangOperator	sizeof | ||
|  | 
 | ||
|  | syn region slangPreCondit start="^\s*#\s*\(ifdef\>\|ifndef\>\|iftrue\>\|ifnfalse\>\|iffalse\>\|ifntrue\>\|if\$\|ifn\$\|\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=cComment,slangString,slangCharacter,slangNumber | ||
|  | 
 | ||
|  | " 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_slang_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_slang_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink slangDefinition	Type | ||
|  |   HiLink slangBlock		slangDefinition | ||
|  |   HiLink slangLabel		Label | ||
|  |   HiLink slangConditional	Conditional | ||
|  |   HiLink slangRepeat		Repeat | ||
|  |   HiLink slangCharacter	Character | ||
|  |   HiLink slangFloat		Float | ||
|  |   HiLink slangImaginary	Float | ||
|  |   HiLink slangDecimal		slangNumber | ||
|  |   HiLink slangOctal		slangNumber | ||
|  |   HiLink slangHex		slangNumber | ||
|  |   HiLink slangNumber		Number | ||
|  |   HiLink slangParenError	Error | ||
|  |   HiLink slangOctalError	Error | ||
|  |   HiLink slangOperator		Operator | ||
|  |   HiLink slangStructure	Structure | ||
|  |   HiLink slangInclude		Include | ||
|  |   HiLink slangPreCondit	PreCondit | ||
|  |   HiLink slangError		Error | ||
|  |   HiLink slangStatement	Statement | ||
|  |   HiLink slangType		Type | ||
|  |   HiLink slangString		String | ||
|  |   HiLink slangConstant		Constant | ||
|  |   HiLink slangRangeArray	slangConstant | ||
|  |   HiLink slangComment		Comment | ||
|  |   HiLink slangSpecial		SpecialChar | ||
|  |   HiLink slangTodo		Todo | ||
|  |   HiLink slangDelim		Delimiter | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "slang" | ||
|  | 
 | ||
|  | " vim: ts=8 |