blob: e90c7e079c279f0b0f672cb26c5ec4acfcc8425b [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
Bram Moolenaarf37506f2016-08-31 22:22:10 +020051hi def link asnDefinition Function
52hi def link asnBraces Function
53hi def link asnStructure Statement
54hi def link asnBoolValue Boolean
55hi def link asnSpecial Special
56hi def link asnString String
57hi def link asnCharacter Character
58hi def link asnSpecialCharacter asnSpecial
59hi def link asnNumber asnValue
60hi def link asnComment Comment
61hi def link asnLineComment asnComment
62hi def link asnType Type
63hi def link asnTypeInfo PreProc
64hi def link asnValue Number
65hi def link asnExternal Include
66hi def link asnTagModifier Function
67hi def link asnFieldOption Type
Bram Moolenaar071d4272004-06-13 20:20:40 +000068
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020069let &cpo = s:cpo_save
70unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +000071let b:current_syntax = "asn"
72
73" vim: ts=8