~ubuntu-branches/ubuntu/wily/ktexteditor/wily-proposed

« back to all changes in this revision

Viewing changes to src/syntax/data/vhdl.xml

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell, Jonathan Riddell, Scarlett Clark
  • Date: 2014-09-22 19:37:47 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20140922193747-6vhh92mz3ci4fxu1
Tags: 5.2.0-0ubuntu1
[ Jonathan Riddell ]
* New upstream release
* Use pkg-kde-tools version 3 scripts

[ Scarlett Clark ]
* Add missing dependency libqt5xmlpatterns5-dev.
* Cleanup copyright + move copyright extra details to comment to silence
  space-in-std-shortname-in-dep5-copyright lintian error.  

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
  <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
4
4
  <!ENTITY varname  "\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\b">
5
5
  <!ENTITY bos      "(\b)">                        <!-- bol or space following -->
6
 
<!--  <!ENTITY bos      "^(|.*\s)">-->                        <!-- bol or space following -->
7
6
  <!ENTITY eos      "\b">                <!-- eol or space following -->
8
 
<!--  <!ENTITY eos      "(?=($|\s))">-->                <!-- eol or space following -->
9
7
  <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->
10
8
  <!ENTITY label     "((&varname;)\s*:\s*)?">
11
9
 
12
10
]>
13
 
 
14
 
<language name="VHDL" version="1.10" kateversion="2.3" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de)">
 
11
<language name="VHDL" version="1.11" kateversion="3.5" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de)">
15
12
  <highlighting>
16
13
    <list name="keywordsToplevel">
17
14
      <item> file </item>
18
 
<!--      <item> package </item>-->
19
15
      <item> library </item>
20
16
      <item> use </item>
21
 
<!--
22
 
      <item> entity </item>
23
 
      <item> architecture </item>
24
 
      <item> of </item>
25
 
      <item> configuration </item>
26
 
-->
27
 
 
28
 
 
29
17
    </list>
 
18
 
30
19
    <list name="keywords">
31
20
      <item> access </item>
32
21
      <item> after </item>
51
40
      <item> end </item>
52
41
      <item> exit </item>
53
42
      <item> fairness </item>
 
43
      <item> falling_edge </item>
54
44
      <item> file </item>
55
45
      <item> force </item>
56
46
      <item> function </item>
87
77
      <item> release </item>
88
78
      <item> report </item>
89
79
      <item> return </item>
 
80
      <item> rising_edge </item>
90
81
      <item> select </item>
91
82
      <item> sequence </item>
92
83
      <item> severity </item>
157
148
      <item> variable </item>
158
149
      <item> constant </item>
159
150
      <item> type </item>
 
151
      <item> attribute </item>
160
152
    </list>
161
 
 <!--   <list name="logics">
162
 
      <item> and </item>
163
 
      <item> or </item>
164
 
      <item> xor </item>
165
 
      <item> not </item>
166
 
    </list>-->
167
153
 
168
154
    <list name="range">
169
155
      <item> to </item>
176
162
      <item> when </item>
177
163
    </list>
178
164
 
 
165
    <list name="timeunits">
 
166
      <item>fs</item>
 
167
      <item>ps</item>
 
168
      <item>ns</item>
 
169
      <item>us</item>
 
170
      <item>ms</item>
 
171
      <item>sec</item>
 
172
      <item>min</item>
 
173
      <item>hr</item>
 
174
    </list>
 
175
 
 
176
    
179
177
    <list name="types">
180
178
      <item> bit </item>
181
179
      <item> bit_vector </item>
229
227
 
230
228
<!-- start / global environment -->
231
229
      <context name="start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
232
 
        <IncludeRules  context="preDetection" />
 
230
        <IncludeRules context="preDetection"/>
233
231
 
234
 
        <RegExpr       attribute="Control"  context="architecture_main"  insensitive="true"  dynamic="true"  lookAhead="true"
235
 
                       String="architecture\s+(&varname;)" />
236
 
        <StringDetect  attribute="Control"  context="entity"         String="entity"      />
237
 
        <RegExpr       attribute="Normal Text" context="package"  insensitive="true"  lookAhead="true"  beginRegion="PackageRegion1" 
238
 
                       String="&bos;(package\s+(&varname;)\s+is)&eos;"/>
239
 
        <RegExpr       attribute="Normal Text" context="packagebody"   lookAhead="true" insensitive="true" beginRegion="PackageBodyRegion1"
240
 
                       String="&bos;(package\s+body\s+(&varname;)\s+is)&eos;"/>            
 
232
        <RegExpr attribute="Control" context="architecture_main" insensitive="true" dynamic="true" lookAhead="true"
 
233
                 String="&bos;architecture\s+(&varname;)&eos;"/>
 
234
        <StringDetect attribute="Control" context="entity" 
 
235
                 String="entity"/>
 
236
        <RegExpr attribute="Control" context="package" insensitive="true" lookAhead="true" dynamic="true" beginRegion="PackageRegion1"
 
237
                 String="&bos;package\s+(&varname;)\s+is&eos;"/>
 
238
        <RegExpr attribute="Control" context="packagebody" lookAhead="true" insensitive="true" dynamic="true" beginRegion="PackageBodyRegion1" 
 
239
                 String="&bos;package\s+body\s+(&varname;)\s+is&eos;"/>            
241
240
       <!-- <StringDetect  attribute="Control"  context="arch_decl"      String="package"     />temporary-->
