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 |
| 56 | command -nargs=+ HiLink hi def link <args> |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 57 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 58 | HiLink slangDefinition Type |
| 59 | HiLink slangBlock slangDefinition |
| 60 | HiLink slangLabel Label |
| 61 | HiLink slangConditional Conditional |
| 62 | HiLink slangRepeat Repeat |
| 63 | HiLink slangCharacter Character |
| 64 | HiLink slangFloat Float |
| 65 | HiLink slangImaginary Float |
| 66 | HiLink slangDecimal slangNumber |
| 67 | HiLink slangOctal slangNumber |
| 68 | HiLink slangHex slangNumber |
| 69 | HiLink slangNumber Number |
| 70 | HiLink slangParenError Error |
| 71 | HiLink slangOctalError Error |
| 72 | HiLink slangOperator Operator |
| 73 | HiLink slangStructure Structure |
| 74 | HiLink slangInclude Include |
| 75 | HiLink slangPreCondit PreCondit |
| 76 | HiLink slangError Error |
| 77 | HiLink slangStatement Statement |
| 78 | HiLink slangType Type |
| 79 | HiLink slangString String |
| 80 | HiLink slangConstant Constant |
| 81 | HiLink slangRangeArray slangConstant |
| 82 | HiLink slangComment Comment |
| 83 | HiLink slangSpecial SpecialChar |
| 84 | HiLink slangTodo Todo |
| 85 | HiLink slangDelim Delimiter |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 86 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 87 | delcommand HiLink |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 88 | |
| 89 | let b:current_syntax = "slang" |
| 90 | |
| 91 | " vim: ts=8 |