" Vim syntax file
" Language: ASN.1
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/asn.vim
" Last Change: 2001 Apr 26
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" keyword definitions
syn keyword asnExternal DEFINITIONS BEGIN END IMPORTS EXPORTS FROM
syn match asnExternal "\<IMPLICIT\s\+TAGS\>"
syn match asnExternal "\<EXPLICIT\s\+TAGS\>"
syn keyword asnFieldOption DEFAULT OPTIONAL
syn keyword asnTagModifier IMPLICIT EXPLICIT
syn keyword asnTypeInfo ABSENT PRESENT SIZE UNIVERSAL APPLICATION PRIVATE
syn keyword asnBoolValue TRUE FALSE
syn keyword asnNumber MIN MAX
syn match asnNumber "\<PLUS-INFINITY\>"
syn match asnNumber "\<MINUS-INFINITY\>"
syn keyword asnType INTEGER REAL STRING BIT BOOLEAN OCTET NULL EMBEDDED PDV
syn keyword asnType BMPString IA5String TeletexString GeneralString GraphicString ISO646String NumericString PrintableString T61String UniversalString VideotexString VisibleString
syn keyword asnType ANY DEFINED
syn match asnType "\.\.\."
syn match asnType "OBJECT\s\+IDENTIFIER"
syn match asnType "TYPE-IDENTIFIER"
syn keyword asnType UTF8String
syn keyword asnStructure CHOICE SEQUENCE SET OF ENUMERATED CONSTRAINED BY WITH COMPONENTS CLASS
" Strings and constants
syn match asnSpecial contained "\\\d\d\d\|\\."
syn region asnString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=asnSpecial
syn match asnCharacter "'[^\\]'"
syn match asnSpecialCharacter "'\\.'"
syn match asnNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn match asnLineComment "--.*"
syn match asnLineComment "--.*--"
syn match asnDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 contains=asnType
syn match asnBraces "[{}]"
syn sync ccomment asnComment
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_asn_syn_inits")
if version < 508
let did_asn_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink asnDefinition Function
HiLink asnBraces Function
HiLink asnStructure Statement
HiLink asnBoolValue Boolean
HiLink asnSpecial Special
HiLink asnString String
HiLink asnCharacter Character
HiLink asnSpecialCharacter asnSpecial
HiLink asnNumber asnValue
HiLink asnComment Comment
HiLink asnLineComment asnComment
HiLink asnType Type
HiLink asnTypeInfo PreProc
HiLink asnValue Number
HiLink asnExternal Include
HiLink asnTagModifier Function
HiLink asnFieldOption Type
delcommand HiLink
endif
let b:current_syntax = "asn"
" vim: ts=8
|