242
 
 
243
 
        <keyword attribute="Keyword" context="#stay"  String="keywordsToplevel"/>
 
241
        <RegExpr attribute="Control" context="configuration" insensitive="true" dynamic="true" lookAhead="true"
 
242
                 String="&bos;configuration\s+(&varname;)&eos;"/>
 
243
        <keyword attribute="Keyword" context="#stay" String="keywordsToplevel"/>
244
244
      </context>
245
245
 
246
246
 
247
247
      <context name="package" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
248
 
        <StringDetect attribute="Redirection" context="#stay" String="%2" dynamic="true" />
249
 
        <IncludeRules context="preDetection" />
250
 
        <StringDetect attribute="Redirection" context="#stay" String="begin" insensitive="true" />
251
 
        <RegExpr attribute="Redirection" context="#pop" String="&bos;end(\s+package)?(\s+%3)?\s*;" dynamic="true" endRegion="PackageRegion1"  insensitive="true" />
252
 
        <IncludeRules context="generalDetection" />
 
248
        <IncludeRules context="preDetection"/>
 
249
        <RegExpr attribute="Control"   context="#stay" insensitive="true" String="&bos;package&eos;" />
 
250
        <RegExpr attribute="Keyword"   context="packagemain" insensitive="true" String="&bos;is&eos;" />
 
251
        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>        
 
252
        <RegExpr attribute="Redirection" context="#pop"  dynamic="true" endRegion="PackageRegion1" insensitive="true"
 
253
                 String="&bos;end(\s+package)?(\s+%2)?\s*;" />
 
254
        <IncludeRules context="generalDetection"/>
253
255
      </context>
254
256
      
 
257
      <context name="packagemain" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
258
        <IncludeRules context="preDetection"/>
 
259
        <RegExpr attribute="Keyword"   context="#pop" lookAhead="true" insensitive="true" String="&bos;end&eos;" />
 
260
        <RegExpr attribute="Keyword"   context="packagefunction" insensitive="true" String="&bos;function&eos;" />
 
261
        <IncludeRules context="generalDetection"/>
 
262
      </context>
 
263
  
 
264
      <context name="packagefunction" attribute="Normal Text" lineEndContext="#stay">
 
265
        <RegExpr attribute="Name" context="#pop" insensitive="true" String="&bos;&varname;&eos;" />
 
266
      </context>
 
267
  
255
268
      <!-- package body environment -->
256
269
 
257
270
      <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
258
 
        <StringDetect attribute="Redirection" context="#stay" String="%2" dynamic="true" />
259
 
        <IncludeRules context="preDetection" />
260
 
        <StringDetect attribute="Redirection" context="#stay" String="begin" insensitive="true" />
261
 
        <RegExpr attribute="Redirection" context="#pop" String="&bos;end(\s+package)?(\s+%3)?\s*;" dynamic="true" endRegion="PackageBodyRegion1"  insensitive="true" />
262
 
        <IncludeRules context="generalDetection" />
 
271
        <IncludeRules context="preDetection"/>
 
272
        <RegExpr attribute="Control"   context="#stay" insensitive="true" String="&bos;package&eos;" />
 
273
        <RegExpr attribute="Keyword"   context="packagebodymain" insensitive="true" String="&bos;is&eos;" />
 
274
        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>  
 
275
        <RegExpr attribute="Redirection" context="#pop" dynamic="true" endRegion="PackageBodyRegion1" insensitive="true"
 
276
                 String="&bos;end(\s+package)?(\s+%2)?\s*;" />
 
277
        <IncludeRules context="generalDetection"/>
263
278
      </context>
264
279
 
 
280
      <context name="packagebodymain" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
281
        <IncludeRules context="preDetection"/>
 
282
        <RegExpr attribute="Keyword"   context="#pop" lookAhead="true" insensitive="true" String="&bos;end\s+package&eos;" />
 
283
        <RegExpr attribute="Keyword"   context="packagebodyfunc1" beginRegion="PackBodyFunc" insensitive="true" dynamic="true" lookAhead="true" String="&bos;function\s+(&varname;)&eos;" />
 
284
        <IncludeRules context="generalDetection"/>
 
285
      </context>
 
286
  
 
287
      <context name="packagebodyfunc1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
288
        <IncludeRules context="preDetection"/>
 
289
        <RegExpr attribute="Redirection" context="packagebodyfunc2" beginRegion="RegionFunction" insensitive="true" String="&bos;begin&eos;" />
 
290
        <RegExpr attribute="Keyword"   context="#pop" insensitive="true" endRegion="PackBodyFunc" dynamic="true" String="&bos;end(\s+function)?(\s+%2)?&eos;" />
 
291
        <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;"  dynamic="true"/>
 
292
        <IncludeRules context="generalDetection"/>
 
293
      </context>    
 
294
      
 
295
      <context name="packagebodyfunc2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
296
        <IncludeRules context="preDetection"/>
 
297
        <RegExpr attribute="Redirection" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"
 
298
                 String="&bos;end(\s+function)?&eos;"/>
 
299
        <!--<RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"
 
300
                 String="&bos;end\s+function(\s+&varname;)?&eos;"/>-->
 
301
        <RegExpr attribute="Process" context="#stay" insensitive="true" 
 
302
                 String="&bos;begin&eos;"/>
 
303
        <IncludeRules context="proc_rules"/>
 
304
      </context>      
 
305
      
 
306
      
265
307
<!--====ARCHITECTURE ===============-->
266
 
      <context  name="architecture_main"  attribute="Normal Text"  lineEndContext="#stay"  dynamic="true">
267
 
        <IncludeRules  context="preDetection" />
268
 
        <RegExpr       attribute="Control"  context="arch_decl"   insensitive="true"  beginRegion="ArchitectureRegion1"
269
 
                       String="architecture\s+(&varname;)\s+of\s+(&varname;)\s+is"   />
270
 
        <RegExpr       attribute="Control"  context="#pop#pop"    insensitive="true"  dynamic="true" endRegion="ArchitectureRegion1"
271
 
                       String="&bos;end(\s+architecture)?(\s+%1)?\s*;"   />
272
 
        <RegExpr       attribute="Error"    context="#pop#pop"    insensitive="true"  dynamic="true" endRegion="ArchitectureRegion1"
273
 
                       String="&bos;end(\s+architecture)?(\s+&varname;)\s*;"   />
274
 
        <IncludeRules  context="detect_arch_parts" />
 
308
      <context name="architecture_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
309
        <IncludeRules context="preDetection"/>
 
310
        <RegExpr attribute="Control" context="arch_start" insensitive="true" lookAhead="true" dynamic="true" beginRegion="ArchitectureRegion1"
 
311
                 String="&bos;architecture\s+(&varname;)\s+of\s+(&varname;)\s+is"/>
 
312
        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"
 
313
                 String="&bos;end(\s+architecture)?(\s+%2)?\s*;"/>
 
314
        <RegExpr attribute="Error" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"
 
315
                 String="&bos;end(\s+architecture)?(\s+&varname;)\s*;"/>
 
316
        <IncludeRules context="detect_arch_parts"/>
275
317
      </context>
276
318
 
277
319
<!-- architecture environment "before begin" -->
278
 
      <context name="arch_decl" attribute="Normal Text" lineEndContext="#stay" >
279
 
        <IncludeRules  context="preDetection" />
280
 
        <keyword       attribute="Signal"       context="signal"     insensitive="true"  String="signals"/>
281
 
        <StringDetect  attribute="Control"      context="entity"     insensitive="true"  String="component"/>
282
 
        <StringDetect  attribute="Control"      context="#pop"       insensitive="true"  String="begin"/>
283
 
        <IncludeRules  context="generalDetection" />
 
320
      <context name="arch_start" attribute="Control" lineEndContext="#stay" dynamic="true">
 
321
        <IncludeRules context="preDetection"/>
 
322
        <RegExpr attribute="Keyword"   context="arch_decl" insensitive="true" String="&bos;is&eos;" />
 
323
        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>
 
324
        <RegExpr attribute="Reference" context="#stay"     insensitive="true" String="&bos;%4&eos;" dynamic="true"/>
 
325
        <IncludeRules context="generalDetection"/>
 
326
      </context>
 
327
      
 
328
      <context name="arch_decl" attribute="Normal Text" lineEndContext="#stay">
 
329
        <IncludeRules context="preDetection"/>
 
330
        <keyword attribute="Signal" context="signal"         insensitive="true" String="signals"/>
 
331
        <StringDetect attribute="Control" context="entity"   insensitive="true" String="component"/>
 
332
        <StringDetect attribute="Control" context="#pop#pop" insensitive="true" String="begin"/>
 
333
        <IncludeRules context="generalDetection"/>
284
334
      </context>
285
335
 
286
336
<!-- parts of architecture body -->
287
337
      <context name="detect_arch_parts" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
288
 
        <RegExpr attribute="Normal Text"   context="generate1"  lookAhead="true"  insensitive="true"  dynamic="true"
289
 
                 String="&bos;((&varname;)\s*:\s*)(if|for).*\s+generate&eos;" />
290
 
        <RegExpr attribute="Normal Text"   context="process1"   lookAhead="true"  insensitive="true"  dynamic="true"
291
 
                 String="&bos;((&varname;)\s*:\s*)?process&eos;" />
292
 
        <RegExpr attribute="Normal Text"   context="instance"   lookAhead="true"  insensitive="true"   dynamic="true"  beginRegion="InstanceRegion1"
293
 
                 String="\b(&varname;)\s*:\s*(&varname;)" />
 
338
        <RegExpr attribute="Normal Text" context="generate1" lookAhead="true" insensitive="true" dynamic="true" 
 
339
                 String="&bos;(&varname;\s*:\s*)(if|for).*\s+generate&eos;"/>
 
340
        <RegExpr attribute="Normal Text" context="process1" lookAhead="true" insensitive="true" dynamic="true" 
 
341
                 String="&bos;(&varname;\s*:\s*)?process&eos;"/>
 
342
        <RegExpr attribute="Normal Text" context="instance" lookAhead="true" insensitive="true" dynamic="true" beginRegion="InstanceRegion1" 
 
343
                 String="&bos;(&varname;)\s*:\s*((entity\s+)?(&varname;)(\.&varname;)?)"/>
294
344
 
295
 
        <IncludeRules  context="generalDetection" />
 
345
        <IncludeRules context="generalDetection"/>
296
346
      </context>
297
347
 
298
348
<!--====generate ===============-->
299
349
      <context name="generate1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
300
 
        <IncludeRules  context="preDetection" />
301
 
        <RegExpr       attribute="Control"      context="generate2"                 insensitive="true"  beginRegion="GenerateRegion"
