xref: /vim-8.2.3635/runtime/syntax/virata.vim (revision cf2d8dee)
1" Vim syntax file
2" Language:	Virata AConfig Configuration Script
3" Maintainer:	Manuel M.H. Stol	<[email protected]>
4" Last Change:	2003 May 11
5" Vim URL:	http://www.vim.org/lang.html
6" Virata URL:	http://www.globespanvirata.com/
7
8
9" Virata AConfig Configuration Script syntax
10"  Can be detected by: 1) Extension .hw, .sw, .pkg and .module
11"		       2) The file name pattern "mk.*\.cfg"
12"		       3) The string "Virata" in the first 5 lines
13
14
15" Setup Syntax:
16if version < 600
17  "  Clear old syntax settings
18  syn clear
19elseif exists("b:current_syntax")
20  finish
21endif
22"  Virata syntax is case insensitive (mostly)
23syn case ignore
24
25
26
27" Comments:
28" Virata comments start with %, but % is not a keyword character
29syn region  virataComment	start="^%" start="\s%"lc=1 keepend end="$" contains=@virataGrpInComments
30syn region  virataSpclComment	start="^%%" start="\s%%"lc=1 keepend end="$" contains=@virataGrpInComments
31syn keyword virataInCommentTodo	contained TODO FIXME XXX[XXXXX] REVIEW TBD
32syn cluster virataGrpInComments	contains=virataInCommentTodo
33syn cluster virataGrpComments	contains=@virataGrpInComments,virataComment,virataSpclComment
34
35
36" Constants:
37syn match   virataStringError	+["]+
38syn region  virataString	start=+"+ skip=+\(\\\\\|\\"\)+ end=+"+ oneline contains=virataSpclCharError,virataSpclChar,@virataGrpDefSubsts
39syn match   virataCharacter	+'[^']\{-}'+ contains=virataSpclCharError,virataSpclChar
40syn match   virataSpclChar	contained +\\\(x\x\+\|\o\{1,3}\|['\"?\\abefnrtv]\)+
41syn match   virataNumberError	"\<\d\{-1,}\I\{-1,}\>"
42syn match   virataNumberError	"\<0x\x*\X\x*\>"
43syn match   virataNumberError	"\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
44syn match   virataDecNumber	"\<\d\+U\=L\=\>"
45syn match   virataHexNumber	"\<0x\x\+U\=L\=\>"
46syn match   virataSizeNumber	"\<\d\+[BKM]\>"he=e-1
47syn match   virataSizeNumber	"\<\d\+[KM]B\>"he=e-2
48syn cluster virataGrpNumbers	contains=virataNumberError,virataDecNumber,virataHexNumber,virataSizeNumber
49syn cluster virataGrpConstants	contains=@virataGrpNumbers,virataStringError,virataString,virataCharacter,virataSpclChar
50
51
52" Identifiers:
53syn match   virataIdentError	contained "\<\D\S*\>"
54syn match   virataIdentifier	contained "\<\I\i\{-}\(\-\i\{-1,}\)*\>" contains=@virataGrpDefSubsts
55syn match   virataFileIdent	contained "\F\f*" contains=@virataGrpDefSubsts
56syn cluster virataGrpIdents	contains=virataIdentifier,virataIdentError
57syn cluster virataGrpFileIdents	contains=virataFileIdent,virataIdentError
58
59
60" Statements:
61syn match   virataStatement	"^\s*Config\(\(/Kernel\)\=\.\(hs\=\|s\)\)\=\>"
62syn match   virataStatement	"^\s*Config\s\+\I\i\{-}\(\-\i\{-1,}\)*\.\(hs\=\|s\)\>"
63syn match   virataStatement	"^\s*Make\.\I\i\{-}\(\-\i\{-1}\)*\>" skipwhite nextgroup=@virataGrpIdents
64syn match   virataStatement	"^\s*Make\.c\(at\)\=++\s"me=e-1 skipwhite nextgroup=@virataGrpIdents
65syn match   virataStatement	"^\s*\(Architecture\|GetEnv\|Reserved\|\(Un\)\=Define\|Version\)\>" skipwhite nextgroup=@virataGrpIdents
66syn match   virataStatement	"^\s*\(Hardware\|ModuleSource\|\(Release\)\=Path\|Software\)\>" skipwhite nextgroup=@virataGrpFileIdents
67syn match   virataStatement	"^\s*\(DefaultPri\|Hydrogen\)\>" skipwhite nextgroup=virataDecNumber,virataNumberError
68syn match   virataStatement	"^\s*\(NoInit\|PCI\|SysLink\)\>"
69syn match   virataStatement	"^\s*Allow\s\+\(ModuleConfig\)\>"
70syn match   virataStatement	"^\s*NoWarn\s\+\(Export\|Parse\=able\|Relative]\)\>"
71syn match   virataStatement	"^\s*Debug\s\+O\(ff\|n\)\>"
72
73" Import (Package <exec>|Module <name> from <dir>)
74syn region  virataImportDef	transparent matchgroup=virataStatement start="^\s*Import\>" keepend end="$" contains=virataInImport,virataModuleDef,virataNumberError,virataStringError,@virataGrpDefSubsts
75syn match   virataInImport	contained "\<\(Module\|Package\|from\)\>" skipwhite nextgroup=@virataGrpFileIdents
76" Export (Header <header file>|SLibrary <obj file>)
77syn region  virataExportDef	transparent matchgroup=virataStatement start="^\s*Export\>" keepend end="$" contains=virataInExport,virataNumberError,virataStringError,@virataGrpDefSubsts
78syn match   virataInExport	contained "\<\(Header\|[SU]Library\)\>" skipwhite nextgroup=@virataGrpFileIdents
79" Process <name> is <dir/exec>
80syn region  virataProcessDef	transparent matchgroup=virataStatement start="^\s*Process\>" keepend end="$" contains=virataInProcess,virataInExec,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
81syn match   virataInProcess	contained "\<is\>"
82" Instance <name> of <module>
83syn region  virataInstanceDef	transparent matchgroup=virataStatement start="^\s*Instance\>" keepend end="$" contains=virataInInstance,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents
84syn match   virataInInstance	contained "\<of\>"
85" Module <name> from <dir>
86syn region  virataModuleDef	transparent matchgroup=virataStatement start="^\s*\(Package\|Module\)\>" keepend end="$" contains=virataInModule,virataNumberError,virataStringError,@virataGrpDefSubsts
87syn match   virataInModule	contained "^\s*Package\>"hs=e-7 skipwhite nextgroup=@virataGrpIdents
88syn match   virataInModule	contained "^\s*Module\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents
89syn match   virataInModule	contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
90" Colour <name> from <dir>
91syn region  virataColourDef	transparent matchgroup=virataStatement start="^\s*Colour\>" keepend end="$" contains=virataInColour,virataNumberError,virataStringError,@virataGrpDefSubsts
92syn match   virataInColour	contained "^\s*Colour\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents
93syn match   virataInColour	contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents
94" Link {<link cmds>}
95" Object {Executable [<ExecOptions>]}
96syn match   virataStatement	"^\s*\(Link\|Object\)"
97" Executable <name> [<ExecOptions>]
98syn region  virataExecDef	transparent matchgroup=virataStatement start="^\s*Executable\>" keepend end="$" contains=virataInExec,virataNumberError,virataStringError
99syn match   virataInExec	contained "^\s*Executable\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
100syn match   virataInExec	contained "\<\(epilogue\|pro\(logue\|cess\)\|qhandler\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents
101syn match   virataInExec	contained "\<\(priority\|stack\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpNumbers
102" Message <name> {<msg format>}
103" MessageId <number>
104syn match   virataStatement	"^\s*Message\(Id\)\=\>" skipwhite nextgroup=@virataGrpNumbers
105" MakeRule <make suffix=file> {<make cmds>}
106syn region  virataMakeDef	transparent matchgroup=virataStatement start="^\s*MakeRule\>" keepend end="$" contains=virataInMake,@virataGrpDefSubsts
107syn case match
108syn match   virataInMake	contained "\<N\>"
109syn case ignore
110" (Append|Edit|Copy)Rule <make suffix=file> <subst cmd>
111syn match   virataStatement	"^\s*\(Append\|Copy\|Edit\)Rule\>"
112" AlterRules in <file> <subst cmd>
113syn region  virataAlterDef	transparent matchgroup=virataStatement start="^\s*AlterRules\>" keepend end="$" contains=virataInAlter,@virataGrpDefSubsts
114syn match   virataInAlter	contained "\<in\>" skipwhite nextgroup=@virataGrpIdents
115" Clustering
116syn cluster virataGrpInStatmnts	contains=virataInImport,virataInExport,virataInExec,virataInProcess,virataInAlter,virataInInstance,virataInModule,virataInColour
117syn cluster virataGrpStatements	contains=@virataGrpInStatmnts,virataStatement,virataImportDef,virataExportDef,virataExecDef,virataProcessDef,virataAlterDef,virataInstanceDef,virataModuleDef,virataColourDef
118
119
120" MkFlash.Cfg File Statements:
121syn region  virataCfgFileDef	transparent matchgroup=virataCfgStatement start="^\s*Dir\>" start="^\s*\a\{-}File\>" start="^\s*OutputFile\d\d\=\>" start="^\s*\a\w\{-}[NP]PFile\>" keepend end="$" contains=@virataGrpFileIdents
122syn region  virataCfgSizeDef	transparent matchgroup=virataCfgStatement start="^\s*\a\{-}Size\>" start="^\s*ConfigInfo\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts,virataIdentError
123syn region  virataCfgNumberDef	transparent matchgroup=virataCfgStatement start="^\s*FlashchipNum\(b\(er\=\)\=\)\=\>" start="^\s*Granularity\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts
124syn region  virataCfgMacAddrDef	transparent matchgroup=virataCfgStatement start="^\s*MacAddress\>" keepend end="$" contains=virataNumberError,virataStringError,virataIdentError,virataInMacAddr,@virataGrpDefSubsts
125syn match   virataInMacAddr	contained "\x[:]\x\{1,2}\>"lc=2
126syn match   virataInMacAddr	contained "\s\x\{1,2}[:]\x"lc=1,me=e-1,he=e-2 nextgroup=virataInMacAddr
127syn match   virataCfgStatement	"^\s*Target\>" skipwhite nextgroup=@virataGrpIdents
128syn cluster virataGrpCfgs	contains=virataCfgStatement,virataCfgFileDef,virataCfgSizeDef,virataCfgNumberDef,virataCfgMacAddrDef,virataInMacAddr
129
130
131
132" PreProcessor Instructions:
133"  Defines
134syn match   virataDefine	"^\s*\(Un\)\=Set\>" skipwhite nextgroup=@virataGrpIdents
135syn match   virataInclude	"^\s*Include\>" skipwhite nextgroup=@virataGrpFileIdents
136syn match   virataDefSubstError	"[^$]\$"lc=1
137syn match   virataDefSubstError	"\$\(\w\|{\(.\{-}}\)\=\)"
138syn case match
139syn match   virataDefSubst	"\$\(\d\|[DINORS]\|{\I\i\{-}\(\-\i\{-1,}\)*}\)"
140syn case ignore
141"  Conditionals
142syn cluster virataGrpCntnPreCon	contains=ALLBUT,@virataGrpInComments,@virataGrpFileIdents,@virataGrpInStatmnts
143syn region  virataPreConDef	transparent matchgroup=virataPreCondit start="^\s*If\>" end="^\s*Endif\>" contains=@virataGrpCntnPreCon
144syn match   virataPreCondit	contained "^\s*Else\(\s\+If\)\=\>"
145syn region  virataPreConDef	transparent matchgroup=virataPreCondit start="^\s*ForEach\>" end="^\s*Done\>" contains=@virataGrpCntnPreCon
146"  Pre-Processors
147syn region  virataPreProc	start="^\s*Error\>" start="^\s*Warning\>" oneline end="$" contains=@virataGrpConstants,@virataGrpDefSubsts
148syn cluster virataGrpDefSubsts	contains=virataDefSubstError,virataDefSubst
149syn cluster virataGrpPreProcs	contains=@virataGrpDefSubsts,virataDefine,virataInclude,virataPreConDef,virataPreCondit,virataPreProc
150
151
152" Synchronize Syntax:
153syn sync clear
154syn sync minlines=50		"for multiple region nesting
155
156
157
158" Define the default highlighting.
159" For version 5.7 and earlier: only when not done already
160" For version 5.8 and later  : only when an item doesn't have highlighting yet
161if version >= 508 || !exists("did_virata_syntax_inits")
162  if version < 508
163    let did_virata_syntax_inits = 1
164    command -nargs=+ HiLink hi link <args>
165  else
166    command -nargs=+ HiLink hi def link <args>
167  endif
168
169  " Sub Links:
170  HiLink virataDefSubstError	virataPreProcError
171  HiLink virataDefSubst		virataPreProc
172  HiLink virataInAlter		virataOperator
173  HiLink virataInExec		virataOperator
174  HiLink virataInExport		virataOperator
175  HiLink virataInImport		virataOperator
176  HiLink virataInInstance	virataOperator
177  HiLink virataInMake		virataOperator
178  HiLink virataInModule		virataOperator
179  HiLink virataInProcess	virataOperator
180  HiLink virataInMacAddr	virataHexNumber
181
182  " Comment Group:
183  HiLink virataComment		Comment
184  HiLink virataSpclComment	SpecialComment
185  HiLink virataInCommentTodo	Todo
186
187  " Constant Group:
188  HiLink virataString		String
189  HiLink virataStringError	Error
190  HiLink virataCharacter	Character
191  HiLink virataSpclChar		Special
192  HiLink virataDecNumber	Number
193  HiLink virataHexNumber	Number
194  HiLink virataSizeNumber	Number
195  HiLink virataNumberError	Error
196
197  " Identifier Group:
198  HiLink virataIdentError	Error
199
200  " PreProc Group:
201  HiLink virataPreProc		PreProc
202  HiLink virataDefine		Define
203  HiLink virataInclude		Include
204  HiLink virataPreCondit	PreCondit
205  HiLink virataPreProcError	Error
206  HiLink virataPreProcWarn	Todo
207
208  " Directive Group:
209  HiLink virataStatement	Statement
210  HiLink virataCfgStatement	Statement
211  HiLink virataOperator		Operator
212  HiLink virataDirective	Keyword
213
214  delcommand HiLink
215endif
216
217let b:current_syntax = "virata"
218
219" vim:ts=8:sw=2:noet:
220