blob: 0ed54fa899c8faeda7b2c776f6321d5b9ed041f5 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Virata AConfig Configuration Script
3" Maintainer: Manuel M.H. Stol <mmh.stol@gmx.net>
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:
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020016" quit when a syntax file was already loaded
17if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000018 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200157" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000158
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200159" Sub Links:
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200160hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000171
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200172" Comment Group:
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200173hi def link virataComment Comment
174hi def link virataSpclComment SpecialComment
175hi def link virataInCommentTodo Todo
Bram Moolenaar071d4272004-06-13 20:20:40 +0000176
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200177" Constant Group:
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200178hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000186
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200187" Identifier Group:
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200188hi def link virataIdentError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000189
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200190" PreProc Group:
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200191hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000197
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200198" Directive Group:
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200199hi def link virataStatement Statement
200hi def link virataCfgStatement Statement
201hi def link virataOperator Operator
202hi def link virataDirective Keyword
Bram Moolenaar071d4272004-06-13 20:20:40 +0000203
Bram Moolenaar071d4272004-06-13 20:20:40 +0000204
205let b:current_syntax = "virata"
206
207" vim:ts=8:sw=2:noet: