1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: SNOBOL4 3071d4279SBram Moolenaar" Maintainer: Rafal Sulejman <[email protected]> 4d68071d8SBram Moolenaar" Site: http://rms.republika.pl/vim/syntax/snobol4.vim 5*40962ec9SBram Moolenaar" Last change: : Thu, 25 Jan 2018 14:21:24 +0100 6d68071d8SBram Moolenaar" Changes: 7*40962ec9SBram Moolenaar" - system variables updated for SNOBOL4 2.0+ 88c8de839SBram Moolenaar" - strict snobol4 mode (set snobol4_strict_mode to activate) 98c8de839SBram Moolenaar" - incorrect HL of dots in strings corrected 108c8de839SBram Moolenaar" - incorrect HL of dot-variables in parens corrected 118c8de839SBram Moolenaar" - one character labels weren't displayed correctly. 12d68071d8SBram Moolenaar" - nonexistent Snobol4 keywords displayed as errors. 13071d4279SBram Moolenaar 14*40962ec9SBram Moolenaar" Quit when a syntax file was already loaded 1589bcfda6SBram Moolenaarif exists("b:current_syntax") 16071d4279SBram Moolenaar finish 17071d4279SBram Moolenaarendif 18071d4279SBram Moolenaar 19071d4279SBram Moolenaarsyntax case ignore 208c8de839SBram Moolenaar 218c8de839SBram Moolenaar" Snobol4 keywords 22d68071d8SBram Moolenaarsyn keyword snobol4Keyword any apply arb arbno arg array 23d68071d8SBram Moolenaarsyn keyword snobol4Keyword break 24d68071d8SBram Moolenaarsyn keyword snobol4Keyword char clear code collect convert copy 25d68071d8SBram Moolenaarsyn keyword snobol4Keyword data datatype date define detach differ dump dupl 26d68071d8SBram Moolenaarsyn keyword snobol4Keyword endfile eq eval 27d68071d8SBram Moolenaarsyn keyword snobol4Keyword field 28d68071d8SBram Moolenaarsyn keyword snobol4Keyword ge gt ident 29d68071d8SBram Moolenaarsyn keyword snobol4Keyword input integer item 30d68071d8SBram Moolenaarsyn keyword snobol4Keyword le len lgt local lpad lt 31d68071d8SBram Moolenaarsyn keyword snobol4Keyword ne notany 32d68071d8SBram Moolenaarsyn keyword snobol4Keyword opsyn output 33d68071d8SBram Moolenaarsyn keyword snobol4Keyword pos prototype 348c8de839SBram Moolenaarsyn keyword snobol4Keyword remdr replace rpad rpos rtab rewind 35d68071d8SBram Moolenaarsyn keyword snobol4Keyword size span stoptr 36d68071d8SBram Moolenaarsyn keyword snobol4Keyword tab table time trace trim terminal 37d68071d8SBram Moolenaarsyn keyword snobol4Keyword unload 38d68071d8SBram Moolenaarsyn keyword snobol4Keyword value 39071d4279SBram Moolenaar 408c8de839SBram Moolenaar" CSNOBOL keywords 418c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword breakx 428c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword char chop 438c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword date delete 448c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword exp 458c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword freeze function 468c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword host 478c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword io_findunit 488c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword label lpad leq lge lle llt lne log 498c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword ord 508c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword reverse rpad rsort rename 518c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword serv_listen sset set sort sqrt substr 528c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword thaw 538c8de839SBram Moolenaarsyn keyword snobol4ExtKeyword vdiffer 548c8de839SBram Moolenaar 558c8de839SBram Moolenaarsyn region snobol4String matchgroup=Quote start=+"+ end=+"+ 568c8de839SBram Moolenaarsyn region snobol4String matchgroup=Quote start=+'+ end=+'+ 578c8de839SBram Moolenaarsyn match snobol4BogusStatement "^-[^ ][^ ]*" 588c8de839SBram Moolenaarsyn match snobol4Statement "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)" 598c8de839SBram Moolenaarsyn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1 60d68071d8SBram Moolenaarsyn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError 61071d4279SBram Moolenaarsyn match snobol4Number "\<\d*\(\.\d\d*\)*\>" 62d68071d8SBram Moolenaarsyn match snobol4BogusSysVar "&\w\{1,}" 63*40962ec9SBram Moolenaarsyn 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\)\>" 648c8de839SBram Moolenaarsyn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)" 658c8de839SBram Moolenaarsyn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*" 668c8de839SBram Moolenaarsyn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)" 678c8de839SBram Moolenaar 68071d4279SBram Moolenaar" Parens matching 69071d4279SBram Moolenaarsyn cluster snobol4ParenGroup contains=snobol4ParenError 70071d4279SBram Moolenaarsyn region snobol4Paren transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket 71071d4279SBram Moolenaarsyn match snobol4ParenError display "[\])]" 72071d4279SBram Moolenaarsyn match snobol4ErrInParen display contained "[\]{}]\|<%\|%>" 73071d4279SBram Moolenaarsyn region snobol4Bracket transparent start='\[\|<:' end=']\|:>' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInParen 74d68071d8SBram Moolenaarsyn match snobol4ErrInBracket display contained "[){}]\|<%\|%>" 75071d4279SBram Moolenaar 76071d4279SBram Moolenaar" optional shell shebang line 778c8de839SBram Moolenaar" syn match snobol4Comment "^\#\!.*$" 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar" Define the default highlighting. 8089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 81071d4279SBram Moolenaar 82f37506f6SBram Moolenaarhi def link snobol4Constant Constant 83f37506f6SBram Moolenaarhi def link snobol4Label Label 84f37506f6SBram Moolenaarhi def link snobol4Goto Repeat 85f37506f6SBram Moolenaarhi def link snobol4Conditional Conditional 86f37506f6SBram Moolenaarhi def link snobol4Repeat Repeat 87f37506f6SBram Moolenaarhi def link snobol4Number Number 88f37506f6SBram Moolenaarhi def link snobol4Error Error 89f37506f6SBram Moolenaarhi def link snobol4Statement PreProc 90f37506f6SBram Moolenaarhi def link snobol4BogusStatement snobol4Error 91f37506f6SBram Moolenaarhi def link snobol4String String 92f37506f6SBram Moolenaarhi def link snobol4Comment Comment 93f37506f6SBram Moolenaarhi def link snobol4Special Special 94f37506f6SBram Moolenaarhi def link snobol4Todo Todo 95f37506f6SBram Moolenaarhi def link snobol4Keyword Keyword 96f37506f6SBram Moolenaarhi def link snobol4Function Function 97f37506f6SBram Moolenaarhi def link snobol4MathsOperator Operator 98f37506f6SBram Moolenaarhi def link snobol4ParenError snobol4Error 99f37506f6SBram Moolenaarhi def link snobol4ErrInParen snobol4Error 100f37506f6SBram Moolenaarhi def link snobol4ErrInBracket snobol4Error 101f37506f6SBram Moolenaarhi def link snobol4SysVar Keyword 102f37506f6SBram Moolenaarhi def link snobol4BogusSysVar snobol4Error 1038c8de839SBram Moolenaarif exists("snobol4_strict_mode") 104f37506f6SBram Moolenaar hi def link snobol4ExtSysVar WarningMsg 105f37506f6SBram Moolenaar hi def link snobol4ExtKeyword WarningMsg 1068c8de839SBram Moolenaarelse 107f37506f6SBram Moolenaar hi def link snobol4ExtSysVar snobol4SysVar 108f37506f6SBram Moolenaar hi def link snobol4ExtKeyword snobol4Keyword 1098c8de839SBram Moolenaarendif 110071d4279SBram Moolenaar 111071d4279SBram Moolenaar 112071d4279SBram Moolenaarlet b:current_syntax = "snobol4" 113071d4279SBram Moolenaar" vim: ts=8 114