Mercurial > hg > RemoteEditor > vim7
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: |