codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: Virata AConfig Configuration Script3" Maintainer: Manuel M.H. Stol <mmh.stol@gmx.net>4" Last Change: 2003 May 115" Vim URL: http://www.vim.org/lang.html6" Virata URL: http://www.globespanvirata.com/7 8 9" Virata AConfig Configuration Script syntax10" Can be detected by: 1) Extension .hw, .sw, .pkg and .module11" 2) The file name pattern "mk.*\.cfg"12" 3) The string "Virata" in the first 5 lines13 14 15" Setup Syntax:16" quit when a syntax file was already loaded17if exists("b:current_syntax")18 finish19endif20" Virata syntax is case insensitive (mostly)21syn case ignore22 23 24 25" Comments:26" Virata comments start with %, but % is not a keyword character27syn region virataComment start="^%" start="\s%"lc=1 keepend end="$" contains=@virataGrpInComments28syn region virataSpclComment start="^%%" start="\s%%"lc=1 keepend end="$" contains=@virataGrpInComments29syn keyword virataInCommentTodo contained TODO FIXME XXX[XXXXX] REVIEW TBD30syn cluster virataGrpInComments contains=virataInCommentTodo31syn cluster virataGrpComments contains=@virataGrpInComments,virataComment,virataSpclComment32 33 34" Constants:35syn match virataStringError +["]+36syn region virataString start=+"+ skip=+\(\\\\\|\\"\)+ end=+"+ oneline contains=virataSpclCharError,virataSpclChar,@virataGrpDefSubsts37syn match virataCharacter +'[^']\{-}'+ contains=virataSpclCharError,virataSpclChar38syn 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-145syn match virataSizeNumber "\<\d\+[KM]B\>"he=e-246syn cluster virataGrpNumbers contains=virataNumberError,virataDecNumber,virataHexNumber,virataSizeNumber47syn cluster virataGrpConstants contains=@virataGrpNumbers,virataStringError,virataString,virataCharacter,virataSpclChar48 49 50" Identifiers:51syn match virataIdentError contained "\<\D\S*\>"52syn match virataIdentifier contained "\<\I\i\{-}\(\-\i\{-1,}\)*\>" contains=@virataGrpDefSubsts53syn match virataFileIdent contained "\F\f*" contains=@virataGrpDefSubsts54syn cluster virataGrpIdents contains=virataIdentifier,virataIdentError55syn cluster virataGrpFileIdents contains=virataFileIdent,virataIdentError56 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=@virataGrpIdents62syn match virataStatement "^\s*Make\.c\(at\)\=++\s"me=e-1 skipwhite nextgroup=@virataGrpIdents63syn match virataStatement "^\s*\(Architecture\|GetEnv\|Reserved\|\(Un\)\=Define\|Version\)\>" skipwhite nextgroup=@virataGrpIdents64syn match virataStatement "^\s*\(Hardware\|ModuleSource\|\(Release\)\=Path\|Software\)\>" skipwhite nextgroup=@virataGrpFileIdents65syn match virataStatement "^\s*\(DefaultPri\|Hydrogen\)\>" skipwhite nextgroup=virataDecNumber,virataNumberError66syn 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,@virataGrpDefSubsts73syn match virataInImport contained "\<\(Module\|Package\|from\)\>" skipwhite nextgroup=@virataGrpFileIdents74" Export (Header <header file>|SLibrary <obj file>)75syn region virataExportDef transparent matchgroup=virataStatement start="^\s*Export\>" keepend end="$" contains=virataInExport,virataNumberError,virataStringError,@virataGrpDefSubsts76syn match virataInExport contained "\<\(Header\|[SU]Library\)\>" skipwhite nextgroup=@virataGrpFileIdents77" Process <name> is <dir/exec>78syn region virataProcessDef transparent matchgroup=virataStatement start="^\s*Process\>" keepend end="$" contains=virataInProcess,virataInExec,virataNumberError,virataStringError,@virataGrpDefSubsts,@virataGrpIdents79syn 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,@virataGrpIdents82syn 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,@virataGrpDefSubsts85syn match virataInModule contained "^\s*Package\>"hs=e-7 skipwhite nextgroup=@virataGrpIdents86syn match virataInModule contained "^\s*Module\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents87syn match virataInModule contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents88" Colour <name> from <dir>89syn region virataColourDef transparent matchgroup=virataStatement start="^\s*Colour\>" keepend end="$" contains=virataInColour,virataNumberError,virataStringError,@virataGrpDefSubsts90syn match virataInColour contained "^\s*Colour\>"hs=e-6 skipwhite nextgroup=@virataGrpIdents91syn match virataInColour contained "\<from\>" skipwhite nextgroup=@virataGrpFileIdents92" 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,virataStringError97syn match virataInExec contained "^\s*Executable\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents98syn match virataInExec contained "\<\(epilogue\|pro\(logue\|cess\)\|qhandler\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpIdents99syn match virataInExec contained "\<\(priority\|stack\)\>" skipwhite nextgroup=@virataGrpDefSubsts,@virataGrpNumbers100" Message <name> {<msg format>}101" MessageId <number>102syn match virataStatement "^\s*Message\(Id\)\=\>" skipwhite nextgroup=@virataGrpNumbers103" MakeRule <make suffix=file> {<make cmds>}104syn region virataMakeDef transparent matchgroup=virataStatement start="^\s*MakeRule\>" keepend end="$" contains=virataInMake,@virataGrpDefSubsts105syn case match106syn match virataInMake contained "\<N\>"107syn case ignore108" (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,@virataGrpDefSubsts112syn match virataInAlter contained "\<in\>" skipwhite nextgroup=@virataGrpIdents113" Clustering114syn cluster virataGrpInStatmnts contains=virataInImport,virataInExport,virataInExec,virataInProcess,virataInAlter,virataInInstance,virataInModule,virataInColour115syn cluster virataGrpStatements contains=@virataGrpInStatmnts,virataStatement,virataImportDef,virataExportDef,virataExecDef,virataProcessDef,virataAlterDef,virataInstanceDef,virataModuleDef,virataColourDef116 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=@virataGrpFileIdents120syn region virataCfgSizeDef transparent matchgroup=virataCfgStatement start="^\s*\a\{-}Size\>" start="^\s*ConfigInfo\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts,virataIdentError121syn region virataCfgNumberDef transparent matchgroup=virataCfgStatement start="^\s*FlashchipNum\(b\(er\=\)\=\)\=\>" start="^\s*Granularity\>" keepend end="$" contains=@virataGrpNumbers,@virataGrpDefSubsts122syn region virataCfgMacAddrDef transparent matchgroup=virataCfgStatement start="^\s*MacAddress\>" keepend end="$" contains=virataNumberError,virataStringError,virataIdentError,virataInMacAddr,@virataGrpDefSubsts123syn match virataInMacAddr contained "\x[:]\x\{1,2}\>"lc=2124syn match virataInMacAddr contained "\s\x\{1,2}[:]\x"lc=1,me=e-1,he=e-2 nextgroup=virataInMacAddr125syn match virataCfgStatement "^\s*Target\>" skipwhite nextgroup=@virataGrpIdents126syn cluster virataGrpCfgs contains=virataCfgStatement,virataCfgFileDef,virataCfgSizeDef,virataCfgNumberDef,virataCfgMacAddrDef,virataInMacAddr127 128 129 130" PreProcessor Instructions:131" Defines132syn match virataDefine "^\s*\(Un\)\=Set\>" skipwhite nextgroup=@virataGrpIdents133syn match virataInclude "^\s*Include\>" skipwhite nextgroup=@virataGrpFileIdents134syn match virataDefSubstError "[^$]\$"lc=1135syn match virataDefSubstError "\$\(\w\|{\(.\{-}}\)\=\)"136syn case match137syn match virataDefSubst "\$\(\d\|[DINORS]\|{\I\i\{-}\(\-\i\{-1,}\)*}\)"138syn case ignore139" Conditionals140syn cluster virataGrpCntnPreCon contains=ALLBUT,@virataGrpInComments,@virataGrpFileIdents,@virataGrpInStatmnts141syn region virataPreConDef transparent matchgroup=virataPreCondit start="^\s*If\>" end="^\s*Endif\>" contains=@virataGrpCntnPreCon142syn match virataPreCondit contained "^\s*Else\(\s\+If\)\=\>"143syn region virataPreConDef transparent matchgroup=virataPreCondit start="^\s*ForEach\>" end="^\s*Done\>" contains=@virataGrpCntnPreCon144" Pre-Processors145syn region virataPreProc start="^\s*Error\>" start="^\s*Warning\>" oneline end="$" contains=@virataGrpConstants,@virataGrpDefSubsts146syn cluster virataGrpDefSubsts contains=virataDefSubstError,virataDefSubst147syn cluster virataGrpPreProcs contains=@virataGrpDefSubsts,virataDefine,virataInclude,virataPreConDef,virataPreCondit,virataPreProc148 149 150" Synchronize Syntax:151syn sync clear152syn sync minlines=50 "for multiple region nesting153 154 155 156" Define the default highlighting.157" Only when an item doesn't have highlighting yet158 159" Sub Links:160hi def link virataDefSubstError virataPreProcError161hi def link virataDefSubst virataPreProc162hi def link virataInAlter virataOperator163hi def link virataInExec virataOperator164hi def link virataInExport virataOperator165hi def link virataInImport virataOperator166hi def link virataInInstance virataOperator167hi def link virataInMake virataOperator168hi def link virataInModule virataOperator169hi def link virataInProcess virataOperator170hi def link virataInMacAddr virataHexNumber171 172" Comment Group:173hi def link virataComment Comment174hi def link virataSpclComment SpecialComment175hi def link virataInCommentTodo Todo176 177" Constant Group:178hi def link virataString String179hi def link virataStringError Error180hi def link virataCharacter Character181hi def link virataSpclChar Special182hi def link virataDecNumber Number183hi def link virataHexNumber Number184hi def link virataSizeNumber Number185hi def link virataNumberError Error186 187" Identifier Group:188hi def link virataIdentError Error189 190" PreProc Group:191hi def link virataPreProc PreProc192hi def link virataDefine Define193hi def link virataInclude Include194hi def link virataPreCondit PreCondit195hi def link virataPreProcError Error196hi def link virataPreProcWarn Todo197 198" Directive Group:199hi def link virataStatement Statement200hi def link virataCfgStatement Statement201hi def link virataOperator Operator202hi def link virataDirective Keyword203 204 205let b:current_syntax = "virata"206 207" vim:ts=8:sw=2:noet:208 