vim/syntax/yml2.vim
author Claudio Luck <claudio.luck@pep.foundation>
Tue, 04 Sep 2018 17:09:43 +0200
changeset 46 41d7a6c0e7f3
parent 2 4b65c6f36f21
permissions -rw-r--r--
Add a README.
0
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     1
" Vim syntax file
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     2
" Language:	YML2 generating C
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     3
" Maintainer:	Volker Birk <vb@dingens.org>
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     4
" Last Change:	2016 July 10
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     5
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     6
" Quit when a (custom) syntax file was already loaded
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     7
if exists("b:current_syntax")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     8
  finish
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
     9
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    10
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    11
" A bunch of useful YSLT keywords
1
23daf9d318ac adding decl supplements
Volker Birk <vb@pep-project.org>
parents: 0
diff changeset
    12
syn keyword	cStatement	include in decl is alias operator document def param const output value indent all text with withIndent element attrib processing number sort import message debug assert operator goto break return continue asm
0
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    13
syn keyword	cLabel		stylesheet estylesheet textstylesheet tstylesheet template function case default
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    14
syn keyword	cConditional	choose when otherwise if else switch
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    15
syn keyword	cRepeat		for foreach apply while do
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    16
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    17
syn keyword	cTodo		contained TODO FIXME XXX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    18
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    19
" It's easy to accidentally add a space after a backslash that was intended
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    20
" for line continuation.  Some compilers allow it, which makes it
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    21
" unpredicatable and should be avoided.
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    22
syn match	cBadContinuation contained "\\\s\+$"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    23
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    24
" cCommentGroup allows adding matches for special things in comments
2
4b65c6f36f21 correcting ??? problems in parantheses
Volker Birk <vb@pep.foundation>
parents: 1
diff changeset
    25
syn cluster	cCommentGroup	contains=cTodo,cBadContinuation,ymlStringComment
0
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    26
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    27
" String and Character constants
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    28
" Highlight special characters (those which have a backslash) differently
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    29
syn match	cSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    30
if !exists("c_no_utf")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    31
  syn match	cSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    32
endif
2
4b65c6f36f21 correcting ??? problems in parantheses
Volker Birk <vb@pep.foundation>
parents: 1
diff changeset
    33
syn region	ymlString		start=+L\=«+ end=+»+ contains=cSpecial,@Spell
4b65c6f36f21 correcting ??? problems in parantheses
Volker Birk <vb@pep.foundation>
parents: 1
diff changeset
    34
syn region	ymlStringComment		start=+L\=«+ end=+»+ contains=cSpecial,@Spell
0
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    35
if exists("c_no_cformat")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    36
  syn region	cString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell,ymlString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    37
  " cCppString: same as cString, but ends at end of line
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    38
  syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,@Spell,ymlString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    39
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    40
  if !exists("c_no_c99") " ISO C99
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    41
    syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    42
  else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    43
    syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    44
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    45
  syn match	cFormat		display "%%" contained
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    46
  syn region	cString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell,ymlString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    47
  " cCppString: same as cString, but ends at end of line
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    48
  syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell,ymlString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    49
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    50
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    51
syn match	cCharacter	"L\='[^\\]'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    52
syn match	cCharacter	"L'[^']*'" contains=cSpecial
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    53
if exists("c_gnu")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    54
  syn match	cSpecialError	"L\='\\[^'\"?\\abefnrtv]'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    55
  syn match	cSpecialCharacter "L\='\\['\"?\\abefnrtv]'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    56
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    57
  syn match	cSpecialError	"L\='\\[^'\"?\\abfnrtv]'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    58
  syn match	cSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    59
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    60
syn match	cSpecialCharacter display "L\='\\\o\{1,3}'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    61
syn match	cSpecialCharacter display "'\\x\x\{1,2}'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    62
syn match	cSpecialCharacter display "L'\\x\x\+'"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    63
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    64
"when wanted, highlight trailing white space
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    65
if exists("c_space_errors")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    66
  if !exists("c_no_trail_space_error")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    67
    syn match	cSpaceError	display excludenl "\s\+$"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    68
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    69
  if !exists("c_no_tab_space_error")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    70
    syn match	cSpaceError	display " \+\t"me=e-1
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    71
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    72
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    73
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    74
" This should be before cErrInParen to avoid problems with #define ({ xxx })
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    75
if exists("c_curly_error")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    76
  syntax match cCurlyError "}"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    77
  syntax region	cBlock		start="{" end="}" contains=ALLBUT,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    78
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    79
  syntax region	cBlock		start="{" end="}" transparent fold
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    80
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    81
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    82
"catch errors caused by wrong parenthesis and brackets
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    83
" also accept <% for {, %> for }, <: for [ and :> for ] (C99)
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    84
" But avoid matching <::.
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    85
syn cluster	cParenGroup	contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    86
if exists("c_no_curly_error")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    87
  syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    88
  " cCppParen: same as cParen but ends at end-of-line; used in cDefine
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    89
  syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    90
  syn match	cParenError	display ")"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    91
  syn match	cErrInParen	display contained "^[{}]\|^<%\|^%>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    92
