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