302
 
                       String="&bos;generate&eos;" />
303
 
        <RegExpr       attribute="Name"         context="#stay"     dynamic="true"  insensitive="true"
304
 
                       String="&bos;%3&eos;" />
305
 
        <StringDetect  attribute="Control"      context="#stay"     insensitive="true"  String="for"/>
306
 
        <StringDetect  attribute="Control"      context="#stay"     insensitive="true"  String="if"/>
307
 
        <IncludeRules  context="generalDetection" />
 
350
        <IncludeRules context="preDetection"/>
 
351
        <RegExpr attribute="Control" context="generate2" insensitive="true" beginRegion="GenerateRegion" 
 
352
                 String="&bos;(generate|loop)&eos;"/>
 
353
        <RegExpr attribute="Name"      context="#stay" dynamic="true" insensitive="true" 
 
354
                 String="&bos;%3&eos;"/>
 
355
        <RegExpr attribute="Control" context="#stay"                insensitive="true" 
 
356
                 String="&bos;(for|if|while)&eos;"/>
 
357
        <IncludeRules context="generalDetection"/>
308
358
      </context>
309
359
 
310
360
      <context name="generate2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
311
 
        <IncludeRules  context="preDetection" />
312
 
        <StringDetect  attribute="Control"  context="#stay"     insensitive="true"
313
 
                       String="begin"/>
314
 
        <RegExpr       attribute="Control"  context="#pop#pop"  insensitive="true"  endRegion="GenerateRegion"
315
 
                       String="&bos;end\s+generate(\s+&varname;)?\s*;"/>
316
 
        <IncludeRules context="detect_arch_parts" />
 
361
        <IncludeRules context="preDetection"/>
 
362
        <RegExpr attribute="Control" context="#stay" insensitive="true" 
 
363
                 String="&bos;begin&eos;"/>
 
364
        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="GenerateRegion"
 
365
                 String="&bos;end\s+(generate|loop)(\s+&varname;)?"/>
 
366
        <IncludeRules context="detect_arch_parts"/>
317
367
      </context>
318
368
 
319
369
 
321
371
<!-- process environment -->
322
372
 
323
373
      <context name="process1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
324
 
        <IncludeRules  context="preDetection" />
325
 
        <RegExpr       attribute="Process"  context="#pop"   insensitive="true"  dynamic="true" endRegion="RegionProcess"
326
 
                       String="end\s+process(\s+%3)?\s*;" />
327
 
        <RegExpr       attribute="Error"  context="#pop"   insensitive="true"  dynamic="true" endRegion="RegionProcess"
328
 
                       String="end\s+process(\s+&varname;)?" />
329
 
        <StringDetect  attribute="Process"  context="#stay"  insensitive="true"  beginRegion="RegionProcess"
330
 
                       String="process"  />
331
 
        <StringDetect  attribute="Process"  context="#stay"  insensitive="true"
332
 
                       String="begin"  />
333
 
 
334
 
 
335
 
        <IncludeRules  context="proc_rules" />
 
374
        <IncludeRules context="preDetection"/>
 
375
        <RegExpr attribute="Process" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"
 
376
                 String="&bos;end\s+process(\s+%3)?"/>
 
377
        <RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"
 
378
                 String="&bos;end\s+process(\s+&varname;)?"/>
 
379
        <RegExpr attribute="Process" context="#stay" insensitive="true" beginRegion="RegionProcess" 
 
380
                 String="&bos;process&eos;"/>
 
381
        <RegExpr attribute="Process" context="#stay" insensitive="true" 
 
382
                 String="&bos;begin&eos;"/>
 
383
        <IncludeRules context="proc_rules"/>
336
384
      </context>
337
385
 
338
386
      <context name="proc_rules" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
339
 
         <RegExpr attribute="Name"          context="#stay"    insensitive="true"
340
 
                  String="&bos;&varname;(?=\s*:(?!=))" />
341
 
         <RegExpr attribute="Control"       context="if_start" insensitive="true"
342
 
                  String="&bos;(if)&eos;" />
343
 
         <RegExpr attribute="Control"       context="case1"  lookAhead="true"  insensitive="true"   dynamic="true"  beginRegion="CaseRegion1"
344
 
                  String="&bos;(case)&eos;" />
345
 
         <RegExpr attribute="Control"       context="forOrWhile"   insensitive="true"  beginRegion="ForOrWhileRegion1"
346
 
                  String="&bos;&label;((for|while)\s+.+\s+)?loop&eos;"/>
347
 
         <IncludeRules  context="generalDetection" />
 
387
         <RegExpr attribute="Name" context="#stay" insensitive="true" 
 
388
                  String="&bos;&varname;(?=\s*:(?!=))"/>
 
389
         <RegExpr attribute="Control" context="if_start" insensitive="true" 
 
390
                  String="&bos;if&eos;"/>
 
391
         <RegExpr attribute="Control" context="case1" lookAhead="true" insensitive="true"
 
392
                  String="&bos;case&eos;"/>
 
393
         <RegExpr attribute="Control" context="forwhile1" dynamic="true" lookAhead="true" insensitive="true"
 
394
                  String="&bos;((&varname;)\s*:\s*)?((for|while)\s+.+\s+)loop&eos;"/>
 
395
         <IncludeRules context="generalDetection"/>
348
396
      </context>
349
397
 
350
398
 
351
399
 
352
400
 
