xref: /vim-8.2.3635/runtime/syntax/edif.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     EDIF (Electronic Design Interchange Format)
3071d4279SBram Moolenaar" Maintainer:   Artem Zankovich <[email protected]>
4071d4279SBram Moolenaar" Last Change:  Oct 14, 2002
5071d4279SBram Moolenaar"
6071d4279SBram Moolenaar" Supported standarts are:
7071d4279SBram Moolenaar"   ANSI/EIA Standard 548-1988 (EDIF Version 2 0 0)
8071d4279SBram Moolenaar"   IEC 61690-1 (EDIF Version 3 0 0)
9071d4279SBram Moolenaar"   IEC 61690-2 (EDIF Version 4 0 0)
10071d4279SBram Moolenaar
1189bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1289bcfda6SBram Moolenaarif exists("b:current_syntax")
13071d4279SBram Moolenaar  finish
14071d4279SBram Moolenaarendif
15071d4279SBram Moolenaar
16071d4279SBram Moolenaarsetlocal iskeyword=48-57,-,+,A-Z,a-z,_,&
17071d4279SBram Moolenaar
18071d4279SBram Moolenaarsyn region	edifList	matchgroup=Delimiter start="(" end=")" contains=edifList,edifKeyword,edifString,edifNumber
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar" Strings
21071d4279SBram Moolenaarsyn match       edifInStringError    /%/ contained
22071d4279SBram Moolenaarsyn match       edifInString    /%\s*\d\+\s*%/ contained
23071d4279SBram Moolenaarsyn region      edifString      start=/"/ end=/"/ contains=edifInString,edifInStringError contained
24071d4279SBram Moolenaar
25071d4279SBram Moolenaar" Numbers
26071d4279SBram Moolenaarsyn match       edifNumber      "\<[-+]\=[0-9]\+\>"
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" Keywords
29071d4279SBram Moolenaarsyn match       edifKeyword     "(\@<=\s*[a-zA-Z&][a-zA-Z_0-9]*\>" contained
30071d4279SBram Moolenaar
31071d4279SBram Moolenaarsyn match       edifError       ")"
32071d4279SBram Moolenaar
33071d4279SBram Moolenaar" synchronization
34071d4279SBram Moolenaarsyntax sync fromstart
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar" Define the default highlighting.
37071d4279SBram Moolenaar
38*f37506f6SBram Moolenaarhi def link edifInString		SpecialChar
39*f37506f6SBram Moolenaarhi def link edifKeyword		Keyword
40*f37506f6SBram Moolenaarhi def link edifNumber		Number
41*f37506f6SBram Moolenaarhi def link edifInStringError	edifError
42*f37506f6SBram Moolenaarhi def link edifError		Error
43*f37506f6SBram Moolenaarhi def link edifString		String
44071d4279SBram Moolenaar
45071d4279SBram Moolenaarlet b:current_syntax = "edif"
46