blob: 8b553e884c5cbfc7e580769d61bf73ecc69ff301 [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
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02005" Last Change: 2012 Oct 05
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02007" quit when a syntax file was already loaded
8if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 finish
10endif
11
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020012let s:cpo_save = &cpo
13set cpo&vim
14
Bram Moolenaar071d4272004-06-13 20:20:40 +000015" 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020050" Only when an item doesn't have highlighting yet
51command -nargs=+ HiLink hi def link <args>
52HiLink asnDefinition Function
53HiLink asnBraces Function
54HiLink asnStructure Statement
55HiLink asnBoolValue Boolean
56HiLink asnSpecial Special
57HiLink asnString String
58HiLink asnCharacter Character
59HiLink asnSpecialCharacter asnSpecial
60HiLink asnNumber asnValue
61HiLink asnComment Comment
62HiLink asnLineComment asnComment
63HiLink asnType Type
64HiLink asnTypeInfo PreProc
65HiLink asnValue Number
66HiLink asnExternal Include
67HiLink asnTagModifier Function
68HiLink asnFieldOption Type
69delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000070
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020071let &cpo = s:cpo_save
72unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000073let b:current_syntax = "asn"
74
75" vim: ts=8