mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	S-Lang
 | |
| " Maintainer:	Jan Hlavacek <lahvak@math.ohio-state.edu>
 | |
| " Last Change:	980216
 | |
| 
 | |
| " quit when a syntax file was already loaded
 | |
| if 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.
 | |
| " Only when an item doesn't have highlighting yet
 | |
| 
 | |
| hi def link slangDefinition	Type
 | |
| hi def link slangBlock		slangDefinition
 | |
| hi def link slangLabel		Label
 | |
| hi def link slangConditional	Conditional
 | |
| hi def link slangRepeat		Repeat
 | |
| hi def link slangCharacter	Character
 | |
| hi def link slangFloat		Float
 | |
| hi def link slangImaginary	Float
 | |
| hi def link slangDecimal		slangNumber
 | |
| hi def link slangOctal		slangNumber
 | |
| hi def link slangHex		slangNumber
 | |
| hi def link slangNumber		Number
 | |
| hi def link slangParenError	Error
 | |
| hi def link slangOctalError	Error
 | |
| hi def link slangOperator		Operator
 | |
| hi def link slangStructure	Structure
 | |
| hi def link slangInclude		Include
 | |
| hi def link slangPreCondit	PreCondit
 | |
| hi def link slangError		Error
 | |
| hi def link slangStatement	Statement
 | |
| hi def link slangType		Type
 | |
| hi def link slangString		String
 | |
| hi def link slangConstant		Constant
 | |
| hi def link slangRangeArray	slangConstant
 | |
| hi def link slangComment		Comment
 | |
| hi def link slangSpecial		SpecialChar
 | |
| hi def link slangTodo		Todo
 | |
| hi def link slangDelim		Delimiter
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "slang"
 | |
| 
 | |
| " vim: ts=8
 |