summaryrefslogtreecommitdiff
path: root/runtime/syntax/asn.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/asn.vim')
-rw-r--r--runtime/syntax/asn.vim81
1 files changed, 81 insertions, 0 deletions
diff --git a/runtime/syntax/asn.vim b/runtime/syntax/asn.vim
new file mode 100644
index 000000000..9fc3d2468
--- /dev/null
+++ b/runtime/syntax/asn.vim
@@ -0,0 +1,81 @@
+" 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