blob: 9fc3d2468296874526e087d0052dff37d98550b0 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: ASN.1
3" Maintainer: Claudio Fleiner <claudio@fleiner.com>
4" URL: http://www.fleiner.com/vim/syntax/asn.vim
5" Last Change: 2001 Apr 26
6
7" For version 5.x: Clear all syntax items
8" For version 6.x: Quit when a syntax file was already loaded
9if version < 600
10 syntax clear
11elseif exists("b:current_syntax")
12 finish
13endif
14
15" keyword definitions
16syn keyword asnExternal DEFINITIONS BEGIN END IMPORTS EXPORTS FROM
17syn match asnExternal "\<IMPLICIT\s\+TAGS\>"
18syn match asnExternal "\<EXPLICIT\s\+TAGS\>"
19syn keyword asnFieldOption DEFAULT OPTIONAL
20syn keyword asnTagModifier IMPLICIT EXPLICIT
21syn keyword asnTypeInfo ABSENT PRESENT SIZE UNIVERSAL APPLICATION PRIVATE
22syn keyword asnBoolValue TRUE FALSE
23syn keyword asnNumber MIN MAX
24syn match asnNumber "\<PLUS-INFINITY\>"
25syn match asnNumber "\<MINUS-INFINITY\>"
26syn keyword asnType INTEGER REAL STRING BIT BOOLEAN OCTET NULL EMBEDDED PDV
27syn keyword asnType BMPString IA5String TeletexString GeneralString GraphicString ISO646String NumericString PrintableString T61String UniversalString VideotexString VisibleString
28syn keyword asnType ANY DEFINED
29syn match asnType "\.\.\."
30syn match asnType "OBJECT\s\+IDENTIFIER"
31syn match asnType "TYPE-IDENTIFIER"
32syn keyword asnType UTF8String
33syn keyword asnStructure CHOICE SEQUENCE SET OF ENUMERATED CONSTRAINED BY WITH COMPONENTS CLASS
34
35" Strings and constants
36syn match asnSpecial contained "\\\d\d\d\|\\."
37syn region asnString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=asnSpecial
38syn match asnCharacter "'[^\\]'"
39syn match asnSpecialCharacter "'\\.'"
40syn match asnNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
41syn match asnLineComment "--.*"
42syn match asnLineComment "--.*--"
43
44syn match asnDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 contains=asnType
45syn match asnBraces "[{}]"
46
47syn sync ccomment asnComment
48
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
52if version >= 508 || !exists("did_asn_syn_inits")
53 if version < 508
54 let did_asn_syn_inits = 1
55 command -nargs=+ HiLink hi link <args>
56 else
57 command -nargs=+ HiLink hi def link <args>
58 endif
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
70 HiLink asnType Type
71 HiLink asnTypeInfo PreProc
72 HiLink asnValue Number
73 HiLink asnExternal Include
74 HiLink asnTagModifier Function
75 HiLink asnFieldOption Type
76 delcommand HiLink
77endif
78
79let b:current_syntax = "asn"
80
81" vim: ts=8