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