slang.vim (3302B)
1 " Vim syntax file 2 " Language: S-Lang 3 " Maintainer: Jan Hlavacek <lahvak@math.ohio-state.edu> 4 " Last Change: 980216 5 6 " quit when a syntax file was already loaded 7 if exists("b:current_syntax") 8 finish 9 endif 10 11 syn keyword slangStatement break return continue EXECUTE_ERROR_BLOCK 12 syn match slangStatement "\<X_USER_BLOCK[0-4]\>" 13 syn keyword slangLabel case 14 syn keyword slangConditional !if if else switch 15 syn keyword slangRepeat while for _for loop do forever 16 syn keyword slangDefinition define typedef variable struct 17 syn keyword slangOperator or and andelse orelse shr shl xor not 18 syn keyword slangBlock EXIT_BLOCK ERROR_BLOCK 19 syn match slangBlock "\<USER_BLOCK[0-4]\>" 20 syn keyword slangConstant NULL 21 syn keyword slangType Integer_Type Double_Type Complex_Type String_Type Struct_Type Ref_Type Null_Type Array_Type DataType_Type 22 23 syn match slangOctal "\<0\d\+\>" contains=slangOctalError 24 syn match slangOctalError "[89]\+" contained 25 syn match slangHex "\<0[xX][0-9A-Fa-f]*\>" 26 syn match slangDecimal "\<[1-9]\d*\>" 27 syn match slangFloat "\<\d\+\." 28 syn match slangFloat "\<\d\+\.\d\+\([Ee][-+]\=\d\+\)\=\>" 29 syn match slangFloat "\<\d\+\.[Ee][-+]\=\d\+\>" 30 syn match slangFloat "\<\d\+[Ee][-+]\=\d\+\>" 31 syn match slangFloat "\.\d\+\([Ee][-+]\=\d\+\)\=\>" 32 syn match slangImaginary "\.\d\+\([Ee][-+]\=\d*\)\=[ij]\>" 33 syn match slangImaginary "\<\d\+\(\.\d*\)\=\([Ee][-+]\=\d\+\)\=[ij]\>" 34 35 syn region slangString oneline start='"' end='"' skip='\\"' 36 syn match slangCharacter "'[^\\]'" 37 syn match slangCharacter "'\\.'" 38 syn match slangCharacter "'\\[0-7]\{1,3}'" 39 syn match slangCharacter "'\\d\d\{1,3}'" 40 syn match slangCharacter "'\\x[0-7a-fA-F]\{1,2}'" 41 42 syn match slangDelim "[][{};:,]" 43 syn match slangOperator "[-%+/&*=<>|!~^@]" 44 45 "catch errors caused by wrong parenthesis 46 syn region slangParen matchgroup=slangDelim transparent start='(' end=')' contains=ALLBUT,slangParenError 47 syn match slangParenError ")" 48 49 syn match slangComment "%.*$" 50 syn keyword slangOperator sizeof 51 52 syn region slangPreCondit start="^\s*#\s*\(ifdef\>\|ifndef\>\|iftrue\>\|ifnfalse\>\|iffalse\>\|ifntrue\>\|if\$\|ifn\$\|\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=cComment,slangString,slangCharacter,slangNumber 53 54 " Define the default highlighting. 55 " Only when an item doesn't have highlighting yet 56 57 hi def link slangDefinition Type 58 hi def link slangBlock slangDefinition 59 hi def link slangLabel Label 60 hi def link slangConditional Conditional 61 hi def link slangRepeat Repeat 62 hi def link slangCharacter Character 63 hi def link slangFloat Float 64 hi def link slangImaginary Float 65 hi def link slangDecimal slangNumber 66 hi def link slangOctal slangNumber 67 hi def link slangHex slangNumber 68 hi def link slangNumber Number 69 hi def link slangParenError Error 70 hi def link slangOctalError Error 71 hi def link slangOperator Operator 72 hi def link slangStructure Structure 73 hi def link slangInclude Include 74 hi def link slangPreCondit PreCondit 75 hi def link slangError Error 76 hi def link slangStatement Statement 77 hi def link slangType Type 78 hi def link slangString String 79 hi def link slangConstant Constant 80 hi def link slangRangeArray slangConstant 81 hi def link slangComment Comment 82 hi def link slangSpecial SpecialChar 83 hi def link slangTodo Todo 84 hi def link slangDelim Delimiter 85 86 87 let b:current_syntax = "slang" 88 89 " vim: ts=8