353
401
<!--====instance =============== -->
354
 
 
355
 
      <context name="instance" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
356
 
        <IncludeRules context="preDetection" />
357
 
        <RegExpr attribute="Name"        context="#stay"     String="\b%1\b"  dynamic="true" />
358
 
        <RegExpr attribute="Name"        context="#stay"     String="\b%2\b"  dynamic="true" />
359
 
        <Detect2Chars attribute="Normal Text" context="#pop"      char=")" char1=";"   endRegion="InstanceRegion1" />
360
 
      <!--  <DetectChar   attribute="Error" context="#stay"      char=";" />-->
361
 
 
362
 
        <IncludeRules context="generalDetection" />
 
402
      <!-- When an instance has been detected-->
 
403
      <context name="instance" attribute="Error" lineEndContext="#stay" dynamic="true">
 
404
        <IncludeRules context="preDetection"/>
 
405
        <RegExpr attribute="Reference"   context="#stay" String="&bos;%4&eos;" dynamic="true"/>
 
406
        <RegExpr attribute="Name"        context="#stay" String="&bos;%3&eos;" dynamic="true"/>
 
407
        <RegExpr attribute="Keyword"     context="instanceMap" beginRegion="InstanceMapRegion"
 
408
                 String="&bos;(port|generic)\s+map\s*\(" />
 
409
        <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="InstanceRegion1"/>
 
410
        <IncludeRules context="generalDetection"/>
363
411
      </context>
364
412
 
 
413
      <!-- Inside a port or generic map-->
 
414
      <context name="instanceMap" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
415
        <AnyChar attribute="Error" context="#stay" String="&lt;;:"/>
 
416
        <DetectChar attribute="Error" context="#stay" char=":" />
 
417
        <IncludeRules context="preDetection"/>
 
418
        <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="InstanceMapRegion"/>
 
419
        <DetectChar attribute="Normal Text" context="instanceInnerPar" char="("/>
 
420
        <IncludeRules context="generalDetection"/>
 
421
      </context>      
 
422
 
 
423
      <!-- Inside parantheses inside a map-->
 
424
      <context name="instanceInnerPar" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
425
        <IncludeRules context="preDetection"/>
 
426
        <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="instanceInnerPar"/>
 
427
        <DetectChar attribute="Normal Text" context="instanceInnerPar" char="("/>
 
428
        <DetectChar attribute="Error" context="#stay" char=";"/>
 
429
        <IncludeRules context="generalDetection"/>
 
430
      </context>       
 
431
      
365
432
<!--====loop ===============-->
366
 
      <context name="forOrWhile" attribute="Normal Text" lineEndContext="#stay">
367
 
        <RegExpr attribute="Control" context="#pop"  endRegion="ForOrWhileRegion1" insensitive="true"
368
 
                 String="&bos;end\s+loop(\s+&varname;)?\s*;"/>
369
 
        <keyword attribute="Control" context="#stay"  String="forOrWhile"/>
370
 
        <IncludeRules context="proc_rules" />
 
433
      <context name="forwhile1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
434
        <IncludeRules context="preDetection"/>
 
435
        <RegExpr attribute="Control" context="forwhile2" insensitive="true" beginRegion="ForWhileRegion" 
 
436
                 String="&bos;loop&eos;"/>
 
437
        <RegExpr attribute="Name"      context="#stay" dynamic="true" insensitive="true" 
 
438
                 String="&bos;%3&eos;"/>
 
439
        <RegExpr attribute="Control" context="#stay"                insensitive="true" 
 
440
                 String="&bos;(for|while)&eos;"/>
 
441
        <IncludeRules context="generalDetection"/>
 
442
      </context>
 
443
 
 
444
      <context name="forwhile2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
445
        <IncludeRules context="preDetection"/>
 
446
        <RegExpr attribute="Control" context="#stay" insensitive="true" 
 
447
                 String="&bos;begin&eos;"/>
 
448
        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="ForWhileRegion"
 
449
                 String="&bos;end\s+loop(\s+&varname;)?"/>
 
450
        <IncludeRules context="proc_rules"/>
371
451
      </context>
372
452
 
373
453
<!--====if ===============-->
374
454
      <context name="if_start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
375
 
        <IncludeRules  context="preDetection" />
376
 
        <StringDetect  attribute="Control"   context="if"     insensitive="true"  beginRegion="IfRegion1"
377
 
                       String="then" />
378
 
        <IncludeRules  context="generalDetection" />
 
455
        <IncludeRules context="preDetection"/>
 
456
        <RegExpr attribute="Control" context="if" insensitive="true" beginRegion="IfRegion1" 
 
457
                 String="&bos;then&eos;"/>
 
458
        <IncludeRules context="generalDetection"/>
379
459
      </context>
380
460
 
381
461
      <context name="if" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
382
 
        <IncludeRules  context="preDetection" />
383
 
        <RegExpr attribute="Control" context="#pop#pop"    insensitive="true"  endRegion="IfRegion1"
 
462
        <IncludeRules context="preDetection"/>
 
463
        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="IfRegion1" 
384
464
                 String="&bos;end\s+if(\s+&varname;)?\s*;"/>
385
 
        <IncludeRules context="proc_rules" />
386
 
        <keyword       attribute="Control"   context="#stay"     insensitive="true"
387
 
                       String="if"/>
 
465
        <IncludeRules context="proc_rules"/>
 
466
        <keyword attribute="Control" context="#stay" insensitive="true" String="if"/>
