xref: /vim-8.2.3635/runtime/syntax/slice.vim (revision f37506f6)
1" Vim syntax file
2" Language:	Slice (ZeroC's Specification Language for Ice)
3" Maintainer:	Morel Bodin <[email protected]>
4" Last Change:	2005 Dec 03
5
6" quit when a syntax file was already loaded
7if exists("b:current_syntax")
8  finish
9endif
10
11" The Slice keywords
12
13syn keyword sliceType	    bool byte double float int long short string void
14syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
15syn keyword sliceConstruct  class enum exception dictionary interface module LocalObject Object sequence struct
16syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
17syn keyword sliceBoolean    false true
18
19" Include directives
20syn region  sliceIncluded    display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
21syn match   sliceIncluded   display contained "<[^>]*>"
22syn match   sliceInclude    display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded
23
24" Double-include guards
25syn region  sliceGuard      start="^#\(define\|ifndef\|endif\)" end="$"
26
27" Strings and characters
28syn region sliceString		start=+"+  end=+"+
29
30" Numbers (shamelessly ripped from c.vim, only slightly modified)
31"integer number, or floating point number without a dot and with "f".
32syn case ignore
33syn match   sliceNumbers    display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal
34syn match   sliceNumber     display contained "\d\+"
35"hex number
36syn match   sliceNumber     display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
37" Flag the first zero of an octal number as something special
38syn match   sliceOctal      display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero
39syn match   sliceOctalZero  display contained "\<0"
40syn match   sliceFloat      display contained "\d\+f"
41"floating point number, with dot, optional exponent
42syn match   sliceFloat      display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
43"floating point number, starting with a dot, optional exponent
44syn match   sliceFloat      display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
45"floating point number, without dot, with exponent
46syn match   sliceFloat      display contained "\d\+e[-+]\=\d\+[fl]\=\>"
47" flag an octal number with wrong digits
48syn case match
49
50
51" Comments
52syn region sliceComment    start="/\*"  end="\*/"
53syn match sliceComment	"//.*"
54
55syn sync ccomment sliceComment
56
57" Define the default highlighting.
58" Only when an item doesn't have highlighting yet
59
60hi def link sliceComment	Comment
61hi def link sliceConstruct	Keyword
62hi def link sliceType	Type
63hi def link sliceString	String
64hi def link sliceIncluded	String
65hi def link sliceQualifier	Keyword
66hi def link sliceInclude	Include
67hi def link sliceGuard	PreProc
68hi def link sliceBoolean	Boolean
69hi def link sliceFloat	Number
70hi def link sliceNumber	Number
71hi def link sliceOctal	Number
72hi def link sliceOctalZero	Special
73hi def link sliceNumberError Special
74
75
76let b:current_syntax = "slice"
77
78" vim: ts=8
79