xref: /vim-8.2.3635/runtime/syntax/asn.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	ASN.1
3071d4279SBram Moolenaar" Maintainer:	Claudio Fleiner <[email protected]>
4071d4279SBram Moolenaar" URL:		http://www.fleiner.com/vim/syntax/asn.vim
50c5fa7d7SBram Moolenaar" Last Change:	2012 Oct 05
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
120c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
130c5fa7d7SBram Moolenaarset cpo&vim
140c5fa7d7SBram Moolenaar
15071d4279SBram Moolenaar" keyword definitions
16071d4279SBram Moolenaarsyn keyword asnExternal		DEFINITIONS BEGIN END IMPORTS EXPORTS FROM
17071d4279SBram Moolenaarsyn match   asnExternal		"\<IMPLICIT\s\+TAGS\>"
18071d4279SBram Moolenaarsyn match   asnExternal		"\<EXPLICIT\s\+TAGS\>"
19071d4279SBram Moolenaarsyn keyword asnFieldOption	DEFAULT OPTIONAL
20071d4279SBram Moolenaarsyn keyword asnTagModifier	IMPLICIT EXPLICIT
21071d4279SBram Moolenaarsyn keyword asnTypeInfo		ABSENT PRESENT SIZE UNIVERSAL APPLICATION PRIVATE
22071d4279SBram Moolenaarsyn keyword asnBoolValue	TRUE FALSE
23071d4279SBram Moolenaarsyn keyword asnNumber		MIN MAX
24071d4279SBram Moolenaarsyn match   asnNumber		"\<PLUS-INFINITY\>"
25071d4279SBram Moolenaarsyn match   asnNumber		"\<MINUS-INFINITY\>"
26071d4279SBram Moolenaarsyn keyword asnType		INTEGER REAL STRING BIT BOOLEAN OCTET NULL EMBEDDED PDV
27071d4279SBram Moolenaarsyn keyword asnType		BMPString IA5String TeletexString GeneralString GraphicString ISO646String NumericString PrintableString T61String UniversalString VideotexString VisibleString
28071d4279SBram Moolenaarsyn keyword asnType		ANY DEFINED
29071d4279SBram Moolenaarsyn match   asnType		"\.\.\."
30071d4279SBram Moolenaarsyn match   asnType		"OBJECT\s\+IDENTIFIER"
31071d4279SBram Moolenaarsyn match   asnType		"TYPE-IDENTIFIER"
32071d4279SBram Moolenaarsyn keyword asnType		UTF8String
33071d4279SBram Moolenaarsyn keyword asnStructure	CHOICE SEQUENCE SET OF ENUMERATED CONSTRAINED BY WITH COMPONENTS CLASS
34071d4279SBram Moolenaar
35071d4279SBram Moolenaar" Strings and constants
36071d4279SBram Moolenaarsyn match   asnSpecial		contained "\\\d\d\d\|\\."
37071d4279SBram Moolenaarsyn region  asnString		start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=asnSpecial
38071d4279SBram Moolenaarsyn match   asnCharacter	"'[^\\]'"
39071d4279SBram Moolenaarsyn match   asnSpecialCharacter "'\\.'"
40071d4279SBram Moolenaarsyn match   asnNumber		"-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
41071d4279SBram Moolenaarsyn match   asnLineComment	"--.*"
42071d4279SBram Moolenaarsyn match   asnLineComment	"--.*--"
43071d4279SBram Moolenaar
44071d4279SBram Moolenaarsyn match asnDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 contains=asnType
45071d4279SBram Moolenaarsyn match asnBraces     "[{}]"
46071d4279SBram Moolenaar
47071d4279SBram Moolenaarsyn sync ccomment asnComment
48071d4279SBram Moolenaar
49071d4279SBram Moolenaar" Define the default highlighting.
5089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
51*f37506f6SBram Moolenaarhi def link asnDefinition	Function
52*f37506f6SBram Moolenaarhi def link asnBraces		Function
53*f37506f6SBram Moolenaarhi def link asnStructure	Statement
54*f37506f6SBram Moolenaarhi def link asnBoolValue	Boolean
55*f37506f6SBram Moolenaarhi def link asnSpecial		Special
56*f37506f6SBram Moolenaarhi def link asnString		String
57*f37506f6SBram Moolenaarhi def link asnCharacter	Character
58*f37506f6SBram Moolenaarhi def link asnSpecialCharacter	asnSpecial
59*f37506f6SBram Moolenaarhi def link asnNumber		asnValue
60*f37506f6SBram Moolenaarhi def link asnComment		Comment
61*f37506f6SBram Moolenaarhi def link asnLineComment	asnComment
62*f37506f6SBram Moolenaarhi def link asnType		Type
63*f37506f6SBram Moolenaarhi def link asnTypeInfo		PreProc
64*f37506f6SBram Moolenaarhi def link asnValue		Number
65*f37506f6SBram Moolenaarhi def link asnExternal		Include
66*f37506f6SBram Moolenaarhi def link asnTagModifier	Function
67*f37506f6SBram Moolenaarhi def link asnFieldOption	Type
68071d4279SBram Moolenaar
690c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
700c5fa7d7SBram Moolenaarunlet s:cpo_save
71071d4279SBram Moolenaarlet b:current_syntax = "asn"
72071d4279SBram Moolenaar
73071d4279SBram Moolenaar" vim: ts=8
74