388
467
      </context>
389
468
 
390
469
 
391
470
<!--====case ===============-->
 
471
 
392
472
      <context name="case1" attribute="Normal Text" lineEndContext="#stay">
393
 
        <IncludeRules  context="preDetection" />
394
 
        <StringDetect  attribute="Keyword"   context="case2"     insensitive="true"
395
 
                       String="is"/>
396
 
        <keyword       attribute="Control"   context="#stay"     insensitive="true"
397
 
                       String="case"/>
 
473
        <IncludeRules context="preDetection"/>
 
474
        <RegExpr attribute="Keyword" context="case2" insensitive="true" 
 
475
                 String="&bos;is&eos;"/>
 
476
        <keyword attribute="Control" context="#stay" insensitive="true" beginRegion="CaseRegion1" String="case"/>
 
477
        <IncludeRules context="generalDetection"/>
398
478
      </context>
 
479
      
399
480
      <context name="case2" attribute="Normal Text" lineEndContext="#stay">
400
 
        <IncludeRules  context="preDetection" />
401
 
        <RegExpr       attribute="Control"   context="#pop#pop"  insensitive="true"  endRegion="CaseRegion1"
402
 
                       String="&bos;end\s+case(\s+&varname;)?\s*;"/>
403
 
        <StringDetect  attribute="Control"   context="caseWhen"  insensitive="true"  beginRegion="CaseWhenRegion1"
404
 
                       String="when"/>
405
 
        <IncludeRules context="proc_rules" />
406
 
      </context>
407
 
      <context name="caseWhen" attribute="Normal Text" lineEndContext="#stay">
408
 
        <IncludeRules  context="preDetection" />
409
 
        <RegExpr       attribute="Control" context="#pop"  lookAhead="true"  insensitive="true"    endRegion="CaseWhenRegion1"
410
 
                       String="&bos;when&eos;" />
411
 
        <RegExpr       attribute="Control" context="#pop"  lookAhead="true"  insensitive="true"    endRegion="CaseWhenRegion1"
412
 
                       String="&bos;end\s+case(\s+&varname;)?\s*;"/>
413
 
        <IncludeRules context="proc_rules" />
414
 
      </context>
415
 
 
 
481
        <IncludeRules context="preDetection"/>
 
482
        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="CaseRegion1" 
 
483
                 String="&bos;end\s+case(&varname;)?\s*;"/>
 
484
        <RegExpr attribute="Control" context="caseWhen" lookAhead="true" dynamic="true" insensitive="true" 
 
485
                 String="&bos;when(\s+&varname;)?&eos;"/>
 
486
        <IncludeRules context="proc_rules"/>
 
487
      </context>
 
488
 
 
489
      <context name="caseWhen" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
490
        <Detect2Chars char="=" char1="&gt;" attribute="Operator" context="caseWhen2" beginRegion="CaseWhenRegion1"/>
 
491
        <IncludeRules context="preDetection"/>
 
492
        <RegExpr attribute="Control" insensitive="true" 
 
493
                 String="&bos;when&eos;"/>
 
494
        <RegExpr attribute="Name" insensitive="true" dynamic="true" 
 
495
                 String="&bos;%2&eos;"/>
 
496
        <IncludeRules context="proc_rules"/>
 
497
      </context>       
 
498
 
 
499
      <context name="caseWhen2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
500
        <IncludeRules context="preDetection"/>
 
501
        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"
 
502
                 String="^\s*when&eos;"/>
 
503
        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1" 
 
504
                 String="^\s*end\s+case&eos;"/>
 
505
        <IncludeRules context="proc_rules"/>
 
506
      </context>
 
507
      <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding -->
416
508
 
417
509
 
418
510
 
420
512
<!--====ENTITY ===============-->
421
513
<!-- entity environment -->
422
514
 
423
 
      <context  name="entity"  attribute="Normal Text"  lineEndContext="#stay"  dynamic="true">
424
 
        <IncludeRules  context="preDetection" />
425
 
        <RegExpr attribute="Name"  context="entity_main"  beginRegion="EntityRegion1"  insensitive="true"  String="(&varname;)" />
426
 
        <IncludeRules  context="generalDetection" />
 
515
      <context name="entity" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
516
        <IncludeRules context="preDetection"/>
 
517
        <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1" insensitive="true" 
 
518
                 String="(&varname;)"/>
 
519
        <IncludeRules context="generalDetection"/>
427
520
      </context>
428
521
 
429
522
 
430
523
      <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
431
 
        <IncludeRules context="preDetection" />
432
 
        <RegExpr attribute="Control" context="#pop#pop"   dynamic="true"  insensitive="true" endRegion="EntityRegion1"
433
 
                 String="&bos;end(\s+(entity|component))?(\s+%1)?\s*;" />
434
 
        <RegExpr attribute="Error" context="#pop#pop"   dynamic="true"  insensitive="true" endRegion="EntityRegion1"
435
 
                 String="&bos;end(\s+(entity|component))?(\s+&varname;)?\s*;" />
436
 
        <RegExpr attribute="Control" context="#stay" String="generic"/>
437
 
        <RegExpr attribute="Control" context="#stay" String="port"/>
438
 
        <IncludeRules context="generalDetection" />
439
 
      </context>
440
 
 
441
 
 
442
 
 
 
524
        <IncludeRules context="preDetection"/>
 
525
        <RegExpr attribute="Control" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"
 
