3 " Maintainer: Claudio Fleiner <claudio@fleiner.com>
4 " URL: http://www.fleiner.com/vim/syntax/asn.vim
5 " Last Change: 2001 Apr 26
7 " For version 5.x: Clear all syntax items
8 " For version 6.x: Quit when a syntax file was already loaded
11 elseif exists("b:current_syntax")
16 syn keyword asnExternal DEFINITIONS BEGIN END IMPORTS EXPORTS FROM
17 syn match asnExternal "\<IMPLICIT\s\+TAGS\>"
18 syn match asnExternal "\<EXPLICIT\s\+TAGS\>"
19 syn keyword asnFieldOption DEFAULT OPTIONAL
20 syn keyword asnTagModifier IMPLICIT EXPLICIT
21 syn keyword asnTypeInfo ABSENT PRESENT SIZE UNIVERSAL APPLICATION PRIVATE
22 syn keyword asnBoolValue TRUE FALSE
23 syn keyword asnNumber MIN MAX
24 syn match asnNumber "\<PLUS-INFINITY\>"
25 syn match asnNumber "\<MINUS-INFINITY\>"
26 syn keyword asnType INTEGER REAL STRING BIT BOOLEAN OCTET NULL EMBEDDED PDV
27 syn keyword asnType BMPString IA5String TeletexString GeneralString GraphicString ISO646String NumericString PrintableString T61String UniversalString VideotexString VisibleString
28 syn keyword asnType ANY DEFINED
29 syn match asnType "\.\.\."
30 syn match asnType "OBJECT\s\+IDENTIFIER"
31 syn match asnType "TYPE-IDENTIFIER"
32 syn keyword asnType UTF8String
33 syn keyword asnStructure CHOICE SEQUENCE SET OF ENUMERATED CONSTRAINED BY WITH COMPONENTS CLASS
35 " Strings and constants
36 syn match asnSpecial contained "\\\d\d\d\|\\."
37 syn region asnString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=asnSpecial
38 syn match asnCharacter "'[^\\]'"
39 syn match asnSpecialCharacter "'\\.'"
40 syn match asnNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
41 syn match asnLineComment "--.*"
42 syn match asnLineComment "--.*--"
44 syn match asnDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 contains=asnType
45 syn match asnBraces "[{}]"
47 syn sync ccomment asnComment
49 " Define the default highlighting.
50 " For version 5.7 and earlier: only when not done already
51 " For version 5.8 and later: only when an item doesn't have highlighting yet
52 if version >= 508 || !exists("did_asn_syn_inits")
54 let did_asn_syn_inits = 1
55 command -nargs=+ HiLink hi link <args>
57 command -nargs=+ HiLink hi def link <args>
59 HiLink asnDefinition Function
60 HiLink asnBraces Function
61 HiLink asnStructure Statement
62 HiLink asnBoolValue Boolean
63 HiLink asnSpecial Special
64 HiLink asnString String
65 HiLink asnCharacter Character
66 HiLink asnSpecialCharacter asnSpecial
67 HiLink asnNumber asnValue
68 HiLink asnComment Comment
69 HiLink asnLineComment asnComment
71 HiLink asnTypeInfo PreProc
72 HiLink asnValue Number
73 HiLink asnExternal Include
74 HiLink asnTagModifier Function
75 HiLink asnFieldOption Type
79 let b:current_syntax = "asn"