1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Virata AConfig Configuration Script 3071d4279SBram Moolenaar" Maintainer: Manuel M.H. Stol <[email protected]> 4071d4279SBram Moolenaar" Last Change: 2003 May 11 5071d4279SBram Moolenaar" Vim URL: http://www.vim.org/lang.html 6071d4279SBram Moolenaar" Virata URL: http://www.globespanvirata.com/ 7071d4279SBram Moolenaar 8071d4279SBram Moolenaar 9071d4279SBram Moolenaar" Virata AConfig Configuration Script syntax 10071d4279SBram Moolenaar" Can be detected by: 1) Extension .hw, .sw, .pkg and .module 11071d4279SBram Moolenaar" 2) The file name pattern "mk.*\.cfg" 12071d4279SBram Moolenaar" 3) The string "Virata" in the first 5 lines 13071d4279SBram Moolenaar 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" Setup Syntax: 1689bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1789bcfda6SBram Moolenaarif exists("b:current_syntax") 18071d4279SBram Moolenaar finish 19071d4279SBram Moolenaarendif 20071d4279SBram Moolenaar" Virata syntax is case insensitive (mostly) 21071d4279SBram Moolenaarsyn case ignore 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar 24071d4279SBram Moolenaar 25071d4279SBram Moolenaar" Comments: 26071d4279SBram Moolenaar" Virata comments start with %, but % is not a keyword character 27071d4279SBram Moolenaarsyn region virataComment start="^%" start="\s%"lc=1 keepend end="$" contains=@virataGrpInComments 28071d4279SBram Moolenaarsyn region virataSpclComment start="^%%" start="\s%%"lc=1 keepend end="$" contains=@virataGrpInComments 29071d4279SBram Moolenaarsyn keyword virataInCommentTodo contained TODO FIXME XXX[XXXXX] REVIEW TBD 30071d4279SBram Moolenaarsyn cluster virataGrpInComments contains=virataInCommentTodo 31071d4279SBram Moolenaarsyn cluster virataGrpComments contains=@virataGrpInComments,virataComment,virataSpclComment 32071d4279SBram Moolenaar 33071d4279SBram Moolenaar 34071d4279SBram Moolenaar" Constants: 35071d4279SBram Moolenaarsyn match virataStringError +["]+ 36071d4279SBram Moolenaarsyn region virataString start=+"+ skip=+\(\\\\\|\\"\)+ end=+"+ oneline contains=virataSpclCharError,virataSpclChar,@virataGrpDefSubsts 37071d4279SBram Moolenaarsyn match virataCharacter +'[^']\{-}'+ contains=virataSpclCharError,virataSpclChar 38071d4279SBram Moolenaarsyn match virataSpclChar contained +\\\(x\x\+\|\o\{1,3}\|['\"?\\abefnrtv]\)+ 39071d4279SBram Moolenaarsyn match virataNumberError "\<\d\{-1,}\I\{-1,}\>" 40071d4279SBram Moolenaarsyn match virataNumberError "\<0x\x*\X\x*\>" 41071d4279SBram Moolenaarsyn match virataNumberError "\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>" 42071d4279SBram Moolenaarsyn match virataDecNumber "\<\d\+U\=L\=\>" 43071d4279SBram Moolenaarsyn match virataHexNumber "\<0x\x\+U\=L\=\>" 44071d4279SBram Moolenaarsyn match virataSizeNumber "\<\d\+[BKM]\>"he=e-1 45071d4279SBram Moolenaarsyn match virataSizeNumber "\<\d\+[KM]B\>"he=e-2 46071d4279SBram Moolenaarsyn cluster virataGrpNumbers contains=virataNumberError,virataDecNumber,virataHexNumber,virataSizeNumber 47071d4279SBram Moolenaarsyn cluster virataGrpConstants contains=@virataGrpNumbers,virataStringError,virataString,virataCharacter,virataSpclChar 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar" Identifiers: 51071d4279SBram Moolenaarsyn match virataIdentError contained "\<\D\S*\>" 52071d4279SBram Moolenaarsyn match virataIdentifier contained "\<\I\i\{-}\(\-\i\{-1,}\)*\>" contains=@virataGrpDefSubsts 53071d4279SBram Moolenaarsyn match virataFileIdent contained "\F\f*" contains=@virataGrpDefSubsts 54071d4279SBram Moolenaarsyn cluster virataGrpIdents contains=virataIdentifier,virataIdentError 55071d4279SBram Moolenaarsyn cluster virataGrpFileIdents contains=virataFileIdent,virataIdentError 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar 58071d4279SBram Moolenaar" Statements: 59071d4279SBram Moolenaarsyn match virataStatement "^\s*Config\(\(/Kernel\)\=\.\(hs\=\|s\)\)\=\>" 60071d4279SBram Moolenaarsyn match virataStatement "^\s*Config\s\+\I\i\{-}\(\-\i\{-1,}\)*\.\(hs\=\|s\)\>" 61071d4279SBram Moolenaarsyn match virataStatement "^\s*Make\.\I\i\{-}\(\-\i\{-1}\)*\>" skipwhite nextgroup=@virataGrpIdents 62071d4279SBram Moolenaarsyn match virataStatement "^\s*Make\.c\(at\)\=++\s"me=e-1 skipwhite nextgroup=@virataGrpIdents 63071d4279SBram Moolenaarsyn match virataStatement "^\s*\(Architecture\|GetEnv\|Reserved\|\(Un\)\=Define\|Version\)\>" skipwhite nextgroup=@virataGrpIdents 64071d4279SBram Moolenaarsyn match virataStatement "^\s*\(Hardware\|ModuleSource\|\(Release\)\=Path\|Software\)\>" skipwhite nextgroup=@virataGrpFileIdents 65071d4279SBram Moolenaarsyn match virataStatement "^\s*\(DefaultPri\|Hydrogen\)\>" skipwhite nextgroup=virataDecNumber,virataNumberError 66071d4279SBram Moolenaarsyn match virataStatement "^\s*\(NoInit\|PCI\|SysLink\)\>" 67071d4279SBram Moolenaarsyn match virataStatement "^\s*Allow\s\+\(ModuleConfig\)\>" 68071d4279SBram Moolenaarsyn match virataStatement "^\s*NoWarn\s\+\(Export\|Parse\=able\|Relative]\)\>" 69071d4279SBram Moolenaarsyn match virataStatement "^\s*Debug\s\+O\(ff\|n\)\>" 70071d4279SBram Moolenaar 71071d4279SBram Moolenaar" Import (Package <exec>|Module <name> from <dir>) 72071d4279SBram Moolenaarsyn region virataImportDef transparent matchgroup=virataStatement start="^\s*Import\>" keepend end="$" contains=virataInImport,virataModuleDef,virataNumberError,virataStringError,@virataGrpDefSubsts 73071d4279SBram Moolenaarsyn match virataInImport contained "\<\(Module\|Package\|from\)\>" skipwhite nextgroup=@virataGrpFileIdents 74071d4279SBram Moolenaar" Export (Header <header file>|SLibrary <obj file>) 75071d4279SBram Moolenaarsyn region virataExportDef transparent matchgroup=virataStatement start="^\s*Export\>" keepend end="$" contains=virataInExport,virataNumberError,virataStringError,@virataGrpDefSubsts 76071d4279SBram Moolenaarsyn match virataInExport contained "\<\(Header\|[SU]Library\)\>" skipwhite nextgroup=@virataGrpFileIdents 77071d4279SBram Moolenaar" Process <name> is <dir/exec> 78071d4279SBram Moolenaarsyn region virataProcessDef transparent matchgroup=virataStatement start="^\s*Process\>" keepend end="$" contains=virataInProcess,virataInExec,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents 79071d4279SBram Moolenaarsyn match virataInProcess contained "\<is\>" 80071d4279SBram Moolenaar" Instance <name> of <module> 81071d4279SBram Moolenaarsyn region virataInstanceDef transparent matchgroup=virataStatement start="^\s*Instance\>" keepend end="$" contains=virataInInstance,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents 82071d4279SBram Moolenaarsyn match virataInInstance contained "\<of\>" 83071d4279SBram Moolenaar" Module <name> from <dir> 84071d4279SBram Moolenaarsyn region virataModuleDef transparent matchgroup=virataStatement start="^\s*\(Package\|Module\)\>" keepend end="$" contains=virataInModule,virataNumberError,virataStringError,@virataGrpDefSubsts 85071d4279SBram Moolenaarsyn match virataInModule contained "^\s*Package\>"hs=e-7 skipwhite nextgroup=@virataGrpIdents 86071d4279SBram Moolenaarsyn match virataInModule contained "^\s*Module\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents 87071d4279SBram Moolenaarsyn match virataInModule contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents 88071d4279SBram Moolenaar" Colour <name> from <dir> 89071d4279SBram Moolenaarsyn region virataColourDef transparent matchgroup=virataStatement start="^\s*Colour\>" keepend end="$" contains=virataInColour,virataNumberError,virataStringError,@virataGrpDefSubsts 90071d4279SBram Moolenaarsyn match virataInColour contained "^\s*Colour\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents 91071d4279SBram Moolenaarsyn match virataInColour contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents 92071d4279SBram Moolenaar" Link {<link cmds>} 93071d4279SBram Moolenaar" Object {Executable [<ExecOptions>]} 94071d4279SBram Moolenaarsyn match virataStatement "^\s*\(Link\|Object\)" 95071d4279SBram Moolenaar" Executable <name> [<ExecOptions>] 96071d4279SBram Moolenaarsyn region virataExecDef transparent matchgroup=virataStatement start="^\s*Executable\>" keepend end="$" contains=virataInExec,virataNumberError,virataStringError 97071d4279SBram Moolenaarsyn match virataInExec contained "^\s*Executable\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents 98071d4279SBram Moolenaarsyn match virataInExec contained "\<\(epilogue\|pro\(logue\|cess\)\|qhandler\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents 99071d4279SBram Moolenaarsyn match virataInExec contained "\<\(priority\|stack\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpNumbers 100071d4279SBram Moolenaar" Message <name> {<msg format>} 101071d4279SBram Moolenaar" MessageId <number> 102071d4279SBram Moolenaarsyn match virataStatement "^\s*Message\(Id\)\=\>" skipwhite nextgroup=@virataGrpNumbers 103071d4279SBram Moolenaar" MakeRule <make suffix=file> {<make cmds>} 104071d4279SBram Moolenaarsyn region virataMakeDef transparent matchgroup=virataStatement start="^\s*MakeRule\>" keepend end="$" contains=virataInMake,@virataGrpDefSubsts 105071d4279SBram Moolenaarsyn case match 106071d4279SBram Moolenaarsyn match virataInMake contained "\<N\>" 107071d4279SBram Moolenaarsyn case ignore 108071d4279SBram Moolenaar" (Append|Edit|Copy)Rule <make suffix=file> <subst cmd> 109071d4279SBram Moolenaarsyn match virataStatement "^\s*\(Append\|Copy\|Edit\)Rule\>" 110071d4279SBram Moolenaar" AlterRules in <file> <subst cmd> 111071d4279SBram Moolenaarsyn region virataAlterDef transparent matchgroup=virataStatement start="^\s*AlterRules\>" keepend end="$" contains=virataInAlter,@virataGrpDefSubsts 112071d4279SBram Moolenaarsyn match virataInAlter contained "\<in\>" skipwhite nextgroup=@virataGrpIdents 113071d4279SBram Moolenaar" Clustering 114071d4279SBram Moolenaarsyn cluster virataGrpInStatmnts contains=virataInImport,virataInExport,virataInExec,virataInProcess,virataInAlter,virataInInstance,virataInModule,virataInColour 115071d4279SBram Moolenaarsyn cluster virataGrpStatements contains=@virataGrpInStatmnts,virataStatement,virataImportDef,virataExportDef,virataExecDef,virataProcessDef,virataAlterDef,virataInstanceDef,virataModuleDef,virataColourDef 116071d4279SBram Moolenaar 117071d4279SBram Moolenaar 118071d4279SBram Moolenaar" MkFlash.Cfg File Statements: 119071d4279SBram Moolenaarsyn 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 120071d4279SBram Moolenaarsyn region virataCfgSizeDef transparent matchgroup=virataCfgStatement start="^\s*\a\{-}Size\>" start="^\s*ConfigInfo\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts,virataIdentError 121071d4279SBram Moolenaarsyn region virataCfgNumberDef transparent matchgroup=virataCfgStatement start="^\s*FlashchipNum\(b\(er\=\)\=\)\=\>" start="^\s*Granularity\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts 122071d4279SBram Moolenaarsyn region virataCfgMacAddrDef transparent matchgroup=virataCfgStatement start="^\s*MacAddress\>" keepend end="$" contains=virataNumberError,virataStringError,virataIdentError,virataInMacAddr,@virataGrpDefSubsts 123071d4279SBram Moolenaarsyn match virataInMacAddr contained "\x[:]\x\{1,2}\>"lc=2 124071d4279SBram Moolenaarsyn match virataInMacAddr contained "\s\x\{1,2}[:]\x"lc=1,me=e-1,he=e-2 nextgroup=virataInMacAddr 125071d4279SBram Moolenaarsyn match virataCfgStatement "^\s*Target\>" skipwhite nextgroup=@virataGrpIdents 126071d4279SBram Moolenaarsyn cluster virataGrpCfgs contains=virataCfgStatement,virataCfgFileDef,virataCfgSizeDef,virataCfgNumberDef,virataCfgMacAddrDef,virataInMacAddr 127071d4279SBram Moolenaar 128071d4279SBram Moolenaar 129071d4279SBram Moolenaar 130071d4279SBram Moolenaar" PreProcessor Instructions: 131071d4279SBram Moolenaar" Defines 132071d4279SBram Moolenaarsyn match virataDefine "^\s*\(Un\)\=Set\>" skipwhite nextgroup=@virataGrpIdents 133071d4279SBram Moolenaarsyn match virataInclude "^\s*Include\>" skipwhite nextgroup=@virataGrpFileIdents 134071d4279SBram Moolenaarsyn match virataDefSubstError "[^$]\$"lc=1 135071d4279SBram Moolenaarsyn match virataDefSubstError "\$\(\w\|{\(.\{-}}\)\=\)" 136071d4279SBram Moolenaarsyn case match 137071d4279SBram Moolenaarsyn match virataDefSubst "\$\(\d\|[DINORS]\|{\I\i\{-}\(\-\i\{-1,}\)*}\)" 138071d4279SBram Moolenaarsyn case ignore 139071d4279SBram Moolenaar" Conditionals 140071d4279SBram Moolenaarsyn cluster virataGrpCntnPreCon contains=ALLBUT,@virataGrpInComments,@virataGrpFileIdents,@virataGrpInStatmnts 141071d4279SBram Moolenaarsyn region virataPreConDef transparent matchgroup=virataPreCondit start="^\s*If\>" end="^\s*Endif\>" contains=@virataGrpCntnPreCon 142071d4279SBram Moolenaarsyn match virataPreCondit contained "^\s*Else\(\s\+If\)\=\>" 143071d4279SBram Moolenaarsyn region virataPreConDef transparent matchgroup=virataPreCondit start="^\s*ForEach\>" end="^\s*Done\>" contains=@virataGrpCntnPreCon 144071d4279SBram Moolenaar" Pre-Processors 145071d4279SBram Moolenaarsyn region virataPreProc start="^\s*Error\>" start="^\s*Warning\>" oneline end="$" contains=@virataGrpConstants,@virataGrpDefSubsts 146071d4279SBram Moolenaarsyn cluster virataGrpDefSubsts contains=virataDefSubstError,virataDefSubst 147071d4279SBram Moolenaarsyn cluster virataGrpPreProcs contains=@virataGrpDefSubsts,virataDefine,virataInclude,virataPreConDef,virataPreCondit,virataPreProc 148071d4279SBram Moolenaar 149071d4279SBram Moolenaar 150071d4279SBram Moolenaar" Synchronize Syntax: 151071d4279SBram Moolenaarsyn sync clear 152071d4279SBram Moolenaarsyn sync minlines=50 "for multiple region nesting 153071d4279SBram Moolenaar 154071d4279SBram Moolenaar 155071d4279SBram Moolenaar 156071d4279SBram Moolenaar" Define the default highlighting. 15789bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 158071d4279SBram Moolenaar 159071d4279SBram Moolenaar" Sub Links: 160*f37506f6SBram Moolenaarhi def link virataDefSubstError virataPreProcError 161*f37506f6SBram Moolenaarhi def link virataDefSubst virataPreProc 162*f37506f6SBram Moolenaarhi def link virataInAlter virataOperator 163*f37506f6SBram Moolenaarhi def link virataInExec virataOperator 164*f37506f6SBram Moolenaarhi def link virataInExport virataOperator 165*f37506f6SBram Moolenaarhi def link virataInImport virataOperator 166*f37506f6SBram Moolenaarhi def link virataInInstance virataOperator 167*f37506f6SBram Moolenaarhi def link virataInMake virataOperator 168*f37506f6SBram Moolenaarhi def link virataInModule virataOperator 169*f37506f6SBram Moolenaarhi def link virataInProcess virataOperator 170*f37506f6SBram Moolenaarhi def link virataInMacAddr virataHexNumber 171071d4279SBram Moolenaar 172071d4279SBram Moolenaar" Comment Group: 173*f37506f6SBram Moolenaarhi def link virataComment Comment 174*f37506f6SBram Moolenaarhi def link virataSpclComment SpecialComment 175*f37506f6SBram Moolenaarhi def link virataInCommentTodo Todo 176071d4279SBram Moolenaar 177071d4279SBram Moolenaar" Constant Group: 178*f37506f6SBram Moolenaarhi def link virataString String 179*f37506f6SBram Moolenaarhi def link virataStringError Error 180*f37506f6SBram Moolenaarhi def link virataCharacter Character 181*f37506f6SBram Moolenaarhi def link virataSpclChar Special 182*f37506f6SBram Moolenaarhi def link virataDecNumber Number 183*f37506f6SBram Moolenaarhi def link virataHexNumber Number 184*f37506f6SBram Moolenaarhi def link virataSizeNumber Number 185*f37506f6SBram Moolenaarhi def link virataNumberError Error 186071d4279SBram Moolenaar 187071d4279SBram Moolenaar" Identifier Group: 188*f37506f6SBram Moolenaarhi def link virataIdentError Error 189071d4279SBram Moolenaar 190071d4279SBram Moolenaar" PreProc Group: 191*f37506f6SBram Moolenaarhi def link virataPreProc PreProc 192*f37506f6SBram Moolenaarhi def link virataDefine Define 193*f37506f6SBram Moolenaarhi def link virataInclude Include 194*f37506f6SBram Moolenaarhi def link virataPreCondit PreCondit 195*f37506f6SBram Moolenaarhi def link virataPreProcError Error 196*f37506f6SBram Moolenaarhi def link virataPreProcWarn Todo 197071d4279SBram Moolenaar 198071d4279SBram Moolenaar" Directive Group: 199*f37506f6SBram Moolenaarhi def link virataStatement Statement 200*f37506f6SBram Moolenaarhi def link virataCfgStatement Statement 201*f37506f6SBram Moolenaarhi def link virataOperator Operator 202*f37506f6SBram Moolenaarhi def link virataDirective Keyword 203071d4279SBram Moolenaar 204071d4279SBram Moolenaar 205071d4279SBram Moolenaarlet b:current_syntax = "virata" 206071d4279SBram Moolenaar 207071d4279SBram Moolenaar" vim:ts=8:sw=2:noet: 208