526
                 String="&bos;end(\s+(entity|component))?(\s+%1)?\s*;"/>
 
527
        <RegExpr attribute="Error" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"
 
528
                 String="&bos;end(\s+(entity|component))?(\s+&varname;)?\s*;"/>
 
529
        <RegExpr attribute="Control" context="#stay" insensitive="true" String="generic"/>
 
530
        <RegExpr attribute="Control" context="#stay" insensitive="true" String="port"/>
 
531
        <IncludeRules context="generalDetection"/>
 
532
      </context>
 
533
 
 
534
<!--====Configuration ===============-->
 
535
<!-- configuration environment -->
 
536
      <context name="configuration" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
 
537
        <IncludeRules context="preDetection"/>
 
538
        <RegExpr attribute="Control" context="conf_start" insensitive="true" lookAhead="true" dynamic="true" beginRegion="ConfigurationRegion1"
 
539
                 String="&bos;configuration\s+(&varname;)\s+of\s+(&varname;)\s+is"/>
 
540
        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ConfigurationRegion1"
 
541
                 String="&bos;end(\s+configuration)?(\s+%2)?\s*;"/>
 
542
        <RegExpr attribute="Error" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ConfigurationRegion1"
 
543
                 String="&bos;end(\s+configuration)?(\s+&varname;)\s*;"/>
 
544
      </context>
 
545
 
 
546
      <context name="conf_start" attribute="Control" lineEndContext="#stay" dynamic="true">
 
547
        <IncludeRules context="preDetection"/>
 
548
        <RegExpr attribute="Keyword"   context="conf_decl" insensitive="true" String="&bos;is&eos;" />
 
549
        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>
 
550
        <RegExpr attribute="Reference" context="#stay"     insensitive="true" String="&bos;%4&eos;" dynamic="true"/>
 
551
        <IncludeRules context="generalDetection"/>
 
552
      </context>
 
553
      
 
554
      <context name="conf_decl" attribute="Normal Text" lineEndContext="#stay">
 
555
        <IncludeRules context="preDetection"/>
 
556
        <StringDetect attribute="Control" context="conf_for" insensitive="true" String="for"/>
 
557
        <StringDetect attribute="Control" context="#pop#pop" insensitive="true" lookAhead="true"  String="end"/>
 
558
        <IncludeRules context="generalDetection"/>
 
559
      </context>      
 
560
      
 
561
      <context name="conf_for" attribute="Normal Text" lineEndContext="#stay">      
 
562
        <IncludeRules context="preDetection"/>
 
563
        <StringDetect attribute="Control" context="conf_for" insensitive="true" String="for"/>
 
564
        <RegExpr attribute="Control" context="#pop" insensitive="true"  String="end(\s+&varname;)?"/>
 
565
        <IncludeRules context="generalDetection"/>        
 
566
      </context>
 
567
      
 
568
      
443
569
<!--====Basic Stuff ===============-->
444
570
<!-- basic rules -->
445
571
      <context name="preDetection" attribute="Normal Text" lineEndContext="#stay">
446
 
        <Detect2Chars attribute="Comment"     context="comment"   char="-" char1="-" />
447
 
        <DetectChar   attribute="Vector"      context="string"    char="&quot;" />
448
 
        <AnyChar      attribute="Operator"    context="#stay"     String="[&amp;&gt;&lt;=:+\-*\/|].," />
449
 
        <DetectChar   attribute="Attribute"   context="attribute" char="'" />
 
572
        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>
 
573
        <DetectChar attribute="Vector" context="string" char="&quot;"/>
 
574
        <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+\-*\/|].,"/>
 
575
        <DetectChar attribute="Attribute" context="attribute" char="'"/>
450
576
      </context>
451
577
 
 
578
      
 
579
      
452
580
<!-- general detection -->
453
 
      <context name="generalDetection"  attribute="Normal Text"  lineEndContext="#stay">
454
 
        <keyword   attribute="Data Type" context="#stay"  String="types"/>
455
 
        <keyword   attribute="Signal"    context="signal" String="signals" beginRegion="sig"/>
456
 
        <keyword   attribute="Range"     context="#stay"  String="range"/>
457
 
        <keyword   attribute="Keyword"   context="#stay"  String="keywords"/>
458
 
        <Int       attribute="Integer"   context="#stay" />
459
 
        <HlCChar   attribute="Bit"       context="#stay" />
460
 
        <DetectSpaces attribute="Normal Text" context="#stay" />
 
581
      <context name="generalDetection" attribute="Normal Text" lineEndContext="#stay">
 
582
        <keyword attribute="Data Type" context="#stay" String="types"/>
 
583
        <keyword attribute="Data Type" context="#stay" String="timeunits"/>
 
584
        <keyword attribute="Signal" context="signal" String="signals" beginRegion="sig"/>
 
585
        <keyword attribute="Range" context="#stay" String="range"/>
 
586
        <keyword attribute="Keyword" context="#stay" String="keywords"/>
 
587
        <Int attribute="Integer" context="#stay"/>
 
588
        <HlCChar attribute="Bit" context="#stay"/>
 
589
        <DetectSpaces attribute="Normal Text" context="#stay"/>
461
590
      </context>
462
591
 
463
592
<!-- other environments -->
464
 
      <context name="comment" attribute="Comment" lineEndContext="#pop" />
 
593
      <context name="comment" attribute="Comment" lineEndContext="#pop"/>