elseif exists("c_no_bracket_error")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    93
  syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    94
  " cCppParen: same as cParen but ends at end-of-line; used in cDefine
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    95
  syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    96
  syn match	cParenError	display ")"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    97
  syn match	cErrInParen	display contained "[{}]\|<%\|%>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    98
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
    99
  syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   100
  " cCppParen: same as cParen but ends at end-of-line; used in cDefine
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   101
  syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   102
  syn match	cParenError	display "[\])]"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   103
  syn match	cErrInParen	display contained "[\]{}]\|<%\|%>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   104
  syn region	cBracket	transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   105
  " cCppBracket: same as cParen but ends at end-of-line; used in cDefine
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   106
  syn region	cCppBracket	transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   107
  syn match	cErrInBracket	display contained "[);{}]\|<%\|%>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   108
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   109
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   110
"integer number, or floating point number without a dot and with "f".
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   111
syn case ignore
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   112
syn match	cNumbers	display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   113
" Same, but without octal error (for comments)
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   114
syn match	cNumbersCom	display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   115
syn match	cNumber		display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   116
"hex number
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   117
syn match	cNumber		display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   118
" Flag the first zero of an octal number as something special
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   119
syn match	cOctal		display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   120
syn match	cOctalZero	display contained "\<0"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   121
syn match	cFloat		display contained "\d\+f"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   122
"floating point number, with dot, optional exponent
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   123
syn match	cFloat		display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   124
"floating point number, starting with a dot, optional exponent
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   125
syn match	cFloat		display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   126
"floating point number, without dot, with exponent
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   127
syn match	cFloat		display contained "\d\+e[-+]\=\d\+[fl]\=\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   128
if !exists("c_no_c99")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   129
  "hexadecimal floating point number, optional leading digits, with dot, with exponent
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   130
  syn match	cFloat		display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   131
  "hexadecimal floating point number, with leading digits, optional dot, with exponent
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   132
  syn match	cFloat		display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   133
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   134
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   135
" flag an octal number with wrong digits
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   136
syn match	cOctalError	display contained "0\o*[89]\d*"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   137
syn case match
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   138
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   139
if exists("c_comment_strings")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   140
  " A comment can contain cString, cCharacter and cNumber.
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   141
  " But a "*/" inside a cString in a cComment DOES end the comment!  So we
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   142
  " need to use a special type of cString: cCommentString, which also ends on
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   143
  " "*/", and sees a "*" at the start of the line as comment again.
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   144
  " Unfortunately this doesn't very well work for // type of comments :-(
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   145
  syntax match	cCommentSkip	contained "^\s*\*\($\|\s\+\)"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   146
  syntax region cCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   147
  syntax region cComment2String	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   148
  syntax region  cCommentL	start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   149
  if exists("c_no_comment_fold")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   150
    " Use "extend" here to have preprocessor lines not terminate halfway a
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   151
    " comment.
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   152
    syntax region cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell extend
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   153
  else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   154
    syntax region cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell fold extend
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   155
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   156
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   157
  syn region	cCommentL	start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cSpaceError,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   158
  if exists("c_no_comment_fold")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   159
    syn region	cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,@Spell extend
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   160
  else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   161
    syn region	cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,@Spell fold extend
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   162
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   163
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   164
" keep a // comment separately, it terminates a preproc. conditional
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   165
syntax match	cCommentError	display "\*/"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   166
syntax match	cCommentStartError display "/\*"me=e-1 contained
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   167
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   168
syn keyword	cOperator	sizeof
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   169
if exists("c_gnu")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   170
  syn keyword	cStatement	__asm__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   171
  syn keyword	cOperator	typeof __real__ __imag__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   172
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   173
syn keyword	cType		int long short char void
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   174
syn keyword	cType		signed unsigned float double
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   175
if !exists("c_no_ansi") || exists("c_ansi_typedefs")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   176
  syn keyword   cType		size_t ssize_t off_t wchar_t ptrdiff_t sig_atomic_t fpos_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   177
  syn keyword   cType		clock_t time_t va_list jmp_buf FILE DIR div_t ldiv_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   178
  syn keyword   cType		mbstate_t wctrans_t wint_t wctype_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   179
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   180
if !exists("c_no_c99") " ISO C99
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   181
  syn keyword	cType		bool complex
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   182
  syn keyword	cType		int8_t int16_t int32_t int64_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   183
  syn keyword	cType		uint8_t uint16_t uint32_t uint64_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   184
  syn keyword	cType		int_least8_t int_least16_t int_least32_t int_least64_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   185
  syn keyword	cType		uint_least8_t uint_least16_t uint_least32_t uint_least64_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   186
  syn keyword	cType		int_fast8_t int_fast16_t int_fast32_t int_fast64_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   187
  syn keyword	cType		uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   188
  syn keyword	cType		intptr_t uintptr_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   189
  syn keyword	cType		intmax_t uintmax_t
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   190
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   191
if exists("c_gnu")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   192
  syn keyword	cType		__label__ __complex__ __volatile__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   193
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   194
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   195
syn keyword	cStructure	struct union enum typedef
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   196
syn keyword	cStorageClass	static register auto volatile extern const
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   197
if exists("c_gnu")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   198
  syn keyword	cStorageClass	inline __attribute__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   199
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   200
if !exists("c_no_c99")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   201
  syn keyword	cStorageClass	inline restrict
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   202
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   203
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   204
if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   205
  if exists("c_gnu")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   206
    syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ __func__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   207
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   208
  syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   209
  syn keyword cConstant __STDC_VERSION__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   210
  syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   211
  syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   212
  syn keyword cConstant CHAR_MIN INT_MIN LONG_MIN SHRT_MIN
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   213
  syn keyword cConstant CHAR_MAX INT_MAX LONG_MAX SHRT_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   214
  syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   215
  syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   216
  if !exists("c_no_c99")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   217
    syn keyword cConstant __func__
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   218
    syn keyword cConstant LLONG_MIN LLONG_MAX ULLONG_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   219
    syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   220
    syn keyword cConstant INT8_MAX INT16_MAX INT32_MAX INT64_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   221
    syn keyword cConstant UINT8_MAX UINT16_MAX UINT32_MAX UINT64_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   222
    syn keyword cConstant INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   223
    syn keyword cConstant INT_LEAST8_MAX INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   224
    syn keyword cConstant UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX UINT_LEAST64_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   225
    syn keyword cConstant INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   226
    syn keyword cConstant INT_FAST8_MAX INT_FAST16_MAX INT_FAST32_MAX INT_FAST64_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   227
    syn keyword cConstant UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   228
    syn keyword cConstant INTPTR_MIN INTPTR_MAX UINTPTR_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   229
    syn keyword cConstant INTMAX_MIN INTMAX_MAX UINTMAX_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   230
    syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   231
    syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   232
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   233
  syn keyword cConstant FLT_RADIX FLT_ROUNDS
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   234
  syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   235
  syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   236
  syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   237
  syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   238
  syn keyword cConstant FLT_MIN_10_EXP FLT_MAX_10_EXP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   239
  syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   240
  syn keyword cConstant DBL_MIN_10_EXP DBL_MAX_10_EXP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   241
  syn keyword cConstant LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   242
  syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   243
  syn keyword cConstant HUGE_VAL CLOCKS_PER_SEC NULL
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   244
  syn keyword cConstant LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   245
  syn keyword cConstant LC_NUMERIC LC_TIME
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   246
  syn keyword cConstant SIG_DFL SIG_ERR SIG_IGN
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   247
  syn keyword cConstant SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   248
  " Add POSIX signals as well...
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   249
  syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   250
  syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   251
  syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   252
  syn keyword cConstant SIGUSR1 SIGUSR2
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   253
  syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   254
  syn keyword cConstant FOPEN_MAX FILENAME_MAX L_tmpnam
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   255
  syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   256
  syn keyword cConstant TMP_MAX stderr stdin stdout
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   257
  syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   258
  " Add POSIX errors as well
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   259
  syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   260
  syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   261
  syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   262
  syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   263
  syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   264
  syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   265
  syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   266
  " math.h
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   267
  syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   268
  syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   269
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   270
if !exists("c_no_c99") " ISO C99
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   271
  syn keyword cConstant true false
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   272
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   273
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   274
" Accept %: for # (C99)
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   275
syn region      cPreCondit      start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$"  keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   276
syn match	cPreCondit	display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   277
if !exists("c_no_if0")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   278
  if !exists("c_no_if0_fold")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   279
    syn region	cCppOut		start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2 fold
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   280
  else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   281
    syn region	cCppOut		start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   282
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   283
  syn region	cCppOut2	contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cSpaceError,cCppSkip
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   284
  syn region	cCppSkip	contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   285
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   286
syn region	cIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=ymlString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   287
syn match	cIncluded	display contained "<[^>]*>" contains=ymlString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   288
syn match	cInclude	display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   289
"syn match cLineSkip	"\\$"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   290
syn cluster	cPreProcGroup	contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   291
syn region	cDefine		start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   292
syn region	cPreProc	start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   293
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   294
" Highlight User Labels
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   295
syn cluster	cMultiGroup	contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   296
syn region	cMulti		transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   297
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   298
syn cluster	cLabelGroup	contains=cUserLabel
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   299
syn match	cUserCont	display "^\s*\I\i*\s*:$" contains=@cLabelGroup
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   300
syn match	cUserCont	display ";\s*\I\i*\s*:$" contains=@cLabelGroup
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   301
syn match	cUserCont	display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   302
syn match	cUserCont	display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   303
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   304
syn match	cUserLabel	display "\I\i*" contained
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   305
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   306
" Avoid recognizing most bitfields as labels
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   307
syn match	cBitField	display "^\s*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   308
syn match	cBitField	display ";\s*\I\i*\s*:\s*[1-9]"me=e-1 contains=cType
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   309
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   310
if exists("c_minlines")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   311
  let b:c_minlines = c_minlines
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   312
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   313
  if !exists("c_no_if0")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   314
    let b:c_minlines = 50	" #if 0 constructs can be long
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   315
  else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   316
    let b:c_minlines = 15	" mostly for () constructs
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   317
  endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   318
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   319
if exists("c_curly_error")
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   320
  syn sync fromstart
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   321
else
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   322
  exec "syn sync ccomment cComment minlines=" . b:c_minlines
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   323
endif
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   324
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   325
" Define the default highlighting.
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   326
" Only used when an item doesn't have highlighting yet
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   327
hi def link cFormat		cSpecial
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   328
hi def link cCppString		cString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   329
hi def link cCommentL		cComment
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   330
hi def link cCommentStart	cComment
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   331
hi def link cLabel		Label
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   332
hi def link cUserLabel		Label
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   333
hi def link cConditional	Conditional
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   334
hi def link cRepeat		Repeat
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   335
hi def link cCharacter		Character
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   336
hi def link cSpecialCharacter	cSpecial
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   337
hi def link cNumber		Number
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   338
hi def link cOctal		Number
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   339
hi def link cOctalZero		PreProc	 " link this to Error if you want
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   340
hi def link cFloat		Float
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   341
hi def link cOctalError		cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   342
hi def link cParenError		cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   343
hi def link cErrInParen		cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   344
hi def link cErrInBracket	cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   345
hi def link cCommentError	cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   346
hi def link cCommentStartError	cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   347
hi def link cSpaceError		cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   348
hi def link cSpecialError	cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   349
hi def link cCurlyError		cError
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   350
hi def link cOperator		Operator
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   351
hi def link cStructure		Structure
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   352
hi def link cStorageClass	StorageClass
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   353
hi def link cInclude		Include
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   354
hi def link cPreProc		PreProc
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   355
hi def link cDefine		Macro
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   356
hi def link cIncluded		cString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   357
hi def link cError		Error
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   358
hi def link cStatement		Statement
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   359
hi def link cPreCondit		PreCondit
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   360
hi def link cType		Type
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   361
hi def link cConstant		Constant
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   362
hi def link cCommentString	cString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   363
hi def link cComment2String	cString
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   364
hi def link cCommentSkip	cComment
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   365
hi def link cString		String
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   366
hi def link cComment		Comment
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   367
hi def link cSpecial		SpecialChar
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   368
hi def link cTodo		Todo
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   369
hi def link cBadContinuation	Error
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   370
hi def link cCppSkip		cCppOut
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   371
hi def link cCppOut2		cCppOut
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   372
hi def link cCppOut		Comment
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   373
hi def link ymlString   Operator
2
4b65c6f36f21 correcting ??? problems in parantheses
Volker Birk <vb@pep.foundation>
parents: 1
diff changeset
   374
hi def link ymlStringComment   Operator
0
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   375
let b:current_syntax = "yml2"
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   376
76005e62091d initial commit
Volker Birk <vb@pep-project.org>
parents:
diff changeset
   377
" vim: ts=8