xref: /vim-8.2.3635/runtime/syntax/snobol4.vim (revision 40962ec9)
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