465
594
 
466
 
      <context name="string" attribute="Vector" lineEndContext="#stay" >
467
 
        <DetectChar attribute="Vector"       context="#pop"        char="&quot;" />
 
595
      <context name="string" attribute="Vector" lineEndContext="#stay">
 
596
        <DetectChar attribute="Vector" context="#pop" char="&quot;"/>
468
597
      </context>
469
598
 
470
599
      <context name="attribute" attribute="Attribute" lineEndContext="#pop">
471
 
        <DetectChar attribute="Attribute"    context="quot in att" char="&quot;" />
472
 
        <DetectChar attribute="Normal Text"  context="#pop"        char=" " />
473
 
        <DetectChar attribute="Attribute"    context="#pop"        char="'" />
474
 
        <AnyChar    attribute="Attribute"    context="#pop"        String="()=&lt;&gt;" />
 
600
        <DetectChar attribute="Attribute" context="quot in att" char="&quot;"/>
 
601
        <DetectChar attribute="Attribute" context="quot in att" char="&quot;"/>
 
602
        <DetectChar attribute="Normal Text" context="#pop" char=" "/>
 
603
        <DetectChar attribute="Attribute" context="#pop" char="'"/>
 
604
        <AnyChar attribute="Attribute" context="#pop" String=")=&lt;&gt;"/>
475
605
      </context>
476
606
 
477
607
      <context name="quot in att" attribute="Attribute" lineEndContext="#stay">
478
 
        <DetectChar attribute="Attribute"    context="#pop"        char="&quot;" />
 
608
        <DetectChar attribute="Attribute" context="#pop" char="&quot;"/>
479
609
      </context>
480
610
 
481
611
      <context name="signal" attribute="Normal Text" lineEndContext="#stay">
482
 
        <IncludeRules context="preDetection" />
483
 
        <DetectChar attribute="Normal Text"    context="#pop"        char=";" endRegion="sig" />
484
 
        <IncludeRules context="generalDetection" />
 
612
        <IncludeRules context="preDetection"/>
 
613
        <DetectChar attribute="Normal Text" lookAhead="true" context="#pop" char=";" endRegion="sig"/>
 
614
        <IncludeRules context="generalDetection"/>
485
615
      </context>
486
616
 
487
617
 
488
618
    </contexts>
489
619
    <itemDatas>
490
 
      <itemData name="Normal Text" defStyleNum="dsNormal" />
491
 
      <itemData name="Keyword" defStyleNum="dsKeyword" />
492
 
      <itemData name="Data Type" defStyleNum="dsDataType" />
493
 
      <itemData name="Comment" defStyleNum="dsComment" />
494
 
      <itemData name="Integer" defStyleNum="dsDecVal" />
495
 
      <itemData name="Bit" defStyleNum="dsChar" />
496
 
      <itemData name="Error" defStyleNum="dsError" color="#f00" bold="1" />
497
 
      <itemData name="Vector" defStyleNum="dsString" />
498
 
      <itemData name="Operator" defStyleNum="dsOthers" />
499
 
      <itemData name="Attribute" defStyleNum="dsBaseN" />
500
 
      <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
 
620
      <itemData name="Normal Text" defStyleNum="dsNormal"/>
 
621
      <itemData name="Keyword" defStyleNum="dsKeyword"/>
 
622
      <itemData name="Data Type" defStyleNum="dsDataType"/>
 
623
      <itemData name="Comment" defStyleNum="dsComment"/>
 
624
      <itemData name="Integer" defStyleNum="dsDecVal"/>
 
625
      <itemData name="Bit" defStyleNum="dsChar"/>
 
626
      <itemData name="Reference" defStyleNum="dsFunction"/>
 
627
      <itemData name="Error" defStyleNum="dsError" color="#ff0000" bold="1"/>
 
628
      <itemData name="Vector" defStyleNum="dsString"/>
 
629
      <itemData name="Operator" defStyleNum="dsOthers"/>
 
630
      <itemData name="Attribute" defStyleNum="dsBaseN"/>
 
631
      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
501
632
      <itemData name="Signal" defStyleNum="dsOthers"/>
502
633
      <itemData name="Range" defStyleNum="dsOthers"/>
503
 
      <itemData name="Redirection" defStyleNum="dsKeyword" color="#238" />
504
 
      <itemData name="Process" defStyleNum="dsKeyword" color="#09A" />
505
 
      <itemData name="Control" defStyleNum="dsKeyword" color="#238" />
506
 
      <itemData name="Name" defStyleNum="dsKeyword" color="#b60" bold="1"  />
 
634
      <itemData name="Redirection" defStyleNum="dsKeyword" color="#223388"/>
 
635
      <itemData name="Process" defStyleNum="dsKeyword" color="#0099AA"/>
 
636
      <itemData name="Control" defStyleNum="dsKeyword" color="#223388"/>
 
637
      <itemData name="Name" defStyleNum="dsKeyword" color="#bb6600" bold="1"/>
507
638
    </itemDatas>
508
639
  </highlighting>
509
640
  <general>
510
641
    <comments>
511
 
      <comment name="singleLine" start="--" />
 
642
      <comment name="singleLine" start="--"/>
512
643
    </comments>
513
 
    <keywords casesensitive="0" />
 
644
    <keywords casesensitive="0"/>
514
645
  </general>
515
 
</language>
 
 
b'\\ No newline at end of file'
 
646
</language>