snobol4.vim (5334B)
1 " Vim syntax file 2 " Language: SNOBOL4 3 " Maintainer: Rafal Sulejman <rms@poczta.onet.pl> 4 " Site: http://rms.republika.pl/vim/syntax/snobol4.vim 5 " Last change: : Thu, 25 Jan 2018 14:21:24 +0100 6 " Changes: 7 " - system variables updated for SNOBOL4 2.0+ 8 " - strict snobol4 mode (set snobol4_strict_mode to activate) 9 " - incorrect HL of dots in strings corrected 10 " - incorrect HL of dot-variables in parens corrected 11 " - one character labels weren't displayed correctly. 12 " - nonexistent Snobol4 keywords displayed as errors. 13 14 " Quit when a syntax file was already loaded 15 if exists("b:current_syntax") 16 finish 17 endif 18 19 syntax case ignore 20 21 " Snobol4 keywords 22 syn keyword snobol4Keyword any apply arb arbno arg array 23 syn keyword snobol4Keyword break 24 syn keyword snobol4Keyword char clear code collect convert copy 25 syn keyword snobol4Keyword data datatype date define detach differ dump dupl 26 syn keyword snobol4Keyword endfile eq eval 27 syn keyword snobol4Keyword field 28 syn keyword snobol4Keyword ge gt ident 29 syn keyword snobol4Keyword input integer item 30 syn keyword snobol4Keyword le len lgt local lpad lt 31 syn keyword snobol4Keyword ne notany 32 syn keyword snobol4Keyword opsyn output 33 syn keyword snobol4Keyword pos prototype 34 syn keyword snobol4Keyword remdr replace rpad rpos rtab rewind 35 syn keyword snobol4Keyword size span stoptr 36 syn keyword snobol4Keyword tab table time trace trim terminal 37 syn keyword snobol4Keyword unload 38 syn keyword snobol4Keyword value 39 40 " CSNOBOL keywords 41 syn keyword snobol4ExtKeyword breakx 42 syn keyword snobol4ExtKeyword char chop 43 syn keyword snobol4ExtKeyword date delete 44 syn keyword snobol4ExtKeyword exp 45 syn keyword snobol4ExtKeyword freeze function 46 syn keyword snobol4ExtKeyword host 47 syn keyword snobol4ExtKeyword io_findunit 48 syn keyword snobol4ExtKeyword label lpad leq lge lle llt lne log 49 syn keyword snobol4ExtKeyword ord 50 syn keyword snobol4ExtKeyword reverse rpad rsort rename 51 syn keyword snobol4ExtKeyword serv_listen sset set sort sqrt substr 52 syn keyword snobol4ExtKeyword thaw 53 syn keyword snobol4ExtKeyword vdiffer 54 55 syn region snobol4String matchgroup=Quote start=+"+ end=+"+ 56 syn region snobol4String matchgroup=Quote start=+'+ end=+'+ 57 syn match snobol4BogusStatement "^-[^ ][^ ]*" 58 syn match snobol4Statement "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)" 59 syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1 60 syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError 61 syn match snobol4Number "\<\d*\(\.\d\d*\)*\>" 62 syn match snobol4BogusSysVar "&\w\{1,}" 63 syn match snobol4SysVar "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>" 64 syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)" 65 syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*" 66 syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)" 67 68 " Parens matching 69 syn cluster snobol4ParenGroup contains=snobol4ParenError 70 syn region snobol4Paren transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket 71 syn match snobol4ParenError display "[\])]" 72 syn match snobol4ErrInParen display contained "[\]{}]\|<%\|%>" 73 syn region snobol4Bracket transparent start='\[\|<:' end=']\|:>' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInParen 74 syn match snobol4ErrInBracket display contained "[){}]\|<%\|%>" 75 76 " optional shell shebang line 77 " syn match snobol4Comment "^\#\!.*$" 78 79 " Define the default highlighting. 80 " Only when an item doesn't have highlighting yet 81 82 hi def link snobol4Constant Constant 83 hi def link snobol4Label Label 84 hi def link snobol4Goto Repeat 85 hi def link snobol4Conditional Conditional 86 hi def link snobol4Repeat Repeat 87 hi def link snobol4Number Number 88 hi def link snobol4Error Error 89 hi def link snobol4Statement PreProc 90 hi def link snobol4BogusStatement snobol4Error 91 hi def link snobol4String String 92 hi def link snobol4Comment Comment 93 hi def link snobol4Special Special 94 hi def link snobol4Todo Todo 95 hi def link snobol4Keyword Keyword 96 hi def link snobol4Function Function 97 hi def link snobol4MathsOperator Operator 98 hi def link snobol4ParenError snobol4Error 99 hi def link snobol4ErrInParen snobol4Error 100 hi def link snobol4ErrInBracket snobol4Error 101 hi def link snobol4SysVar Keyword 102 hi def link snobol4BogusSysVar snobol4Error 103 if exists("snobol4_strict_mode") 104 hi def link snobol4ExtSysVar WarningMsg 105 hi def link snobol4ExtKeyword WarningMsg 106 else 107 hi def link snobol4ExtSysVar snobol4SysVar 108 hi def link snobol4ExtKeyword snobol4Keyword 109 endif 110 111 112 let b:current_syntax = "snobol4" 113 " vim: ts=8