1" 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: 2012 Oct 05 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12let s:cpo_save = &cpo 13set cpo&vim 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" Only when an item doesn't have highlighting yet 51hi 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 68 69let &cpo = s:cpo_save 70unlet s:cpo_save 71let b:current_syntax = "asn" 72 73" vim: ts=8 74