comparison runtime/syntax/virata.vim @ 0:76efa0be13f1

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