Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: S-Lang |
| 3 | " Maintainer: Jan Hlavacek <lahvak@math.ohio-state.edu> |
| 4 | " Last Change: 980216 |
| 5 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 6 | " quit when a syntax file was already loaded |
| 7 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 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. |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 55 | " Only when an item doesn't have highlighting yet |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 56 | |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 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 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 85 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 86 | |
| 87 | let b:current_syntax = "slang" |
| 88 | |
| 89 | " vim: ts=8 |