summaryrefslogtreecommitdiffstats
path: root/kate/data/vhdl.xml
diff options
context:
space:
mode:
Diffstat (limited to 'kate/data/vhdl.xml')
-rw-r--r--kate/data/vhdl.xml433
1 files changed, 301 insertions, 132 deletions
diff --git a/kate/data/vhdl.xml b/kate/data/vhdl.xml
index 5b1b69494..c2ff48999 100644
--- a/kate/data/vhdl.xml
+++ b/kate/data/vhdl.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
-[
+<!DOCTYPE language SYSTEM "language.dtd" [
<!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
- <!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">
- <!ENTITY bos "(|[^&quot;-]*)\b"> <!-- bol or space following -->
-<!-- <!ENTITY bos "^(|.*\s)">--> <!-- bol or space following -->
- <!ENTITY eos "\b"> <!-- eol or space following -->
-<!-- <!ENTITY eos "(?=($|\s))">--> <!-- eol or space following -->
- <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY varname "\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\b">
+ <!ENTITY bos "(\b)"> <!-- bol or space following -->
+<!-- <!ENTITY bos "^(|.*\s)">--> <!-- bol or space following -->
+ <!ENTITY eos "\b"> <!-- eol or space following -->
+<!-- <!ENTITY eos "(?=($|\s))">--> <!-- eol or space following -->
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
<!ENTITY label "((&varname;)\s*:\s*)?">
-
+
]>
-<language name="VHDL" version="1.08" kateversion="2.3" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Jan Michel (jan@mueschelsoft.de)">
+
+<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)">
<highlighting>
<list name="keywordsToplevel">
<item> file </item>
- <item> package </item>
+<!-- <item> package </item>-->
<item> library </item>
<item> use </item>
<!--
@@ -24,23 +24,35 @@
<item> of </item>
<item> configuration </item>
-->
+
+
</list>
<list name="keywords">
<item> access </item>
<item> after </item>
<item> alias </item>
<item> all </item>
+ <item> array </item>
<item> assert </item>
+ <item> assume </item>
+ <item> assume_guarantee </item>
+ <item> attribute </item>
<item> begin </item>
<item> block </item>
<item> body </item>
<item> bus </item>
<item> component </item>
<item> constant </item>
+ <item> context </item>
+ <item> cover </item>
+ <item> default </item>
<item> disconnect </item>
<item> downto </item>
<item> end </item>
<item> exit </item>
+ <item> fairness </item>
+ <item> file </item>
+ <item> force </item>
<item> function </item>
<item> generate </item>
<item> generic </item>
@@ -56,26 +68,32 @@
<item> new </item>
<item> next </item>
<item> null </item>
+ <item> of </item>
<item> on </item>
<item> open </item>
<item> others </item>
+ <item> parameter </item>
<item> port </item>
<item> postponed </item>
<item> procedure </item>
<item> process </item>
+ <item> property </item>
+ <item> protected </item>
<item> pure </item>
<item> range </item>
<item> record </item>
<item> register </item>
<item> reject </item>
+ <item> release </item>
<item> report </item>
<item> return </item>
<item> select </item>
+ <item> sequence </item>
<item> severity </item>
<item> signal </item>
<item> shared </item>
+ <item> strong </item>
<item> subtype </item>
- <item> then </item>
<item> to </item>
<item> transport </item>
<item> type </item>
@@ -83,6 +101,9 @@
<item> units </item>
<item> until </item>
<item> variable </item>
+ <item> vmode </item>
+ <item> vprop </item>
+ <item> vunit </item>
<item> wait </item>
<item> when </item>
<item> with </item>
@@ -95,65 +116,101 @@
<item> out </item>
<item> buffer </item>
<item> and </item>
+ <item> abs </item>
<item> or </item>
<item> xor </item>
+ <item> xnor </item>
<item> not </item>
+ <item> mod </item>
+ <item> nand </item>
+ <item> nor </item>
+ <item> rem </item>
+ <item> rol </item>
+ <item> ror </item>
+ <item> sla </item>
+ <item> sra </item>
+ <item> sll </item>
+ <item> srl </item>
</list>
-
+
<list name="if">
+ <item> if </item>
<item> else </item>
<item> elsif </item>
+ <item> then </item>
</list>
-
+
<list name="forOrWhile">
<item> loop </item>
</list>
-
+
<list name="directions">
<item> in </item>
<item> inout </item>
<item> out </item>
<item> buffer </item>
+ <item> linkage </item>
</list>
-
+
<list name="signals">
<item> signal </item>
<item> variable </item>
<item> constant </item>
- <item> type </item>
+ <item> type </item>
</list>
<!-- <list name="logics">
<item> and </item>
<item> or </item>
<item> xor </item>
<item> not </item>
- </list>
-
- <list name="rangeDirection">
+ </list>-->
+
+ <list name="range">
<item> to </item>
<item> downto </item>
- </list>-->
-
+ <item> others </item>
+ </list>
+
+ <list name="case">
+ <item> case </item>
+ <item> when </item>
+ </list>
+
<list name="types">
<item> bit </item>
<item> bit_vector </item>
<item> character </item>
<item> boolean </item>
+ <item> boolean_vector </item>
<item> integer </item>
+ <item> integer_vector </item>
<item> real </item>
+ <item> real_vector </item>
<item> time </item>
+ <item> time_vector </item>
+ <item> delay_length </item>
<item> string </item>
<item> severity_level </item>
<item> positive </item>
<item> natural </item>
+ <item> file_open_kind </item>
+ <item> file_open_status </item>
<item> signed </item>
<item> unsigned </item>
+ <item> unresolved_unsigned </item>
+ <item> unresolved_signed </item>
<item> line </item>
<item> text </item>
+ <item> side </item>
+ <item> width </item>
<item> std_logic </item>
<item> std_logic_vector </item>
<item> std_ulogic </item>
<item> std_ulogic_vector </item>
+ <item> x01 </item>
+ <item> x01z </item>
+ <item> ux01 </item>
+ <item> ux01z </item>
<item> qsim_state </item>
<item> qsim_state_vector </item>
<item> qsim_12state </item>
@@ -166,159 +223,268 @@
<item> wor_bit </item>
<item> wor_vector </item>
</list>
+
+
<contexts>
- <!-- start / global environment -->
- <context name="start" attribute="Normal Text" lineEndContext="#stay">
- <RegExpr attribute="Normal Text" context="entity" String="&bos;(entity\s*(&varname;)\s*is)&eos;" beginRegion="EntityRegion1" lookAhead="true" insensitive="true" />
- <RegExpr attribute="Normal Text" context="architecture" String="&bos;(architecture\s*(&varname;)\s*of\s*&varname;\s*is)&eos;" beginRegion="ArchitectureRegion1" lookAhead="true" insensitive="true" />
- <Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />
+
+<!-- start / global environment -->
+ <context name="start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <IncludeRules context="preDetection" />
+
+ <RegExpr attribute="Control" context="architecture_main" insensitive="true" dynamic="true" lookAhead="true"
+ String="architecture\s+(&varname;)" />
+ <StringDetect attribute="Control" context="entity" String="entity" />
+ <RegExpr attribute="Normal Text" context="package" insensitive="true" lookAhead="true" beginRegion="PackageRegion1"
+ String="&bos;(package\s+(&varname;)\s+is)&eos;"/>
+ <RegExpr attribute="Normal Text" context="packagebody" lookAhead="true" insensitive="true" beginRegion="PackageBodyRegion1"
+ String="&bos;(package\s+body\s+(&varname;)\s+is)&eos;"/>
+ <!-- <StringDetect attribute="Control" context="arch_decl" String="package" />temporary-->
+
<keyword attribute="Keyword" context="#stay" String="keywordsToplevel"/>
</context>
-
- <context name="preDetection" attribute="Normal Text" lineEndContext="#stay">
- <Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />
- <DetectChar attribute="Vector" context="string" char="&quot;" />
- <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+\-*\/|]().,;" />
- <DetectChar attribute="Attribute" context="attribute" char="'" />
- </context>
-
- <!-- general keywords detection -->
- <context name="generalDetection" attribute="Normal Text" lineEndContext="#stay">
- <keyword attribute="Data Type" context="#stay" String="types"/>
- <keyword attribute="Signal" context="#stay" String="signals"/>
- <keyword attribute="Keyword" context="#stay" String="keywords"/>
- <Int attribute="Integer" context="#stay" />
- <HlCChar attribute="Bit" context="#stay" />
- </context>
-
-
- <!-- entity environment -->
- <context name="entity" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+
+ <context name="package" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
<StringDetect attribute="Redirection" context="#stay" String="%2" dynamic="true" />
<IncludeRules context="preDetection" />
- <RegExpr attribute="Redirection" context="#pop" String="^(|\s.*)end(\s*entity)?\s*(%3)?\s*;" dynamic="true" endRegion="EntityRegion1" insensitive="true" />
- <!--<RegExpr attribute="Alert" context="generic" String="generic"/>-->
+ <StringDetect attribute="Redirection" context="#stay" String="begin" insensitive="true" />
+ <RegExpr attribute="Redirection" context="#pop" String="&bos;end(\s+package)?(\s+%3)?\s*;" dynamic="true" endRegion="PackageRegion1" insensitive="true" />
<IncludeRules context="generalDetection" />
</context>
-<!-- <context name="generic" attribute="Normal Text" lineEndContext="#stay">
- <DetectChar attribute="Operator" context="range" char="("/>
- <Detect2Chars attribute="Alert" context="#pop" char=")" char1=";"/>
- </context>
- <context name="range" attribute="Normal Text" lineEndContext="#stay">
- <keyword attribute="Keyword" context="#stay" String="rangeDirection"/>
- <Int attribute="Integer" context="#stay" />
- <HlCChar attribute="Bit" context="#stay" />
- <DetectChar attribute="Vector" context="string" char="&quot;" />
- <DetectChar attribute="Operator" context="#pop" char=")"/>
- </context>-->
- <!-- architecture environment -->
- <context name="architecture" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <!-- package body environment -->
+
+ <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
<StringDetect attribute="Redirection" context="#stay" String="%2" dynamic="true" />
<IncludeRules context="preDetection" />
<StringDetect attribute="Redirection" context="#stay" String="begin" insensitive="true" />
- <RegExpr attribute="Redirection" context="#pop" String="&bos;end(\s+architecture)?(\s+%3)?\s*;" dynamic="true" endRegion="ArchitectureRegion1" insensitive="true" />
- <RegExpr attribute="Normal Text" context="component" String="&bos;(component\s+(&varname;)(\s+is)?)&eos;" beginRegion="ComponentRegion1" lookAhead="true" insensitive="true" />
- <RegExpr attribute="Normal Text" context="process1" String="^(|\s+)(&label;process)&eos;" beginRegion="ProcessRegion1" lookAhead="true" insensitive="true" />
- <RegExpr attribute="Normal Text" context="generate1" String="^(|\s+)((&varname;)\s*:\s*((for\s+.+\s+in\s+.+)|(if\s+.+))\s+generate)&eos;" beginRegion="GenerateRegion1" lookAhead="true" insensitive="true" />
- <RegExpr attribute="Normal Text" context="instance" String="^(|\s+)((&varname;)\s*:\s*(&varname;))&eos;" beginRegion="InstanceRegion1" lookAhead="true" insensitive="true" />
+ <RegExpr attribute="Redirection" context="#pop" String="&bos;end(\s+package)?(\s+%3)?\s*;" dynamic="true" endRegion="PackageBodyRegion1" insensitive="true" />
<IncludeRules context="generalDetection" />
</context>
-<!-- <context name="architectureBeforeBegin" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <StringDetect attribute="Redirection" context="#stay" String="%1" dynamic="true" />
- <RegExpr attribute="Redirection" context="#pop" String="end\s*%2\s*;" dynamic="true" endRegion="ArchitectureRegion1" />
- <StringDetect attribute="Redirection" context="architectureAfterBegin" String="begin" />
- <RegExpr attribute="Redirection" context="#pop#pop" String="end\s*%2\s*;" dynamic="true" endRegion="ArchitectureRegion1" />
- <IncludeRules context="normal" />
+
+<!--====ARCHITECTURE ===============-->
+ <context name="architecture_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Control" context="arch_decl" insensitive="true" beginRegion="ArchitectureRegion1"
+ String="architecture\s+(&varname;)\s+of\s+(&varname;)\s+is" />
+ <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"
+ String="&bos;end(\s+architecture)?(\s+%1)?\s*;" />
+ <RegExpr attribute="Error" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"
+ String="&bos;end(\s+architecture)?(\s+&varname;)\s*;" />
+ <IncludeRules context="detect_arch_parts" />
</context>
- <context name="architectureAfterBegin" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <StringDetect attribute="Redirection" context="#stay" String="%1" dynamic="true" />
- <IncludeRules context="normal" />
- </context>-->
-
- <!-- component environment -->
- <context name="component" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <StringDetect attribute="Redirection" context="" String="%2" dynamic="true" />
- <IncludeRules context="preDetection" />
- <RegExpr attribute="Redirection" context="#pop" String="&bos;end\s+component(\s+%3)?\s*;" dynamic="true" endRegion="ComponentRegion1" insensitive="true" />
- <IncludeRules context="generalDetection" />
+
+<!-- architecture environment "before begin" -->
+ <context name="arch_decl" attribute="Normal Text" lineEndContext="#stay" >
+ <IncludeRules context="preDetection" />
+ <keyword attribute="Signal" context="signal" insensitive="true" String="signals"/>
+ <StringDetect attribute="Control" context="entity" insensitive="true" String="component"/>
+ <StringDetect attribute="Control" context="#pop" insensitive="true" String="begin"/>
+ <IncludeRules context="generalDetection" />
</context>
- <!-- generate statement -->
+<!-- parts of architecture body -->
+ <context name="detect_arch_parts" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <RegExpr attribute="Normal Text" context="generate1" lookAhead="true" insensitive="true" dynamic="true"
+ String="&bos;((&varname;)\s*:\s*)(if|for).*\s+generate&eos;" />
+ <RegExpr attribute="Normal Text" context="process1" lookAhead="true" insensitive="true" dynamic="true"
+ String="&bos;((&varname;)\s*:\s*)?process&eos;" />
+ <RegExpr attribute="Normal Text" context="instance" lookAhead="true" insensitive="true" dynamic="true" beginRegion="InstanceRegion1"
+ String="\b(&varname;)\s*:\s*(&varname;)" />
+
+ <IncludeRules context="generalDetection" />
+ </context>
+
+<!--====generate ===============-->
<context name="generate1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <StringDetect attribute="Process" context="generate2" String="%2" dynamic="true" />
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Control" context="generate2" insensitive="true" beginRegion="GenerateRegion"
+ String="&bos;generate&eos;" />
+ <RegExpr attribute="Name" context="#stay" dynamic="true" insensitive="true"
+ String="&bos;%3&eos;" />
+ <StringDetect attribute="Control" context="#stay" insensitive="true" String="for"/>
+ <StringDetect attribute="Control" context="#stay" insensitive="true" String="if"/>
+ <IncludeRules context="generalDetection" />
</context>
+
<context name="generate2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <IncludeRules context="architecture" />
- <RegExpr attribute="Process" context="#pop#pop" String="^(|\s.*)end\s+generate(?:\s+%3)?\s*;" dynamic="true" endRegion="GenerateRegion1" insensitive="true" />
+ <IncludeRules context="preDetection" />
+ <StringDetect attribute="Control" context="#stay" insensitive="true"
+ String="begin"/>
+ <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="GenerateRegion"
+ String="&bos;end\s+generate(\s+&varname;)?\s*;"/>
+ <IncludeRules context="detect_arch_parts" />
</context>
- <context name="instance" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <StringDetect attribute="Redirection" context="#stay" String="%2" dynamic="true" />
- <Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />
- <DetectChar attribute="Vector" context="string" char="&quot;" />
- <Detect2Chars attribute="Normal Text" context="#pop" char=")" char1=";" endRegion="InstanceRegion1" />
- <IncludeRules context="generalDetection" />
- <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+\-*\/|]().,;" />
- <DetectChar attribute="Attribute" context="attribute" char="'" />
- </context>
-
- <!-- process environment -->
+
+<!--====process ===============-->
+<!-- process environment -->
+
<context name="process1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <StringDetect attribute="Process" context="process2" String="%2" dynamic="true" />
- <RegExpr attribute="Process" context="#pop" String="^(|\s.*)end\s+process(\s+%4)?\s*;" endRegion="ProcessRegion1" insensitive="true" dynamic="true" />
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Process" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"
+ String="end\s+process(\s+%3)?\s*;" />
+ <RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"
+ String="end\s+process(\s+&varname;)?" />
+ <StringDetect attribute="Process" context="#stay" insensitive="true" beginRegion="RegionProcess"
+ String="process" />
+ <StringDetect attribute="Process" context="#stay" insensitive="true"
+ String="begin" />
+
+
+ <IncludeRules context="proc_rules" />
</context>
- <context name="process2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
- <RegExpr attribute="Process" context="#pop" String="^(|\s.*)end\s+process" insensitive="true" lookAhead="true" />
- <StringDetect attribute="Process" context="#stay" String="begin" insensitive="true" />
- <IncludeRules context="processContext" />
+
+ <context name="proc_rules" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <RegExpr attribute="Name" context="#stay" insensitive="true"
+ String="&bos;&varname;(?=\s*:(?!=))" />
+ <RegExpr attribute="Control" context="if_start" insensitive="true"
+ String="&bos;(if)&eos;" />
+ <RegExpr attribute="Control" context="case1" lookAhead="true" insensitive="true" dynamic="true" beginRegion="CaseRegion1"
+ String="&bos;(case)&eos;" />
+ <RegExpr attribute="Control" context="forOrWhile" insensitive="true" beginRegion="ForOrWhileRegion1"
+ String="&bos;&label;((for|while)\s+.+\s+)?loop&eos;"/>
+ <IncludeRules context="generalDetection" />
</context>
- <context name="processContext" attribute="Normal Text" lineEndContext="#stay">
+
+
+
+<!--====instance =============== -->
+
+ <context name="instance" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
<IncludeRules context="preDetection" />
- <RegExpr attribute="Control" context="case1" String="&bos;&label;(case)&eos;" beginRegion="CaseRegion1" insensitive="true" />
- <RegExpr attribute="Control" context="if" String="&bos;&label;(if)&eos;" beginRegion="IfRegion1" insensitive="true" />
- <RegExpr attribute="Control" context="forOrWhile" String="&bos;&label;((for|while)\s+.+\s+)?loop&eos;" beginRegion="ForOrWhileRegion1" insensitive="true" />
+ <RegExpr attribute="Name" context="#stay" String="\b%1\b" dynamic="true" />
+ <RegExpr attribute="Name" context="#stay" String="\b%2\b" dynamic="true" />
+ <Detect2Chars attribute="Normal Text" context="#pop" char=")" char1=";" endRegion="InstanceRegion1" />
+ <!-- <DetectChar attribute="Error" context="#stay" char=";" />-->
+
<IncludeRules context="generalDetection" />
</context>
+
+<!--====loop ===============-->
+ <context name="forOrWhile" attribute="Normal Text" lineEndContext="#stay">
+ <RegExpr attribute="Control" context="#pop" endRegion="ForOrWhileRegion1" insensitive="true"
+ String="&bos;end\s+loop(\s+&varname;)?\s*;"/>
+ <keyword attribute="Control" context="#stay" String="forOrWhile"/>
+ <IncludeRules context="proc_rules" />
+ </context>
+
+<!--====if ===============-->
+ <context name="if_start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <IncludeRules context="preDetection" />
+ <StringDetect attribute="Control" context="if" insensitive="true" beginRegion="IfRegion1"
+ String="then" />
+ <IncludeRules context="generalDetection" />
+ </context>
+
+ <context name="if" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="IfRegion1"
+ String="&bos;end\s+if(\s+&varname;)?\s*;"/>
+ <IncludeRules context="proc_rules" />
+ <keyword attribute="Control" context="#stay" insensitive="true"
+ String="if"/>
+ </context>
+
+
+<!--====case ===============-->
<context name="case1" attribute="Normal Text" lineEndContext="#stay">
- <StringDetect attribute="Keyword" context="case2" String="is" insensitive="true" />
+ <IncludeRules context="preDetection" />
+ <StringDetect attribute="Keyword" context="case2" insensitive="true"
+ String="is"/>
+ <keyword attribute="Control" context="#stay" insensitive="true"
+ String="case"/>
</context>
<context name="case2" attribute="Normal Text" lineEndContext="#stay">
- <RegExpr attribute="Control" context="#pop#pop" String="&bos;end\s+case(\s+&varname;)?\s*;" endRegion="CaseRegion1" insensitive="true" />
- <RegExpr attribute="Control" context="caseWhen" String="&bos;when&eos;" beginRegion="CaseWhenRegion1" insensitive="true" />
- <IncludeRules context="processContext" />
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="CaseRegion1"
+ String="&bos;end\s+case(\s+&varname;)?\s*;"/>
+ <StringDetect attribute="Control" context="caseWhen" insensitive="true" beginRegion="CaseWhenRegion1"
+ String="when"/>
+ <IncludeRules context="proc_rules" />
</context>
<context name="caseWhen" attribute="Normal Text" lineEndContext="#stay">
- <RegExpr attribute="Control" context="#pop" String="&bos;when&eos;" endRegion="CaseWhenRegion1" lookAhead="true" insensitive="true" />
- <RegExpr attribute="Control" context="#pop" String="&bos;end\s+case(\s+&varname;)?\s*;" endRegion="CaseWhenRegion1" lookAhead="true" insensitive="true" />
- <IncludeRules context="process2" />
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Control" context="#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"
+ String="&bos;when&eos;" />
+ <RegExpr attribute="Control" context="#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"
+ String="&bos;end\s+case(\s+&varname;)?\s*;"/>
+ <IncludeRules context="proc_rules" />
</context>
- <context name="if" attribute="Normal Text" lineEndContext="#stay">
- <RegExpr attribute="Control" context="#pop" String="&bos;end\s+if(\s+&varname;)?\s*;" endRegion="IfRegion1" insensitive="true" />
- <keyword attribute="Control" context="#stay" String="if"/>
- <IncludeRules context="processContext" />
+
+
+
+
+
+<!--====ENTITY ===============-->
+<!-- entity environment -->
+
+ <context name="entity" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1" insensitive="true" String="(&varname;)" />
+ <IncludeRules context="generalDetection" />
</context>
- <context name="forOrWhile" attribute="Normal Text" lineEndContext="#stay">
- <RegExpr attribute="Control" context="#pop" String="&bos;end\s+loop(\s+&varname;)?\s*;" endRegion="ForOrWhileRegion1" insensitive="true" />
- <keyword attribute="Control" context="#stay" String="forOrWhile"/>
- <IncludeRules context="processContext" />
+
+
+ <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+ <IncludeRules context="preDetection" />
+ <RegExpr attribute="Control" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"
+ String="&bos;end(\s+(entity|component))?(\s+%1)?\s*;" />
+ <RegExpr attribute="Error" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"
+ String="&bos;end(\s+(entity|component))?(\s+&varname;)?\s*;" />
+ <RegExpr attribute="Control" context="#stay" String="generic"/>
+ <RegExpr attribute="Control" context="#stay" String="port"/>
+ <IncludeRules context="generalDetection" />
</context>
-
- <!-- other environments -->
+
+
+
+<!--====Basic Stuff ===============-->
+<!-- basic rules -->
+ <context name="preDetection" attribute="Normal Text" lineEndContext="#stay">
+ <Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />
+ <DetectChar attribute="Vector" context="string" char="&quot;" />
+ <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+\-*\/|].," />
+ <DetectChar attribute="Attribute" context="attribute" char="'" />
+ </context>
+
+<!-- general detection -->
+ <context name="generalDetection" attribute="Normal Text" lineEndContext="#stay">
+ <keyword attribute="Data Type" context="#stay" String="types"/>
+ <keyword attribute="Signal" context="signal" String="signals" beginRegion="sig"/>
+ <keyword attribute="Range" context="#stay" String="range"/>
+ <keyword attribute="Keyword" context="#stay" String="keywords"/>
+ <Int attribute="Integer" context="#stay" />
+ <HlCChar attribute="Bit" context="#stay" />
+ <DetectSpaces attribute="Normal Text" context="#stay" />
+ </context>
+
+<!-- other environments -->
<context name="comment" attribute="Comment" lineEndContext="#pop" />
+
<context name="string" attribute="Vector" lineEndContext="#stay" >
- <DetectChar attribute="Vector" context="#pop" char="&quot;" />
+ <DetectChar attribute="Vector" context="#pop" char="&quot;" />
</context>
+
<context name="attribute" attribute="Attribute" lineEndContext="#pop">
- <DetectChar attribute="Attribute" context="quot in att" char="&quot;" />
- <DetectChar attribute="Normal Text" context="#pop" char=" " />
- <AnyChar attribute="Attribute" context="#pop" String=")=&lt;&gt;" />
+ <DetectChar attribute="Attribute" context="quot in att" char="&quot;" />
+ <DetectChar attribute="Normal Text" context="#pop" char=" " />
+ <DetectChar attribute="Attribute" context="#pop" char="'" />
+ <AnyChar attribute="Attribute" context="#pop" String="()=&lt;&gt;" />
</context>
+
<context name="quot in att" attribute="Attribute" lineEndContext="#stay">
- <DetectChar attribute="Attribute" context="#pop" char="&quot;" />
+ <DetectChar attribute="Attribute" context="#pop" char="&quot;" />
</context>
+
+ <context name="signal" attribute="Normal Text" lineEndContext="#stay">
+ <IncludeRules context="preDetection" />
+ <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="sig" />
+ <IncludeRules context="generalDetection" />
+ </context>
+
+
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
@@ -327,14 +493,17 @@
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Integer" defStyleNum="dsDecVal" />
<itemData name="Bit" defStyleNum="dsChar" />
+ <itemData name="Error" defStyleNum="dsError" color="#f00" bold="1" />
<itemData name="Vector" defStyleNum="dsString" />
<itemData name="Operator" defStyleNum="dsOthers" />
<itemData name="Attribute" defStyleNum="dsBaseN" />
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
<itemData name="Signal" defStyleNum="dsOthers"/>
+ <itemData name="Range" defStyleNum="dsOthers"/>
<itemData name="Redirection" defStyleNum="dsKeyword" color="#238" />
<itemData name="Process" defStyleNum="dsKeyword" color="#09A" />
- <itemData name="Control" defStyleNum="dsKeyword" color="#008" />
+ <itemData name="Control" defStyleNum="dsKeyword" color="#238" />
+ <itemData name="Name" defStyleNum="dsKeyword" color="#b60" bold="1" />
</itemDatas>
</highlighting>
<general>